{
    "summary": {
        "snap": {
            "added": [],
            "removed": [],
            "diff": [
                "snapd",
                "lxd"
            ]
        },
        "deb": {
            "added": [
                "linux-headers-6.8.0-117-generic",
                "linux-image-6.8.0-117-generic",
                "linux-modules-6.8.0-117-generic",
                "linux-riscv-6.8-headers-6.8.0-117",
                "netplan-generator",
                "python3-netplan"
            ],
            "removed": [
                "linux-headers-6.8.0-106-generic",
                "linux-image-6.8.0-106-generic",
                "linux-modules-6.8.0-106-generic",
                "linux-riscv-6.8-headers-6.8.0-106"
            ],
            "diff": [
                "bind9-dnsutils",
                "bind9-host",
                "bind9-libs:riscv64",
                "curl",
                "distro-info-data",
                "gir1.2-packagekitglib-1.0",
                "iproute2",
                "kmod",
                "libarchive13:riscv64",
                "libcap2:riscv64",
                "libcap2-bin",
                "libcurl3-gnutls:riscv64",
                "libcurl4:riscv64",
                "libkmod2:riscv64",
                "libnetplan0:riscv64",
                "libnghttp2-14:riscv64",
                "libnss-systemd:riscv64",
                "libntfs-3g89",
                "libpackagekit-glib2-18:riscv64",
                "libpam-cap:riscv64",
                "libpam-systemd:riscv64",
                "libpng16-16:riscv64",
                "libpolkit-agent-1-0:riscv64",
                "libpolkit-gobject-1-0:riscv64",
                "libssl3:riscv64",
                "libsystemd0:riscv64",
                "libudev1:riscv64",
                "linux-headers-generic",
                "linux-headers-virtual",
                "linux-image-virtual",
                "linux-virtual",
                "lshw",
                "netplan.io",
                "ntfs-3g",
                "openssh-client",
                "openssh-server",
                "openssh-sftp-server",
                "openssl",
                "packagekit",
                "packagekit-tools",
                "pkexec",
                "policykit-1",
                "polkitd",
                "pollinate",
                "python3-jwt",
                "python3-openssl",
                "python3-pyasn1",
                "sed",
                "snapd",
                "systemd",
                "systemd-sysv",
                "systemd-timesyncd",
                "tzdata",
                "ubuntu-advantage-tools",
                "ubuntu-pro-client",
                "ubuntu-pro-client-l10n",
                "udev",
                "vim",
                "vim-common",
                "vim-runtime",
                "vim-tiny",
                "xxd"
            ]
        }
    },
    "diff": {
        "deb": [
            {
                "name": "bind9-dnsutils",
                "from_version": {
                    "source_package_name": "bind9",
                    "source_package_version": "1:9.18.39-0ubuntu0.22.04.2",
                    "version": "1:9.18.39-0ubuntu0.22.04.2"
                },
                "to_version": {
                    "source_package_name": "bind9",
                    "source_package_version": "1:9.18.39-0ubuntu0.22.04.3",
                    "version": "1:9.18.39-0ubuntu0.22.04.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-1519",
                        "url": "https://ubuntu.com/security/CVE-2026-1519",
                        "cve_description": "If a BIND resolver is performing DNSSEC validation and encounters a maliciously crafted zone, the resolver may consume excessive CPU. Authoritative-only servers are generally unaffected, although there are circumstances where authoritative servers may make recursive queries (see: https://kb.isc.org/docs/why-does-my-authoritative-server-make-recursive-queries). This issue affects BIND 9 versions 9.11.0 through 9.16.50, 9.18.0 through 9.18.46, 9.20.0 through 9.20.20, 9.21.0 through 9.21.19, 9.11.3-S1 through 9.16.50-S1, 9.18.11-S1 through 9.18.46-S1, and 9.20.9-S1 through 9.20.20-S1.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-25 14:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-1519",
                                "url": "https://ubuntu.com/security/CVE-2026-1519",
                                "cve_description": "If a BIND resolver is performing DNSSEC validation and encounters a maliciously crafted zone, the resolver may consume excessive CPU. Authoritative-only servers are generally unaffected, although there are circumstances where authoritative servers may make recursive queries (see: https://kb.isc.org/docs/why-does-my-authoritative-server-make-recursive-queries). This issue affects BIND 9 versions 9.11.0 through 9.16.50, 9.18.0 through 9.18.46, 9.20.0 through 9.20.20, 9.21.0 through 9.21.19, 9.11.3-S1 through 9.16.50-S1, 9.18.11-S1 through 9.18.46-S1, and 9.20.9-S1 through 9.20.20-S1.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-25 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Excessive NSEC3 iterations cause high CPU load during",
                            "    insecure delegation validation",
                            "    - debian/patches/CVE-2026-1519-1.patch: add reproducers to bin/tests/*.",
                            "    - debian/patches/CVE-2026-1519-2.patch: check iterations in",
                            "      isdelegation() in lib/dns/validator.c.",
                            "    - debian/patches/CVE-2026-1519-3.patch: don't verify already trusted",
                            "      rdatasets in lib/dns/include/dns/types.h, lib/dns/validator.c.",
                            "    - debian/patches/CVE-2026-1519-4.patch: check RRset trust in",
                            "      validate_neg_rrset() in lib/dns/validator.c.",
                            "    - CVE-2026-1519",
                            ""
                        ],
                        "package": "bind9",
                        "version": "1:9.18.39-0ubuntu0.22.04.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Tue, 24 Mar 2026 11:31:16 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "bind9-host",
                "from_version": {
                    "source_package_name": "bind9",
                    "source_package_version": "1:9.18.39-0ubuntu0.22.04.2",
                    "version": "1:9.18.39-0ubuntu0.22.04.2"
                },
                "to_version": {
                    "source_package_name": "bind9",
                    "source_package_version": "1:9.18.39-0ubuntu0.22.04.3",
                    "version": "1:9.18.39-0ubuntu0.22.04.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-1519",
                        "url": "https://ubuntu.com/security/CVE-2026-1519",
                        "cve_description": "If a BIND resolver is performing DNSSEC validation and encounters a maliciously crafted zone, the resolver may consume excessive CPU. Authoritative-only servers are generally unaffected, although there are circumstances where authoritative servers may make recursive queries (see: https://kb.isc.org/docs/why-does-my-authoritative-server-make-recursive-queries). This issue affects BIND 9 versions 9.11.0 through 9.16.50, 9.18.0 through 9.18.46, 9.20.0 through 9.20.20, 9.21.0 through 9.21.19, 9.11.3-S1 through 9.16.50-S1, 9.18.11-S1 through 9.18.46-S1, and 9.20.9-S1 through 9.20.20-S1.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-25 14:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-1519",
                                "url": "https://ubuntu.com/security/CVE-2026-1519",
                                "cve_description": "If a BIND resolver is performing DNSSEC validation and encounters a maliciously crafted zone, the resolver may consume excessive CPU. Authoritative-only servers are generally unaffected, although there are circumstances where authoritative servers may make recursive queries (see: https://kb.isc.org/docs/why-does-my-authoritative-server-make-recursive-queries). This issue affects BIND 9 versions 9.11.0 through 9.16.50, 9.18.0 through 9.18.46, 9.20.0 through 9.20.20, 9.21.0 through 9.21.19, 9.11.3-S1 through 9.16.50-S1, 9.18.11-S1 through 9.18.46-S1, and 9.20.9-S1 through 9.20.20-S1.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-25 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Excessive NSEC3 iterations cause high CPU load during",
                            "    insecure delegation validation",
                            "    - debian/patches/CVE-2026-1519-1.patch: add reproducers to bin/tests/*.",
                            "    - debian/patches/CVE-2026-1519-2.patch: check iterations in",
                            "      isdelegation() in lib/dns/validator.c.",
                            "    - debian/patches/CVE-2026-1519-3.patch: don't verify already trusted",
                            "      rdatasets in lib/dns/include/dns/types.h, lib/dns/validator.c.",
                            "    - debian/patches/CVE-2026-1519-4.patch: check RRset trust in",
                            "      validate_neg_rrset() in lib/dns/validator.c.",
                            "    - CVE-2026-1519",
                            ""
                        ],
                        "package": "bind9",
                        "version": "1:9.18.39-0ubuntu0.22.04.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Tue, 24 Mar 2026 11:31:16 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "bind9-libs:riscv64",
                "from_version": {
                    "source_package_name": "bind9",
                    "source_package_version": "1:9.18.39-0ubuntu0.22.04.2",
                    "version": "1:9.18.39-0ubuntu0.22.04.2"
                },
                "to_version": {
                    "source_package_name": "bind9",
                    "source_package_version": "1:9.18.39-0ubuntu0.22.04.3",
                    "version": "1:9.18.39-0ubuntu0.22.04.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-1519",
                        "url": "https://ubuntu.com/security/CVE-2026-1519",
                        "cve_description": "If a BIND resolver is performing DNSSEC validation and encounters a maliciously crafted zone, the resolver may consume excessive CPU. Authoritative-only servers are generally unaffected, although there are circumstances where authoritative servers may make recursive queries (see: https://kb.isc.org/docs/why-does-my-authoritative-server-make-recursive-queries). This issue affects BIND 9 versions 9.11.0 through 9.16.50, 9.18.0 through 9.18.46, 9.20.0 through 9.20.20, 9.21.0 through 9.21.19, 9.11.3-S1 through 9.16.50-S1, 9.18.11-S1 through 9.18.46-S1, and 9.20.9-S1 through 9.20.20-S1.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-25 14:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-1519",
                                "url": "https://ubuntu.com/security/CVE-2026-1519",
                                "cve_description": "If a BIND resolver is performing DNSSEC validation and encounters a maliciously crafted zone, the resolver may consume excessive CPU. Authoritative-only servers are generally unaffected, although there are circumstances where authoritative servers may make recursive queries (see: https://kb.isc.org/docs/why-does-my-authoritative-server-make-recursive-queries). This issue affects BIND 9 versions 9.11.0 through 9.16.50, 9.18.0 through 9.18.46, 9.20.0 through 9.20.20, 9.21.0 through 9.21.19, 9.11.3-S1 through 9.16.50-S1, 9.18.11-S1 through 9.18.46-S1, and 9.20.9-S1 through 9.20.20-S1.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-25 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Excessive NSEC3 iterations cause high CPU load during",
                            "    insecure delegation validation",
                            "    - debian/patches/CVE-2026-1519-1.patch: add reproducers to bin/tests/*.",
                            "    - debian/patches/CVE-2026-1519-2.patch: check iterations in",
                            "      isdelegation() in lib/dns/validator.c.",
                            "    - debian/patches/CVE-2026-1519-3.patch: don't verify already trusted",
                            "      rdatasets in lib/dns/include/dns/types.h, lib/dns/validator.c.",
                            "    - debian/patches/CVE-2026-1519-4.patch: check RRset trust in",
                            "      validate_neg_rrset() in lib/dns/validator.c.",
                            "    - CVE-2026-1519",
                            ""
                        ],
                        "package": "bind9",
                        "version": "1:9.18.39-0ubuntu0.22.04.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Tue, 24 Mar 2026 11:31:16 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "curl",
                "from_version": {
                    "source_package_name": "curl",
                    "source_package_version": "7.81.0-1ubuntu1.23",
                    "version": "7.81.0-1ubuntu1.23"
                },
                "to_version": {
                    "source_package_name": "curl",
                    "source_package_version": "7.81.0-1ubuntu1.24",
                    "version": "7.81.0-1ubuntu1.24"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-4873",
                        "url": "https://ubuntu.com/security/CVE-2026-4873",
                        "cve_description": "A vulnerability exists where a connection requiring TLS incorrectly reuses an existing unencrypted connection from the same connection pool. If an initial transfer is made in clear-text (via IMAP, SMTP, or POP3), a subsequent request to that same host will bypass the TLS requirement and instead transmit data unencrypted.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-5545",
                        "url": "https://ubuntu.com/security/CVE-2026-5545",
                        "cve_description": "libcurl might in some circumstances reuse the wrong connection when asked to do an authenticated HTTP(S) request after a Negotiate-authenticated one, when both use the same host.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-5773",
                        "url": "https://ubuntu.com/security/CVE-2026-5773",
                        "cve_description": "libcurl might in some circumstances reuse the wrong connection for SMB(S) transfers.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-6253",
                        "url": "https://ubuntu.com/security/CVE-2026-6253",
                        "cve_description": "curl might erroneously pass on credentials for a first proxy to a second proxy.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-6276",
                        "url": "https://ubuntu.com/security/CVE-2026-6276",
                        "cve_description": "Using libcurl, when a custom `Host:` header is first set for a HTTP request and a second request is subsequently done using the same *easy handle* but without the custom `Host:` header set, the second request would use stale information and pass on cookies meant for the first host in the second request. Leak them.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-6429",
                        "url": "https://ubuntu.com/security/CVE-2026-6429",
                        "cve_description": "When asked to both use a `.netrc` file for credentials and to follow HTTP redirects, libcurl could leak the password used for the first host to the followed-to host under certain circumstances. Similar to CVE-2024-11053.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-7168",
                        "url": "https://ubuntu.com/security/CVE-2026-7168",
                        "cve_description": "cross-proxy Digest auth state leak",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-29"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-4873",
                                "url": "https://ubuntu.com/security/CVE-2026-4873",
                                "cve_description": "A vulnerability exists where a connection requiring TLS incorrectly reuses an existing unencrypted connection from the same connection pool. If an initial transfer is made in clear-text (via IMAP, SMTP, or POP3), a subsequent request to that same host will bypass the TLS requirement and instead transmit data unencrypted.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-5545",
                                "url": "https://ubuntu.com/security/CVE-2026-5545",
                                "cve_description": "libcurl might in some circumstances reuse the wrong connection when asked to do an authenticated HTTP(S) request after a Negotiate-authenticated one, when both use the same host.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-5773",
                                "url": "https://ubuntu.com/security/CVE-2026-5773",
                                "cve_description": "libcurl might in some circumstances reuse the wrong connection for SMB(S) transfers.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-6253",
                                "url": "https://ubuntu.com/security/CVE-2026-6253",
                                "cve_description": "curl might erroneously pass on credentials for a first proxy to a second proxy.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-6276",
                                "url": "https://ubuntu.com/security/CVE-2026-6276",
                                "cve_description": "Using libcurl, when a custom `Host:` header is first set for a HTTP request and a second request is subsequently done using the same *easy handle* but without the custom `Host:` header set, the second request would use stale information and pass on cookies meant for the first host in the second request. Leak them.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-6429",
                                "url": "https://ubuntu.com/security/CVE-2026-6429",
                                "cve_description": "When asked to both use a `.netrc` file for credentials and to follow HTTP redirects, libcurl could leak the password used for the first host to the followed-to host under certain circumstances. Similar to CVE-2024-11053.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-7168",
                                "url": "https://ubuntu.com/security/CVE-2026-7168",
                                "cve_description": "cross-proxy Digest auth state leak",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-29"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: connection reuse ignores TLS requirement",
                            "    - debian/patches/CVE-2026-4873.patch: do not reuse a non-tls starttls",
                            "      connection if new requires TLS in lib/url.c.",
                            "    - CVE-2026-4873",
                            "  * SECURITY UPDATE: wrong reuse of HTTP Negotiate connection",
                            "    - debian/patches/CVE-2026-5545.patch: improve connection reuse on",
                            "      negotiate in lib/url.c.",
                            "    - CVE-2026-5545",
                            "  * SECURITY UPDATE: wrong reuse of SMB connection",
                            "    - debian/patches/CVE-2026-5773.patch: disable connection reuse for",
                            "      SMB(S) in lib/smb.c.",
                            "    - CVE-2026-5773",
                            "  * SECURITY UPDATE: proxy credentials leak over redirect-to proxy",
                            "    - debian/patches/CVE-2026-6253.patch: clear the proxy credentials as",
                            "      well on port or scheme change in lib/transfer.*, tests/*.",
                            "    - CVE-2026-6253",
                            "  * SECURITY UPDATE: stale custom cookie host causes cookie leak",
                            "    - debian/patches/CVE-2026-6276.patch: move cookiehost to struct",
                            "      SingleRequest in lib/http.c, lib/url.c, lib/urldata.h, tests/*.",
                            "    - CVE-2026-6276",
                            "  * SECURITY UPDATE: netrc credential leak with reused proxy connection",
                            "    - debian/patches/CVE-2026-6429-pre1.patch: prevent secure schemes",
                            "      pushed over insecure connections in lib/http2.c.",
                            "    - debian/patches/CVE-2026-6429-pre2.patch: same origin tests in",
                            "      lib/http2.c, lib/urlapi-int.h, lib/urlapi.c.",
                            "    - debian/patches/CVE-2026-6429.patch: clear credentials better on",
                            "      redirect in lib/transfer.c, tests/*.",
                            "    - CVE-2026-6429",
                            "  * SECURITY UPDATE: cross-proxy Digest auth state leak",
                            "    - debian/patches/CVE-2026-7168.patch: clear proxy auth properties when",
                            "      switching in lib/setopt.c, lib/vauth/vauth.h, tests/*.",
                            "    - CVE-2026-7168",
                            "  * debian/rules: run test suite with extra debugging information.",
                            ""
                        ],
                        "package": "curl",
                        "version": "7.81.0-1ubuntu1.24",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Wed, 29 Apr 2026 07:35:43 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "distro-info-data",
                "from_version": {
                    "source_package_name": "distro-info-data",
                    "source_package_version": "0.52ubuntu0.11",
                    "version": "0.52ubuntu0.11"
                },
                "to_version": {
                    "source_package_name": "distro-info-data",
                    "source_package_version": "0.52ubuntu0.12",
                    "version": "0.52ubuntu0.12"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2150234
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add Ubuntu 26.10 \"Stonking Stingray\" (LP: #2150234)",
                            ""
                        ],
                        "package": "distro-info-data",
                        "version": "0.52ubuntu0.12",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2150234
                        ],
                        "author": "Oliver Reiche <oliver.reiche@canonical.com>",
                        "date": "Tue, 28 Apr 2026 16:20:05 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "gir1.2-packagekitglib-1.0",
                "from_version": {
                    "source_package_name": "packagekit",
                    "source_package_version": "1.2.5-2ubuntu3",
                    "version": "1.2.5-2ubuntu3"
                },
                "to_version": {
                    "source_package_name": "packagekit",
                    "source_package_version": "1.2.5-2ubuntu3.1",
                    "version": "1.2.5-2ubuntu3.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2148512
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: TOCTOU Race on Transaction Flags (LP: #2148512)",
                            "    - debian/patches/Do-not-allow-re-invoking-methods-on-non-new-txn.patch:",
                            "      do not allow re-invoking methods on non-new transactions in",
                            "      src/pk-transaction.c.",
                            "    - CVE number pending",
                            ""
                        ],
                        "package": "packagekit",
                        "version": "1.2.5-2ubuntu3.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [
                            2148512
                        ],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Mon, 20 Apr 2026 08:24:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "iproute2",
                "from_version": {
                    "source_package_name": "iproute2",
                    "source_package_version": "5.15.0-1ubuntu2",
                    "version": "5.15.0-1ubuntu2"
                },
                "to_version": {
                    "source_package_name": "iproute2",
                    "source_package_version": "5.15.0-1ubuntu2.1",
                    "version": "5.15.0-1ubuntu2.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2125448
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Modify tc police to permit burst sizes up greater than 4GB (LP: #2125448)",
                            "    - /d/p/2001-lib-Update-backend-of-print_size-to-accept-64-bit-si.patch",
                            "    - /d/p/2002-tc-Add-get_size64-and-get_size64_and_cell.patch",
                            "    - /d/p/2003-tc-Expand-tc_calc_xmittime-tc_calc_xmitsize-to-u64.patch",
                            "    - /d/p/2004-tc-police-enable-use-of-64-bit-burst-parameter.patch ",
                            ""
                        ],
                        "package": "iproute2",
                        "version": "5.15.0-1ubuntu2.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2125448
                        ],
                        "author": "Jorge Merlino <jorge.merlino@canonical.com>",
                        "date": "Fri, 03 Oct 2025 10:53:16 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "kmod",
                "from_version": {
                    "source_package_name": "kmod",
                    "source_package_version": "29-1ubuntu1",
                    "version": "29-1ubuntu1"
                },
                "to_version": {
                    "source_package_name": "kmod",
                    "source_package_version": "29-1ubuntu1.1",
                    "version": "29-1ubuntu1.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-31431",
                        "url": "https://ubuntu.com/security/CVE-2026-31431",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: algif_aead - Revert to operating out-of-place  This mostly reverts commit 72548b093ee3 except for the copying of the associated data.  There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings.  Get rid of all the complexity added for in-place operation and just copy the AD directly.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-04-22 09:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2150743
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-31431",
                                "url": "https://ubuntu.com/security/CVE-2026-31431",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: algif_aead - Revert to operating out-of-place  This mostly reverts commit 72548b093ee3 except for the copying of the associated data.  There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings.  Get rid of all the complexity added for in-place operation and just copy the AD directly.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-04-22 09:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * Disable loading of algif_aead module to mitigate CVE-2026-31431",
                            "    (LP: #2150743)",
                            "    - debian/modprobe.d/disable-algif_aead.conf",
                            ""
                        ],
                        "package": "kmod",
                        "version": "29-1ubuntu1.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [
                            2150743
                        ],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 30 Apr 2026 08:32:42 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libarchive13:riscv64",
                "from_version": {
                    "source_package_name": "libarchive",
                    "source_package_version": "3.6.0-1ubuntu1.5",
                    "version": "3.6.0-1ubuntu1.5"
                },
                "to_version": {
                    "source_package_name": "libarchive",
                    "source_package_version": "3.6.0-1ubuntu1.6",
                    "version": "3.6.0-1ubuntu1.6"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-5918",
                        "url": "https://ubuntu.com/security/CVE-2025-5918",
                        "cve_description": "A vulnerability has been identified in the libarchive library. This flaw can be triggered when file streams are piped into bsdtar, potentially allowing for reading past the end of the file. This out-of-bounds read can lead to unintended consequences, including unpredictable program behavior, memory corruption, or a denial-of-service condition.",
                        "cve_priority": "low",
                        "cve_public_date": "2025-06-09 20:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-60753",
                        "url": "https://ubuntu.com/security/CVE-2025-60753",
                        "cve_description": "An issue was discovered in libarchive bsdtar before version 3.8.1 in function apply_substitution in file tar/subst.c when processing crafted -s substitution rules. This can cause unbounded memory allocation and lead to denial of service (Out-of-Memory crash).",
                        "cve_priority": "negligible",
                        "cve_public_date": "2025-11-05 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-4111",
                        "url": "https://ubuntu.com/security/CVE-2026-4111",
                        "cve_description": "A flaw was identified in the RAR5 archive decompression logic of the libarchive library, specifically within the archive_read_data() processing path. When a specially crafted RAR5 archive is processed, the decompression routine may enter a state where internal logic prevents forward progress. This condition results in an infinite loop that continuously consumes CPU resources. Because the archive passes checksum validation and appears structurally valid, affected applications cannot detect the issue before processing. This can allow attackers to cause persistent denial-of-service conditions in services that automatically process archives.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-13 19:55:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-5918",
                                "url": "https://ubuntu.com/security/CVE-2025-5918",
                                "cve_description": "A vulnerability has been identified in the libarchive library. This flaw can be triggered when file streams are piped into bsdtar, potentially allowing for reading past the end of the file. This out-of-bounds read can lead to unintended consequences, including unpredictable program behavior, memory corruption, or a denial-of-service condition.",
                                "cve_priority": "low",
                                "cve_public_date": "2025-06-09 20:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-60753",
                                "url": "https://ubuntu.com/security/CVE-2025-60753",
                                "cve_description": "An issue was discovered in libarchive bsdtar before version 3.8.1 in function apply_substitution in file tar/subst.c when processing crafted -s substitution rules. This can cause unbounded memory allocation and lead to denial of service (Out-of-Memory crash).",
                                "cve_priority": "negligible",
                                "cve_public_date": "2025-11-05 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-4111",
                                "url": "https://ubuntu.com/security/CVE-2026-4111",
                                "cve_description": "A flaw was identified in the RAR5 archive decompression logic of the libarchive library, specifically within the archive_read_data() processing path. When a specially crafted RAR5 archive is processed, the decompression routine may enter a state where internal logic prevents forward progress. This condition results in an infinite loop that continuously consumes CPU resources. Because the archive passes checksum validation and appears structurally valid, affected applications cannot detect the issue before processing. This can allow attackers to cause persistent denial-of-service conditions in services that automatically process archives.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-13 19:55:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Out-of-bounds read during streamed archive skipping",
                            "    - debian/patches/CVE-2025-5918-1.patch: Prevent EOF-skipping in",
                            "      libarchive/archive_read_open_fd.c, libarchive/archive_read_open_file.c,",
                            "      libarchive/archive_read_open_filename.c, add relevant tests in",
                            "      libarchive/test/test_read_format_rar.c",
                            "    - debian/patches/CVE-2025-5918-2.patch: Fix file skip offset handling in",
                            "      libarchive/archive_read_open_file.c",
                            "    - CVE-2025-5918",
                            "  * SECURITY UPDATE: Unbounded memory allocation during bsdtar substitution",
                            "    processing",
                            "    - debian/patches/CVE-2025-60753.patch: Advance zero-length matches in",
                            "      tar/subst.c and add tests in tar/test/test_option_s.c",
                            "    - CVE-2025-60753",
                            "  * SECURITY UPDATE: Infinite loop during RAR5 decompression",
                            "    - debian/patches/CVE-2026-4111.patch: Filter bounds in",
                            "      libarchive/archive_read_support_format_rar5.c and add loop regression",
                            "      tests in libarchive/test/test_read_format_rar5_loop_bug.c,",
                            "      libarchive/test/test_read_format_rar5_loop_bug.rar.uu",
                            "    - CVE-2026-4111",
                            ""
                        ],
                        "package": "libarchive",
                        "version": "3.6.0-1ubuntu1.6",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Shafayat Hossain Majumder <shafayat.majumder@canonical.com>",
                        "date": "Wed, 01 Apr 2026 14:22:14 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libcap2:riscv64",
                "from_version": {
                    "source_package_name": "libcap2",
                    "source_package_version": "1:2.44-1ubuntu0.22.04.2",
                    "version": "1:2.44-1ubuntu0.22.04.2"
                },
                "to_version": {
                    "source_package_name": "libcap2",
                    "source_package_version": "1:2.44-1ubuntu0.22.04.3",
                    "version": "1:2.44-1ubuntu0.22.04.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-4878",
                        "url": "https://ubuntu.com/security/CVE-2026-4878",
                        "cve_description": "A flaw was found in libcap. A local unprivileged user can exploit a Time-of-check-to-time-of-use (TOCTOU) race condition in the `cap_set_file()` function. This allows an attacker with write access to a parent directory to redirect file capability updates to an attacker-controlled file. By doing so, capabilities can be injected into or stripped from unintended executables, leading to privilege escalation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-09 16:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-4878",
                                "url": "https://ubuntu.com/security/CVE-2026-4878",
                                "cve_description": "A flaw was found in libcap. A local unprivileged user can exploit a Time-of-check-to-time-of-use (TOCTOU) race condition in the `cap_set_file()` function. This allows an attacker with write access to a parent directory to redirect file capability updates to an attacker-controlled file. By doing so, capabilities can be injected into or stripped from unintended executables, leading to privilege escalation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-09 16:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: potential TOCTOU race condition in cap_set_file()",
                            "    - debian/patches/CVE-2026-4878.patch: fix race in libcap/cap_file.c,",
                            "      progs/quicktest.sh.",
                            "    - CVE-2026-4878",
                            ""
                        ],
                        "package": "libcap2",
                        "version": "1:2.44-1ubuntu0.22.04.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 09 Apr 2026 11:04:48 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libcap2-bin",
                "from_version": {
                    "source_package_name": "libcap2",
                    "source_package_version": "1:2.44-1ubuntu0.22.04.2",
                    "version": "1:2.44-1ubuntu0.22.04.2"
                },
                "to_version": {
                    "source_package_name": "libcap2",
                    "source_package_version": "1:2.44-1ubuntu0.22.04.3",
                    "version": "1:2.44-1ubuntu0.22.04.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-4878",
                        "url": "https://ubuntu.com/security/CVE-2026-4878",
                        "cve_description": "A flaw was found in libcap. A local unprivileged user can exploit a Time-of-check-to-time-of-use (TOCTOU) race condition in the `cap_set_file()` function. This allows an attacker with write access to a parent directory to redirect file capability updates to an attacker-controlled file. By doing so, capabilities can be injected into or stripped from unintended executables, leading to privilege escalation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-09 16:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-4878",
                                "url": "https://ubuntu.com/security/CVE-2026-4878",
                                "cve_description": "A flaw was found in libcap. A local unprivileged user can exploit a Time-of-check-to-time-of-use (TOCTOU) race condition in the `cap_set_file()` function. This allows an attacker with write access to a parent directory to redirect file capability updates to an attacker-controlled file. By doing so, capabilities can be injected into or stripped from unintended executables, leading to privilege escalation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-09 16:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: potential TOCTOU race condition in cap_set_file()",
                            "    - debian/patches/CVE-2026-4878.patch: fix race in libcap/cap_file.c,",
                            "      progs/quicktest.sh.",
                            "    - CVE-2026-4878",
                            ""
                        ],
                        "package": "libcap2",
                        "version": "1:2.44-1ubuntu0.22.04.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 09 Apr 2026 11:04:48 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libcurl3-gnutls:riscv64",
                "from_version": {
                    "source_package_name": "curl",
                    "source_package_version": "7.81.0-1ubuntu1.23",
                    "version": "7.81.0-1ubuntu1.23"
                },
                "to_version": {
                    "source_package_name": "curl",
                    "source_package_version": "7.81.0-1ubuntu1.24",
                    "version": "7.81.0-1ubuntu1.24"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-4873",
                        "url": "https://ubuntu.com/security/CVE-2026-4873",
                        "cve_description": "A vulnerability exists where a connection requiring TLS incorrectly reuses an existing unencrypted connection from the same connection pool. If an initial transfer is made in clear-text (via IMAP, SMTP, or POP3), a subsequent request to that same host will bypass the TLS requirement and instead transmit data unencrypted.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-5545",
                        "url": "https://ubuntu.com/security/CVE-2026-5545",
                        "cve_description": "libcurl might in some circumstances reuse the wrong connection when asked to do an authenticated HTTP(S) request after a Negotiate-authenticated one, when both use the same host.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-5773",
                        "url": "https://ubuntu.com/security/CVE-2026-5773",
                        "cve_description": "libcurl might in some circumstances reuse the wrong connection for SMB(S) transfers.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-6253",
                        "url": "https://ubuntu.com/security/CVE-2026-6253",
                        "cve_description": "curl might erroneously pass on credentials for a first proxy to a second proxy.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-6276",
                        "url": "https://ubuntu.com/security/CVE-2026-6276",
                        "cve_description": "Using libcurl, when a custom `Host:` header is first set for a HTTP request and a second request is subsequently done using the same *easy handle* but without the custom `Host:` header set, the second request would use stale information and pass on cookies meant for the first host in the second request. Leak them.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-6429",
                        "url": "https://ubuntu.com/security/CVE-2026-6429",
                        "cve_description": "When asked to both use a `.netrc` file for credentials and to follow HTTP redirects, libcurl could leak the password used for the first host to the followed-to host under certain circumstances. Similar to CVE-2024-11053.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-7168",
                        "url": "https://ubuntu.com/security/CVE-2026-7168",
                        "cve_description": "cross-proxy Digest auth state leak",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-29"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-4873",
                                "url": "https://ubuntu.com/security/CVE-2026-4873",
                                "cve_description": "A vulnerability exists where a connection requiring TLS incorrectly reuses an existing unencrypted connection from the same connection pool. If an initial transfer is made in clear-text (via IMAP, SMTP, or POP3), a subsequent request to that same host will bypass the TLS requirement and instead transmit data unencrypted.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-5545",
                                "url": "https://ubuntu.com/security/CVE-2026-5545",
                                "cve_description": "libcurl might in some circumstances reuse the wrong connection when asked to do an authenticated HTTP(S) request after a Negotiate-authenticated one, when both use the same host.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-5773",
                                "url": "https://ubuntu.com/security/CVE-2026-5773",
                                "cve_description": "libcurl might in some circumstances reuse the wrong connection for SMB(S) transfers.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-6253",
                                "url": "https://ubuntu.com/security/CVE-2026-6253",
                                "cve_description": "curl might erroneously pass on credentials for a first proxy to a second proxy.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-6276",
                                "url": "https://ubuntu.com/security/CVE-2026-6276",
                                "cve_description": "Using libcurl, when a custom `Host:` header is first set for a HTTP request and a second request is subsequently done using the same *easy handle* but without the custom `Host:` header set, the second request would use stale information and pass on cookies meant for the first host in the second request. Leak them.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-6429",
                                "url": "https://ubuntu.com/security/CVE-2026-6429",
                                "cve_description": "When asked to both use a `.netrc` file for credentials and to follow HTTP redirects, libcurl could leak the password used for the first host to the followed-to host under certain circumstances. Similar to CVE-2024-11053.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-7168",
                                "url": "https://ubuntu.com/security/CVE-2026-7168",
                                "cve_description": "cross-proxy Digest auth state leak",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-29"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: connection reuse ignores TLS requirement",
                            "    - debian/patches/CVE-2026-4873.patch: do not reuse a non-tls starttls",
                            "      connection if new requires TLS in lib/url.c.",
                            "    - CVE-2026-4873",
                            "  * SECURITY UPDATE: wrong reuse of HTTP Negotiate connection",
                            "    - debian/patches/CVE-2026-5545.patch: improve connection reuse on",
                            "      negotiate in lib/url.c.",
                            "    - CVE-2026-5545",
                            "  * SECURITY UPDATE: wrong reuse of SMB connection",
                            "    - debian/patches/CVE-2026-5773.patch: disable connection reuse for",
                            "      SMB(S) in lib/smb.c.",
                            "    - CVE-2026-5773",
                            "  * SECURITY UPDATE: proxy credentials leak over redirect-to proxy",
                            "    - debian/patches/CVE-2026-6253.patch: clear the proxy credentials as",
                            "      well on port or scheme change in lib/transfer.*, tests/*.",
                            "    - CVE-2026-6253",
                            "  * SECURITY UPDATE: stale custom cookie host causes cookie leak",
                            "    - debian/patches/CVE-2026-6276.patch: move cookiehost to struct",
                            "      SingleRequest in lib/http.c, lib/url.c, lib/urldata.h, tests/*.",
                            "    - CVE-2026-6276",
                            "  * SECURITY UPDATE: netrc credential leak with reused proxy connection",
                            "    - debian/patches/CVE-2026-6429-pre1.patch: prevent secure schemes",
                            "      pushed over insecure connections in lib/http2.c.",
                            "    - debian/patches/CVE-2026-6429-pre2.patch: same origin tests in",
                            "      lib/http2.c, lib/urlapi-int.h, lib/urlapi.c.",
                            "    - debian/patches/CVE-2026-6429.patch: clear credentials better on",
                            "      redirect in lib/transfer.c, tests/*.",
                            "    - CVE-2026-6429",
                            "  * SECURITY UPDATE: cross-proxy Digest auth state leak",
                            "    - debian/patches/CVE-2026-7168.patch: clear proxy auth properties when",
                            "      switching in lib/setopt.c, lib/vauth/vauth.h, tests/*.",
                            "    - CVE-2026-7168",
                            "  * debian/rules: run test suite with extra debugging information.",
                            ""
                        ],
                        "package": "curl",
                        "version": "7.81.0-1ubuntu1.24",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Wed, 29 Apr 2026 07:35:43 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libcurl4:riscv64",
                "from_version": {
                    "source_package_name": "curl",
                    "source_package_version": "7.81.0-1ubuntu1.23",
                    "version": "7.81.0-1ubuntu1.23"
                },
                "to_version": {
                    "source_package_name": "curl",
                    "source_package_version": "7.81.0-1ubuntu1.24",
                    "version": "7.81.0-1ubuntu1.24"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-4873",
                        "url": "https://ubuntu.com/security/CVE-2026-4873",
                        "cve_description": "A vulnerability exists where a connection requiring TLS incorrectly reuses an existing unencrypted connection from the same connection pool. If an initial transfer is made in clear-text (via IMAP, SMTP, or POP3), a subsequent request to that same host will bypass the TLS requirement and instead transmit data unencrypted.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-5545",
                        "url": "https://ubuntu.com/security/CVE-2026-5545",
                        "cve_description": "libcurl might in some circumstances reuse the wrong connection when asked to do an authenticated HTTP(S) request after a Negotiate-authenticated one, when both use the same host.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-5773",
                        "url": "https://ubuntu.com/security/CVE-2026-5773",
                        "cve_description": "libcurl might in some circumstances reuse the wrong connection for SMB(S) transfers.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-6253",
                        "url": "https://ubuntu.com/security/CVE-2026-6253",
                        "cve_description": "curl might erroneously pass on credentials for a first proxy to a second proxy.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-6276",
                        "url": "https://ubuntu.com/security/CVE-2026-6276",
                        "cve_description": "Using libcurl, when a custom `Host:` header is first set for a HTTP request and a second request is subsequently done using the same *easy handle* but without the custom `Host:` header set, the second request would use stale information and pass on cookies meant for the first host in the second request. Leak them.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-6429",
                        "url": "https://ubuntu.com/security/CVE-2026-6429",
                        "cve_description": "When asked to both use a `.netrc` file for credentials and to follow HTTP redirects, libcurl could leak the password used for the first host to the followed-to host under certain circumstances. Similar to CVE-2024-11053.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-29 14:00:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-7168",
                        "url": "https://ubuntu.com/security/CVE-2026-7168",
                        "cve_description": "cross-proxy Digest auth state leak",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-29"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-4873",
                                "url": "https://ubuntu.com/security/CVE-2026-4873",
                                "cve_description": "A vulnerability exists where a connection requiring TLS incorrectly reuses an existing unencrypted connection from the same connection pool. If an initial transfer is made in clear-text (via IMAP, SMTP, or POP3), a subsequent request to that same host will bypass the TLS requirement and instead transmit data unencrypted.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-5545",
                                "url": "https://ubuntu.com/security/CVE-2026-5545",
                                "cve_description": "libcurl might in some circumstances reuse the wrong connection when asked to do an authenticated HTTP(S) request after a Negotiate-authenticated one, when both use the same host.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-5773",
                                "url": "https://ubuntu.com/security/CVE-2026-5773",
                                "cve_description": "libcurl might in some circumstances reuse the wrong connection for SMB(S) transfers.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-6253",
                                "url": "https://ubuntu.com/security/CVE-2026-6253",
                                "cve_description": "curl might erroneously pass on credentials for a first proxy to a second proxy.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-6276",
                                "url": "https://ubuntu.com/security/CVE-2026-6276",
                                "cve_description": "Using libcurl, when a custom `Host:` header is first set for a HTTP request and a second request is subsequently done using the same *easy handle* but without the custom `Host:` header set, the second request would use stale information and pass on cookies meant for the first host in the second request. Leak them.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-6429",
                                "url": "https://ubuntu.com/security/CVE-2026-6429",
                                "cve_description": "When asked to both use a `.netrc` file for credentials and to follow HTTP redirects, libcurl could leak the password used for the first host to the followed-to host under certain circumstances. Similar to CVE-2024-11053.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-29 14:00:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-7168",
                                "url": "https://ubuntu.com/security/CVE-2026-7168",
                                "cve_description": "cross-proxy Digest auth state leak",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-29"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: connection reuse ignores TLS requirement",
                            "    - debian/patches/CVE-2026-4873.patch: do not reuse a non-tls starttls",
                            "      connection if new requires TLS in lib/url.c.",
                            "    - CVE-2026-4873",
                            "  * SECURITY UPDATE: wrong reuse of HTTP Negotiate connection",
                            "    - debian/patches/CVE-2026-5545.patch: improve connection reuse on",
                            "      negotiate in lib/url.c.",
                            "    - CVE-2026-5545",
                            "  * SECURITY UPDATE: wrong reuse of SMB connection",
                            "    - debian/patches/CVE-2026-5773.patch: disable connection reuse for",
                            "      SMB(S) in lib/smb.c.",
                            "    - CVE-2026-5773",
                            "  * SECURITY UPDATE: proxy credentials leak over redirect-to proxy",
                            "    - debian/patches/CVE-2026-6253.patch: clear the proxy credentials as",
                            "      well on port or scheme change in lib/transfer.*, tests/*.",
                            "    - CVE-2026-6253",
                            "  * SECURITY UPDATE: stale custom cookie host causes cookie leak",
                            "    - debian/patches/CVE-2026-6276.patch: move cookiehost to struct",
                            "      SingleRequest in lib/http.c, lib/url.c, lib/urldata.h, tests/*.",
                            "    - CVE-2026-6276",
                            "  * SECURITY UPDATE: netrc credential leak with reused proxy connection",
                            "    - debian/patches/CVE-2026-6429-pre1.patch: prevent secure schemes",
                            "      pushed over insecure connections in lib/http2.c.",
                            "    - debian/patches/CVE-2026-6429-pre2.patch: same origin tests in",
                            "      lib/http2.c, lib/urlapi-int.h, lib/urlapi.c.",
                            "    - debian/patches/CVE-2026-6429.patch: clear credentials better on",
                            "      redirect in lib/transfer.c, tests/*.",
                            "    - CVE-2026-6429",
                            "  * SECURITY UPDATE: cross-proxy Digest auth state leak",
                            "    - debian/patches/CVE-2026-7168.patch: clear proxy auth properties when",
                            "      switching in lib/setopt.c, lib/vauth/vauth.h, tests/*.",
                            "    - CVE-2026-7168",
                            "  * debian/rules: run test suite with extra debugging information.",
                            ""
                        ],
                        "package": "curl",
                        "version": "7.81.0-1ubuntu1.24",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Wed, 29 Apr 2026 07:35:43 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libkmod2:riscv64",
                "from_version": {
                    "source_package_name": "kmod",
                    "source_package_version": "29-1ubuntu1",
                    "version": "29-1ubuntu1"
                },
                "to_version": {
                    "source_package_name": "kmod",
                    "source_package_version": "29-1ubuntu1.1",
                    "version": "29-1ubuntu1.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-31431",
                        "url": "https://ubuntu.com/security/CVE-2026-31431",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: algif_aead - Revert to operating out-of-place  This mostly reverts commit 72548b093ee3 except for the copying of the associated data.  There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings.  Get rid of all the complexity added for in-place operation and just copy the AD directly.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-04-22 09:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2150743
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-31431",
                                "url": "https://ubuntu.com/security/CVE-2026-31431",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: algif_aead - Revert to operating out-of-place  This mostly reverts commit 72548b093ee3 except for the copying of the associated data.  There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings.  Get rid of all the complexity added for in-place operation and just copy the AD directly.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-04-22 09:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * Disable loading of algif_aead module to mitigate CVE-2026-31431",
                            "    (LP: #2150743)",
                            "    - debian/modprobe.d/disable-algif_aead.conf",
                            ""
                        ],
                        "package": "kmod",
                        "version": "29-1ubuntu1.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [
                            2150743
                        ],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 30 Apr 2026 08:32:42 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libnetplan0:riscv64",
                "from_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.106.1-7ubuntu0.22.04.4",
                    "version": "0.106.1-7ubuntu0.22.04.4"
                },
                "to_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.107.1-3ubuntu0.22.04.3",
                    "version": "0.107.1-3ubuntu0.22.04.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2022-4968",
                        "url": "https://ubuntu.com/security/CVE-2022-4968",
                        "cve_description": "netplan leaks the private key of wireguard to local users. Versions after 1.0 are not affected.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-06-07 01:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2139598,
                    1988018,
                    2020409,
                    2058031
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * debian/patches/lp2139598-execute-udev-rules-before-sriov-apply-service.patch:",
                            "    execute udev rules before starting sriov apply service (LP: #2139598)",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.3",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2139598
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 03 Mar 2026 12:18:29 +0100"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * debian/patches/lp1988018: VF-LAG activation",
                            "    Fixes the order in which SR-IOV configuration is performed and",
                            "    cooperates with VF-LAG activation (LP: #1988018).",
                            "  * debian/patches/lp2020409:",
                            "    Enables setting the embedded-switch mode without having to define",
                            "    virtual functions (LP: #2020409).",
                            "  * debian/libnetplan0.symbols: New symbol _netplan_netdef_get_bond_mode.",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.2",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            1988018,
                            2020409
                        ],
                        "author": "Danilo Egea Gondolfo <danilo.egea.gondolfo@canonical.com>",
                        "date": "Mon, 07 Oct 2024 10:57:38 +0100"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2022-4968",
                                "url": "https://ubuntu.com/security/CVE-2022-4968",
                                "cve_description": "netplan leaks the private key of wireguard to local users. Versions after 1.0 are not affected.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-06-07 01:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * Backport netplan.io 0.107.1-3 to 22.04 (LP: #2058031):",
                            "    - Support for \"dummy\" (`dummy-devices`) interfaces (LP: 1774203) (!361)",
                            "    - Support for \"veth\" (`virtual-ethernets`) interfaces (!368)",
                            "    - Add Python bindings for libnetplan (!385)",
                            "    - netplan: Handle command exceptions (!334)",
                            "    - WPA3 (personal) support (LP: 2023238) (!369)",
                            "    - Add all the commands to the bash completion file (LP: 1749869) (!326)",
                            "    - New submodule for state manipulation (!379)",
                            "    - commands/status: show routes from all routing tables (!390)",
                            "    - cli:status: Make rich pretty printing optional (!388)",
                            "    - libnetplan: expose dhcp4 and dhcp6 properties (!394)",
                            "    - Expose macaddress and DNS configuration from the netdef (!395)",
                            "    - libnetplan: expose the routes list in the netdef (!397)",
                            "    - NetworkManager: Wireguard private key flag support (!371)",
                            "    - Add a netplan_parser_load_keyfile() Python binding (!351)",
                            "    - keyfile parser: add support for all tunnel types (LP: 2016473) (!360)",
                            "    - parse-nm:wg: add support for reading the listen-port property (!372)",
                            "    - parse-nm: add support for VRF devices (!398)",
                            "    - Vlan keyfile parser support (!370)",
                            "    - Netplan docs rework (!333 & !337)",
                            "    - docs: Add a short netplan-everywhere howto (!325)",
                            "    - doc: make us of sphinx copybutton plugin (!354)",
                            "    - doc: Add Ubuntu Code of Conduct 2.0 (!355)",
                            "    - doc: Explanation about 00-network-manager-all.yaml (!378)",
                            "    - wifi: add support for WPA3-Enterprise (LP: 2029876) (!402)",
                            "    - wifi: support WPA2 and WPA3 Personal simultaneously (!404)",
                            "    - added mii-monitor-interval example (!411)",
                            "    - docs: Add \"Contribute Documentation\" how-to",
                            "    - auth: add support for LEAP and EAP-PWD (!415)",
                            "    - tests: Add autopkgtest for (LP: 1959570) (!419)",
                            "    - wifi: make it possible to have a psk and an eap password simultaneously",
                            "      (!416)",
                            "    - doc: Set-up some basic Doxygen project (!423)",
                            "    - doc: Make Sphinx to handle autodoxygen project, using breathe (!423)",
                            "    - doc: create libnetplan apidoc structure (!423)",
                            "    - inc: Start documenting public API (!423)",
                            "    - doc: Update 'Netplan everywhere' for 23.10 (!418)",
                            "    SECURITY UPDATE: weak permissions on secret files, command injection",
                            "    - d/p/lp2065738/0014-libnetplan-use-more-restrictive-file-permissions.patch:",
                            "      Use more restrictive file permissions to prevent unprivileged users to",
                            "      read sensitive data from back end files (LP: 2065738, 1987842)",
                            "    - CVE-2022-4968",
                            "    - d/p/lp2066258/0015-libnetplan-escape-control-characters.patch:",
                            "      Escape control characters in the parser and double quotes in backend",
                            "      files.",
                            "    - d/p/lp2066258/0016-backends-escape-file-paths.patch:",
                            "      Escape special characters in file paths.",
                            "    - d/p/lp2066258/0017-backends-escape-semicolons-in-service-units.patch:",
                            "      Escape isolated semicolons in systemd service units. (LP: 2066258)",
                            "    - debian/netplan-generator.postinst: Add a postinst maintainer script to",
                            "      call the generator. It's needed so the file permissions fixes will be",
                            "      applied automatically.",
                            "    Bug fixes:",
                            "    - Fix FTBFS on Fedora and refresh RPM packaging (!323)",
                            "    - parser: validate lacp-rate properly (LP: 1745648) (!324)",
                            "    - use meson-make-symlink.sh helper instead of install_symlink() (!327)",
                            "    - netplan: cli: fix typo from 'unkown' to 'unknown' (!328)",
                            "    - Handle duplication during parser second pass (LP: 2007682) (!329)",
                            "    - parse:ovs: Ignore deprecated OpenFlow1.6 protocol (LP: 1963735) (!332)",
                            "    - dbus: Build the copy path correctly (!331)",
                            "    - tests: add new spread based snapd integration test (!330)",
                            "    - Use controlled execution environment, to avoid failure if PATH is unset",
                            "      (LP: 1959570) (!336)",
                            "    - Some refactoring (!338)",
                            "    - netplan: adjust the maximum buffer size to 1MB (!340)",
                            "    - parse: use \"--\" with systemd-escape (!347)",
                            "    - docs: fix bridge parameters types and add examples (!346)",
                            "    - vrfs: skip policies parsing if list is NULL (LP: 2016427) (!341)",
                            "    - networkd: plug a memory leak (!344)",
                            "    - libnetplan: don't try to read from a NULL file (!342)",
                            "    - nm: return if write_routes() fails (!345)",
                            "    - parse: plug a memory leak (!348)",
                            "    - parse: set the backend on nm-devices to NM (!349)",
                            "    - parse: don't point to the wrong node on validation (!343)",
                            "    - rtd: set the OS and Python versions explicitly (!357)",
                            "    - Fix 8021x eap method parsing (LP: 2016625) (!358)",
                            "    - CI: update canonical/setup-lxd to v0.1.1 (!359)",
                            "    - CI: fix dch after adding the new 0.106.1 tag (!364)",
                            "    - Provide frequency to wpa_supplicant in adhoc mode (LP: 2020754) (!363)",
                            "    - Improve the coverage of the memory leak tests (!365)",
                            "    - Fix keyfile parsing of wireguard config (!366)",
                            "    - routes: fix metric rendering (LP: 2023681) (!367)",
                            "    - CI: add DebCI integration test (!362)",
                            "    - CI: initial NetworkManager autopkgtests (!374)",
                            "    - parse-nm: handle cloned-mac-address special cases (LP: 2026230) (!376)",
                            "    - Improve autopkgtest stability with systemd 253 & iproute 6.4 (!377)",
                            "    - Fixes for minor issues (!380)",
                            "    - tests:integration: Adopt for systemd v254 (Closes: #1041310) (!381)",
                            "    - parse: Downgrade NM passthrough warning to debug (!384)",
                            "    - Don't drop files with just global values (LP: 2027584) (!382)",
                            "    - Fixing Coverity issues (!383)",
                            "    - CLI: Refactoring to avoid namespace clash with public bindings (!387)",
                            "    - tests: fix test coverage report with newer python-coverage (!389)",
                            "    - github: add a scheduled action to run Coverity (!391)",
                            "    - github: only run the coverity workflow on our repository (!392)",
                            "    - Addressing a few issues found (!393)",
                            "    - Wireguard fixes (!352)",
                            "    - Fix a memory leak, an assert and an error message (!350)",
                            "    - ovs: don't allow peers with the same name (!353)",
                            "    - CI: make use of the canonical/setup-lxd action (!356)",
                            "    - test:ovs: Avoid NetworkManager taking contol, breaking a test",
                            "    - parse: allow COMMON_LINK_HANDLERS for VRFs (!401)",
                            "    - util: don't return a placeholder netdef in the iterator (!406)",
                            "    - tunnels/validation: do not error out if \"local\" is not defined (!407)",
                            "    - tests: add some integration tests without the local address (!407)",
                            "    - wireguard: ignore empty endpoints (LP: 2038811) (!414)",
                            "    - parse: improve the parsing of access-points (LP: 1809994) (!413)",
                            "    - wifi: replace the previously defined AP with the new one (!413)",
                            "    - doc: spelling check improvements (!417)",
                            "    - Fix permissions on folder '/run/NetworkManager/' (!422)",
                            "    - cli:try: avoid linting error for type hints (Closes: #1058524) (!422)",
                            "    - nm-parse: always read the PSK into the new psk variable (!416)",
                            "    - networkd: fix formatting (!424)",
                            "    - networkd: replace deprecated CriticalConnection= by KeepConfiguration=",
                            "      (!424)",
                            "    - networkd: move KeepConfiguration= into [Network] section",
                            "    - apply: bring \"lo\" back up if it's managed by NM (!408)",
                            "    - apply: don't assume the NM loopback connection is called \"lo\" (!408)",
                            "    Packaging restructuring:",
                            "    - Split netplan-generator into separate package to make the Python",
                            "      dependency optional.",
                            "    - Split python3-netplan bindings into a separate package",
                            "  * Add patches for bug fixes from netplan.io 1.0-1 and 1.0.1-1:",
                            "    - debian/patches/lp2041727:",
                            "      Check if ovsdb-server.service is active before displaying warning",
                            "      (LP: 2041727) (!421)",
                            "    - d/p/0004-tests-assert-generated-.service-files-in-assert_srio.patch,",
                            "      d/p/0005-tests-sriov-test-if-the-generated-netplan-rebind-ser.patch,",
                            "      d/p/0006-sriov-don-t-generate-duplicate-entries-in-the-rebind.patch:",
                            "      Don't generate duplicate entries in the netplan-sriov-rebind.service",
                            "      (!437)",
                            "    - d/p/0017-emitter-allow-unicode-characters-in-the-emitter.patch.",
                            "      Allow non-ascii characters in the YAML emitter (LP: 2071652) (!485).",
                            "    - d/p/0018-parse-do-not-escape-all-non-ascii-bytes.patch.",
                            "      Don't escape all non-ascii bytes (!486).",
                            "  * Drop patches not required for 22.04:",
                            "    - debian/patches/python-limited-stable-api.patch",
                            "    - d/p/sru-compat/0013-Keep-old-file-permission-for-backwards-compatibility.patch.",
                            "      From now on we want libnetplan to create files with tight permissions.",
                            "  * Add patches for SRU backwards compatibility:",
                            "    - 0014-Demote-lacp-rate-validation-error-to-warning-for-bac.patch:",
                            "      Convert the error to a warning in a new validation for the option",
                            "      'lacp-rate' to prevent breaking existing setups",
                            "  * debian/control:",
                            "    - Drop python3-rich dependency to Suggests",
                            "    - Drop build dependency on systemd-dev",
                            "  * debian/netplan.io.preinst:",
                            "    - This preinst script is intended to cleanup the .pyc files from",
                            "      share/netplan/netplan. This directory is supposed to be removed after",
                            "      the upgrade from netplan.io 0.106.1 to 0.107.1, as the Python code",
                            "      was moved to it's own python3-netplan package, but it's left behind",
                            "      due to Python cached files.",
                            "  * Drop changes related to usr-merge and not required for 22.04",
                            "    - debian/netplan-generator.install",
                            "    - debian/netplan-generator.dirs",
                            "    - debian/netplan-generator.postinst",
                            "    - debian/netplan-generator.preinst",
                            "  * d/netplan-generator.lintian-overrides, d/netplan.io.lintian-overrides:",
                            "    - Drop overrides file. It wasn't really silencing any lintian warnings.",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2058031
                        ],
                        "author": "Danilo Egea Gondolfo <danilo.egea.gondolfo@canonical.com>",
                        "date": "Fri, 16 Aug 2024 17:59:32 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libnghttp2-14:riscv64",
                "from_version": {
                    "source_package_name": "nghttp2",
                    "source_package_version": "1.43.0-1ubuntu0.2",
                    "version": "1.43.0-1ubuntu0.2"
                },
                "to_version": {
                    "source_package_name": "nghttp2",
                    "source_package_version": "1.43.0-1ubuntu0.3",
                    "version": "1.43.0-1ubuntu0.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-27135",
                        "url": "https://ubuntu.com/security/CVE-2026-27135",
                        "cve_description": "nghttp2 is an implementation of the Hypertext Transfer Protocol version 2 in C. Prior to version 1.68.1, the nghttp2 library stops reading the incoming data when user facing public API `nghttp2_session_terminate_session` or `nghttp2_session_terminate_session2` is called by the application. They might be called internally by the library when it detects the situation that is subject to connection error. Due to the missing internal state validation, the library keeps reading the rest of the data after one of those APIs is called. Then receiving a malformed frame that causes FRAME_SIZE_ERROR causes assertion failure. nghttp2 v1.68.1 adds missing state validation to avoid assertion failure. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-27135",
                                "url": "https://ubuntu.com/security/CVE-2026-27135",
                                "cve_description": "nghttp2 is an implementation of the Hypertext Transfer Protocol version 2 in C. Prior to version 1.68.1, the nghttp2 library stops reading the incoming data when user facing public API `nghttp2_session_terminate_session` or `nghttp2_session_terminate_session2` is called by the application. They might be called internally by the library when it detects the situation that is subject to connection error. Due to the missing internal state validation, the library keeps reading the rest of the data after one of those APIs is called. Then receiving a malformed frame that causes FRAME_SIZE_ERROR causes assertion failure. nghttp2 v1.68.1 adds missing state validation to avoid assertion failure. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Denial of service through assertion failure.",
                            "    - debian/patches/CVE-2026-27135-pre1.patch: Add iframe->state ==",
                            "      NGHTTP2_IB_IGN_ALL checks in lib/nghttp2_session.c.",
                            "    - debian/patches/CVE-2026-27135-pre2.patch: Add iframe->state ==",
                            "      NGHTTP2_IB_IGN_ALL checks in lib/nghttp2_session.c.",
                            "    - debian/patches/CVE-2026-27135.patch: Add iframe->state ==",
                            "      NGHTTP2_IB_IGN_ALL checks in lib/nghttp2_session.c.",
                            "    - debian/patches/CVE-2026-27135-post1.patch: Add iframe->state ==",
                            "      NGHTTP2_IB_IGN_ALL checks in lib/nghttp2_session.c.",
                            "    - CVE-2026-27135",
                            ""
                        ],
                        "package": "nghttp2",
                        "version": "1.43.0-1ubuntu0.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Hlib Korzhynskyy <hlib.korzhynskyy@canonical.com>",
                        "date": "Tue, 28 Apr 2026 16:49:21 -0230"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libnss-systemd:riscv64",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libntfs-3g89",
                "from_version": {
                    "source_package_name": "ntfs-3g",
                    "source_package_version": "1:2021.8.22-3ubuntu1.2",
                    "version": "1:2021.8.22-3ubuntu1.2"
                },
                "to_version": {
                    "source_package_name": "ntfs-3g",
                    "source_package_version": "1:2021.8.22-3ubuntu1.3",
                    "version": "1:2021.8.22-3ubuntu1.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2023-52890",
                        "url": "https://ubuntu.com/security/CVE-2023-52890",
                        "cve_description": "NTFS-3G before 75dcdc2 has a use-after-free in ntfs_uppercase_mbs in libntfs-3g/unistr.c. NOTE: discussion suggests that exploitation would be challenging.",
                        "cve_priority": "low",
                        "cve_public_date": "2024-06-13 04:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-40706",
                        "url": "https://ubuntu.com/security/CVE-2026-40706",
                        "cve_description": "In NTFS-3G 2022.10.3 before 2026.2.25, a heap buffer overflow exists in ntfs_build_permissions_posix() in acls.c that allows an attacker to corrupt heap memory in the SUID-root ntfs-3g binary by crafting a malicious NTFS image. The overflow is triggered on the READ path (stat, readdir, open) when processing a security descriptor with multiple ACCESS_DENIED ACEs containing WRITE_OWNER from distinct group SIDs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-21 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2023-52890",
                                "url": "https://ubuntu.com/security/CVE-2023-52890",
                                "cve_description": "NTFS-3G before 75dcdc2 has a use-after-free in ntfs_uppercase_mbs in libntfs-3g/unistr.c. NOTE: discussion suggests that exploitation would be challenging.",
                                "cve_priority": "low",
                                "cve_public_date": "2024-06-13 04:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-40706",
                                "url": "https://ubuntu.com/security/CVE-2026-40706",
                                "cve_description": "In NTFS-3G 2022.10.3 before 2026.2.25, a heap buffer overflow exists in ntfs_build_permissions_posix() in acls.c that allows an attacker to corrupt heap memory in the SUID-root ntfs-3g binary by crafting a malicious NTFS image. The overflow is triggered on the READ path (stat, readdir, open) when processing a security descriptor with multiple ACCESS_DENIED ACEs containing WRITE_OWNER from distinct group SIDs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-21 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: use-after-free in ntfs_uppercase_mbs",
                            "    - debian/patches/CVE-2023-52890.patch: fix use-after-free in",
                            "      libntfs-3g/unistr.c.",
                            "    - CVE-2023-52890",
                            "  * SECURITY UPDATE: heap overflow in ntfs_build_permissions_posix()",
                            "    - debian/patches/CVE-2026-40706.patch: allocate space for the worst",
                            "      case number of ACE entries in libntfs-3g/acls.c.",
                            "    - CVE-2026-40706",
                            ""
                        ],
                        "package": "ntfs-3g",
                        "version": "1:2021.8.22-3ubuntu1.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 17 Apr 2026 13:54:28 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpackagekit-glib2-18:riscv64",
                "from_version": {
                    "source_package_name": "packagekit",
                    "source_package_version": "1.2.5-2ubuntu3",
                    "version": "1.2.5-2ubuntu3"
                },
                "to_version": {
                    "source_package_name": "packagekit",
                    "source_package_version": "1.2.5-2ubuntu3.1",
                    "version": "1.2.5-2ubuntu3.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2148512
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: TOCTOU Race on Transaction Flags (LP: #2148512)",
                            "    - debian/patches/Do-not-allow-re-invoking-methods-on-non-new-txn.patch:",
                            "      do not allow re-invoking methods on non-new transactions in",
                            "      src/pk-transaction.c.",
                            "    - CVE number pending",
                            ""
                        ],
                        "package": "packagekit",
                        "version": "1.2.5-2ubuntu3.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [
                            2148512
                        ],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Mon, 20 Apr 2026 08:24:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpam-cap:riscv64",
                "from_version": {
                    "source_package_name": "libcap2",
                    "source_package_version": "1:2.44-1ubuntu0.22.04.2",
                    "version": "1:2.44-1ubuntu0.22.04.2"
                },
                "to_version": {
                    "source_package_name": "libcap2",
                    "source_package_version": "1:2.44-1ubuntu0.22.04.3",
                    "version": "1:2.44-1ubuntu0.22.04.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-4878",
                        "url": "https://ubuntu.com/security/CVE-2026-4878",
                        "cve_description": "A flaw was found in libcap. A local unprivileged user can exploit a Time-of-check-to-time-of-use (TOCTOU) race condition in the `cap_set_file()` function. This allows an attacker with write access to a parent directory to redirect file capability updates to an attacker-controlled file. By doing so, capabilities can be injected into or stripped from unintended executables, leading to privilege escalation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-09 16:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-4878",
                                "url": "https://ubuntu.com/security/CVE-2026-4878",
                                "cve_description": "A flaw was found in libcap. A local unprivileged user can exploit a Time-of-check-to-time-of-use (TOCTOU) race condition in the `cap_set_file()` function. This allows an attacker with write access to a parent directory to redirect file capability updates to an attacker-controlled file. By doing so, capabilities can be injected into or stripped from unintended executables, leading to privilege escalation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-09 16:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: potential TOCTOU race condition in cap_set_file()",
                            "    - debian/patches/CVE-2026-4878.patch: fix race in libcap/cap_file.c,",
                            "      progs/quicktest.sh.",
                            "    - CVE-2026-4878",
                            ""
                        ],
                        "package": "libcap2",
                        "version": "1:2.44-1ubuntu0.22.04.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 09 Apr 2026 11:04:48 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpam-systemd:riscv64",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpng16-16:riscv64",
                "from_version": {
                    "source_package_name": "libpng1.6",
                    "source_package_version": "1.6.37-3ubuntu0.4",
                    "version": "1.6.37-3ubuntu0.4"
                },
                "to_version": {
                    "source_package_name": "libpng1.6",
                    "source_package_version": "1.6.37-3ubuntu0.5",
                    "version": "1.6.37-3ubuntu0.5"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-33416",
                        "url": "https://ubuntu.com/security/CVE-2026-33416",
                        "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. In versions 1.2.1 through 1.6.55, `png_set_tRNS` and `png_set_PLTE` each alias a heap-allocated buffer between `png_struct` and `png_info`, sharing a single allocation across two structs with independent lifetimes. The `trans_alpha` aliasing has been present since at least libpng 1.0, and the `palette` aliasing since at least 1.2.1. Both affect all prior release lines `png_set_tRNS` sets `png_ptr->trans_alpha = info_ptr->trans_alpha` (256-byte buffer) and `png_set_PLTE` sets `info_ptr->palette = png_ptr->palette` (768-byte buffer). In both cases, calling `png_free_data` (with `PNG_FREE_TRNS` or `PNG_FREE_PLTE`) frees the buffer through `info_ptr` while the corresponding `png_ptr` pointer remains dangling. Subsequent row-transform functions dereference and, in some code paths, write to the freed memory. A second call to `png_set_tRNS` or `png_set_PLTE` has the same effect, because both functions call `png_free_data` internally before reallocating the `info_ptr` buffer. Version 1.6.56 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-26 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-33636",
                        "url": "https://ubuntu.com/security/CVE-2026-33636",
                        "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. In versions 1.6.36 through 1.6.55, an out-of-bounds read and write exists in libpng's ARM/AArch64 Neon-optimized palette expansion path. When expanding 8-bit paletted rows to RGB or RGBA, the Neon loop processes a final partial chunk without verifying that enough input pixels remain. Because the implementation works backward from the end of the row, the final iteration dereferences pointers before the start of the row buffer (OOB read) and writes expanded pixel data to the same underflowed positions (OOB write). This is reachable via normal decoding of attacker-controlled PNG input if Neon is enabled. Version 1.6.56 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-26 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-34757",
                        "url": "https://ubuntu.com/security/CVE-2026-34757",
                        "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. From 1.0.9 to before 1.6.57, passing a pointer obtained from png_get_PLTE, png_get_tRNS, or png_get_hIST back into the corresponding setter on the same png_struct/png_info pair causes the setter to read from freed memory and copy its contents into the replacement buffer. The setter frees the internal buffer before copying from the caller-supplied pointer, which now dangles. The freed region may contain stale data (producing silently corrupted chunk metadata) or data from subsequent heap allocations (leaking unrelated heap contents into the chunk struct). This vulnerability is fixed in 1.6.57.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-09 15:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-33416",
                                "url": "https://ubuntu.com/security/CVE-2026-33416",
                                "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. In versions 1.2.1 through 1.6.55, `png_set_tRNS` and `png_set_PLTE` each alias a heap-allocated buffer between `png_struct` and `png_info`, sharing a single allocation across two structs with independent lifetimes. The `trans_alpha` aliasing has been present since at least libpng 1.0, and the `palette` aliasing since at least 1.2.1. Both affect all prior release lines `png_set_tRNS` sets `png_ptr->trans_alpha = info_ptr->trans_alpha` (256-byte buffer) and `png_set_PLTE` sets `info_ptr->palette = png_ptr->palette` (768-byte buffer). In both cases, calling `png_free_data` (with `PNG_FREE_TRNS` or `PNG_FREE_PLTE`) frees the buffer through `info_ptr` while the corresponding `png_ptr` pointer remains dangling. Subsequent row-transform functions dereference and, in some code paths, write to the freed memory. A second call to `png_set_tRNS` or `png_set_PLTE` has the same effect, because both functions call `png_free_data` internally before reallocating the `info_ptr` buffer. Version 1.6.56 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-26 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-33636",
                                "url": "https://ubuntu.com/security/CVE-2026-33636",
                                "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. In versions 1.6.36 through 1.6.55, an out-of-bounds read and write exists in libpng's ARM/AArch64 Neon-optimized palette expansion path. When expanding 8-bit paletted rows to RGB or RGBA, the Neon loop processes a final partial chunk without verifying that enough input pixels remain. Because the implementation works backward from the end of the row, the final iteration dereferences pointers before the start of the row buffer (OOB read) and writes expanded pixel data to the same underflowed positions (OOB write). This is reachable via normal decoding of attacker-controlled PNG input if Neon is enabled. Version 1.6.56 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-26 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-34757",
                                "url": "https://ubuntu.com/security/CVE-2026-34757",
                                "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. From 1.0.9 to before 1.6.57, passing a pointer obtained from png_get_PLTE, png_get_tRNS, or png_get_hIST back into the corresponding setter on the same png_struct/png_info pair causes the setter to read from freed memory and copy its contents into the replacement buffer. The setter frees the internal buffer before copying from the caller-supplied pointer, which now dangles. The freed region may contain stale data (producing silently corrupted chunk metadata) or data from subsequent heap allocations (leaking unrelated heap contents into the chunk struct). This vulnerability is fixed in 1.6.57.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-09 15:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: use-after-free via shared buffers",
                            "    - debian/patches/CVE-2026-33416-pre1.patch: Fix a memory leak in",
                            "      png_set_tRNS in pngset.c.",
                            "    - debian/patches/CVE-2026-33416-pre2.patch: Avoid a memory leak when",
                            "      allocation of a pCAL buffer fails in pngset.c.",
                            "    - debian/patches/CVE-2026-33416-1.patch: fix: Resolve use-after-free on",
                            "      `png_ptr->trans_alpha` in pngread.c, pngrutil.c, pngset.c, pngwrite.c.",
                            "    - debian/patches/CVE-2026-33416-2.patch: fix: Resolve use-after-free on",
                            "      `png_ptr->palette` in pngread.c, pngrtran.c, pngrutil.c, pngset.c,",
                            "      pngwrite.c.",
                            "    - debian/patches/CVE-2026-33416-3.patch: fix: Initialize tail bytes in",
                            "      `trans_alpha` buffers in pngset.c.",
                            "    - debian/patches/CVE-2026-33416-4.patch: fix: Sync `info_ptr->palette` after",
                            "      in-place transforms in pngrtran.c.",
                            "    - debian/patches/CVE-2026-33416-5.patch: fix: Sync `info_ptr->palette`",
                            "      unconditionally after in-place transforms in pngrtran.c.",
                            "    - CVE-2026-33416",
                            "  * SECURITY UPDATE: out-of-bounds access in ARM palette expansion path",
                            "    - debian/patches/CVE-2026-33636.patch: fix(arm): Resolve out-of-bounds",
                            "      read/write in NEON palette expansion in arm/palette_neon_intrinsics.c.",
                            "    - CVE-2026-33636",
                            "  * SECURITY UPDATE: getter-to-setter aliasing issues",
                            "    - debian/patches/CVE-2026-34757-1.patch: fix: Handle self-referencing",
                            "      pointers in getter-to-setter aliasing in CMakeLists.txt, Makefile.am,",
                            "      contrib/libtests/pnggetset.c, pngset.c, tests/pnggetset.",
                            "    - debian/patches/CVE-2026-34757-2.patch: fix: Handle getter-to-setter",
                            "      aliasing in append-style chunk setters in contrib/libtests/pnggetset.c,",
                            "      pngset.c.",
                            "    - debian/rules: set exec permissions on tests/pnggetset.",
                            "    - CVE-2026-34757",
                            "  * SECURITY UPDATE: integer overflow in rowbytes computation",
                            "    - debian/patches/rowbytes_overflow.patch: fix: Prevent integer overflow in",
                            "      rowbytes computation in pngrtran.c.",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "libpng1.6",
                        "version": "1.6.37-3ubuntu0.5",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Tue, 05 May 2026 15:14:16 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpolkit-agent-1-0:riscv64",
                "from_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33",
                    "version": "0.105-33"
                },
                "to_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33ubuntu0.1",
                    "version": "0.105-33ubuntu0.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-7519",
                        "url": "https://ubuntu.com/security/CVE-2025-7519",
                        "cve_description": "A flaw was found in polkit. When processing an XML policy with 32 or more nested elements in depth, an out-of-bounds write can be triggered. This issue can lead to a crash or other unexpected behavior, and arbitrary code execution is not discarded. To exploit this flaw, a high-privilege account is needed as it's required to place the malicious policy file properly.",
                        "cve_priority": "low",
                        "cve_public_date": "2025-07-14 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-4897",
                        "url": "https://ubuntu.com/security/CVE-2026-4897",
                        "cve_description": "A flaw was found in polkit. A local user can exploit this by providing a specially crafted, excessively long input to the `polkit-agent-helper-1` setuid binary via standard input (stdin). This unbounded input can lead to an out-of-memory (OOM) condition, resulting in a Denial of Service (DoS) for the system.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-26 15:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-7519",
                                "url": "https://ubuntu.com/security/CVE-2025-7519",
                                "cve_description": "A flaw was found in polkit. When processing an XML policy with 32 or more nested elements in depth, an out-of-bounds write can be triggered. This issue can lead to a crash or other unexpected behavior, and arbitrary code execution is not discarded. To exploit this flaw, a high-privilege account is needed as it's required to place the malicious policy file properly.",
                                "cve_priority": "low",
                                "cve_public_date": "2025-07-14 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-4897",
                                "url": "https://ubuntu.com/security/CVE-2026-4897",
                                "cve_description": "A flaw was found in polkit. A local user can exploit this by providing a specially crafted, excessively long input to the `polkit-agent-helper-1` setuid binary via standard input (stdin). This unbounded input can lead to an out-of-memory (OOM) condition, resulting in a Denial of Service (DoS) for the system.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-26 15:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: OOB write via nested elements in XML policy",
                            "    - debian/patches/CVE-2025-7519.patch: check depth in",
                            "      src/polkitbackend/polkitbackendactionpool.c.",
                            "    - CVE-2025-7519",
                            "  * SECURITY UPDATE: DoS via excessively long input",
                            "    - debian/patches/CVE-2026-4897.patch: fix getline() string overflow in",
                            "      src/polkitagent/polkitagenthelperprivate.c.",
                            "    - CVE-2026-4897",
                            ""
                        ],
                        "package": "policykit-1",
                        "version": "0.105-33ubuntu0.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 10 Apr 2026 06:59:20 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpolkit-gobject-1-0:riscv64",
                "from_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33",
                    "version": "0.105-33"
                },
                "to_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33ubuntu0.1",
                    "version": "0.105-33ubuntu0.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-7519",
                        "url": "https://ubuntu.com/security/CVE-2025-7519",
                        "cve_description": "A flaw was found in polkit. When processing an XML policy with 32 or more nested elements in depth, an out-of-bounds write can be triggered. This issue can lead to a crash or other unexpected behavior, and arbitrary code execution is not discarded. To exploit this flaw, a high-privilege account is needed as it's required to place the malicious policy file properly.",
                        "cve_priority": "low",
                        "cve_public_date": "2025-07-14 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-4897",
                        "url": "https://ubuntu.com/security/CVE-2026-4897",
                        "cve_description": "A flaw was found in polkit. A local user can exploit this by providing a specially crafted, excessively long input to the `polkit-agent-helper-1` setuid binary via standard input (stdin). This unbounded input can lead to an out-of-memory (OOM) condition, resulting in a Denial of Service (DoS) for the system.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-26 15:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-7519",
                                "url": "https://ubuntu.com/security/CVE-2025-7519",
                                "cve_description": "A flaw was found in polkit. When processing an XML policy with 32 or more nested elements in depth, an out-of-bounds write can be triggered. This issue can lead to a crash or other unexpected behavior, and arbitrary code execution is not discarded. To exploit this flaw, a high-privilege account is needed as it's required to place the malicious policy file properly.",
                                "cve_priority": "low",
                                "cve_public_date": "2025-07-14 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-4897",
                                "url": "https://ubuntu.com/security/CVE-2026-4897",
                                "cve_description": "A flaw was found in polkit. A local user can exploit this by providing a specially crafted, excessively long input to the `polkit-agent-helper-1` setuid binary via standard input (stdin). This unbounded input can lead to an out-of-memory (OOM) condition, resulting in a Denial of Service (DoS) for the system.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-26 15:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: OOB write via nested elements in XML policy",
                            "    - debian/patches/CVE-2025-7519.patch: check depth in",
                            "      src/polkitbackend/polkitbackendactionpool.c.",
                            "    - CVE-2025-7519",
                            "  * SECURITY UPDATE: DoS via excessively long input",
                            "    - debian/patches/CVE-2026-4897.patch: fix getline() string overflow in",
                            "      src/polkitagent/polkitagenthelperprivate.c.",
                            "    - CVE-2026-4897",
                            ""
                        ],
                        "package": "policykit-1",
                        "version": "0.105-33ubuntu0.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 10 Apr 2026 06:59:20 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libssl3:riscv64",
                "from_version": {
                    "source_package_name": "openssl",
                    "source_package_version": "3.0.2-0ubuntu1.21",
                    "version": "3.0.2-0ubuntu1.21"
                },
                "to_version": {
                    "source_package_name": "openssl",
                    "source_package_version": "3.0.2-0ubuntu1.23",
                    "version": "3.0.2-0ubuntu1.23"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-28387",
                        "url": "https://ubuntu.com/security/CVE-2026-28387",
                        "cve_description": "Issue summary: An uncommon configuration of clients performing DANE TLSA-based server authentication, when paired with uncommon server DANE TLSA records, may result in a use-after-free and/or double-free on the client side.  Impact summary: A use after free can have a range of potential consequences such as the corruption of valid data, crashes or execution of arbitrary code.  However, the issue only affects clients that make use of TLSA records with both the PKIX-TA(0/PKIX-EE(1) certificate usages and the DANE-TA(2) certificate usage.  By far the most common deployment of DANE is in SMTP MTAs for which RFC7672 recommends that clients treat as 'unusable' any TLSA records that have the PKIX certificate usages.  These SMTP (or other similar) clients are not vulnerable to this issue.  Conversely, any clients that support only the PKIX usages, and ignore the DANE-TA(2) usage are also not vulnerable.  The client would also need to be communicating with a server that publishes a TLSA RRset with both types of TLSA records.  No FIPS modules are affected by this issue, the problem code is outside the FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28388",
                        "url": "https://ubuntu.com/security/CVE-2026-28388",
                        "cve_description": "Issue summary: When a delta CRL that contains a Delta CRL Indicator extension is processed a NULL pointer dereference might happen if the required CRL Number extension is missing.  Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application.  When CRL processing and delta CRL processing is enabled during X.509 certificate verification, the delta CRL processing does not check whether the CRL Number extension is NULL before dereferencing it. When a malformed delta CRL file is being processed, this parameter can be NULL, causing a NULL pointer dereference.  Exploiting this issue requires the X509_V_FLAG_USE_DELTAS flag to be enabled in the verification context, the certificate being verified to contain a freshestCRL extension or the base CRL to have the EXFLAG_FRESHEST flag set, and an attacker to provide a malformed CRL to an application that processes it.  The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. For that reason the issue was assessed as Low severity according to our Security Policy.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary. Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application. When CRL processing and delta CRL processing is enabled during X.509 certificate verification, the delta CRL processing does not check whether the CRL Number extension is NULL before dereferencing it. When a malformed delta CRL file is being processed, this parameter can be NULL, causing a NULL pointer dereference. Exploiting this issue requires the X509_V_FLAG_USE_DELTAS flag to be enabled in the verification context, the certificate being verified to contain a freshestCRL extension or the base CRL to have the EXFLAG_FRESHEST flag set, and an attacker to provide a malformed CRL to an application that processes it. The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. For that reason the issue was assessed as Low severity according to our Security Policy. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28389",
                        "url": "https://ubuntu.com/security/CVE-2026-28389",
                        "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyAgreeRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyAgreeRecipientInfo is processed, the optional parameters field of KeyEncryptionAlgorithmIdentifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary. Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service. When a CMS EnvelopedData message that uses KeyAgreeRecipientInfo is processed, the optional parameters field of KeyEncryptionAlgorithmIdentifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing. Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28390",
                        "url": "https://ubuntu.com/security/CVE-2026-28390",
                        "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyTransportRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyTransportRecipientInfo with RSA-OAEP encryption is processed, the optional parameters field of RSA-OAEP SourceFunc algorithm identifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary. Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service. When a CMS EnvelopedData message that uses KeyTransportRecipientInfo with RSA-OAEP encryption is processed, the optional parameters field of RSA-OAEP SourceFunc algorithm identifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing. Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31789",
                        "url": "https://ubuntu.com/security/CVE-2026-31789",
                        "cve_description": "Issue summary: Converting an excessively large OCTET STRING value to a hexadecimal string leads to a heap buffer overflow on 32 bit platforms.  Impact summary: A heap buffer overflow may lead to a crash or possibly an attacker controlled code execution or other undefined behavior.  If an attacker can supply a crafted X.509 certificate with an excessively large OCTET STRING value in extensions such as the Subject Key Identifier (SKID) or Authority Key Identifier (AKID) which are being converted to hex, the size of the buffer needed for the result is calculated as multiplication of the input length by 3. On 32 bit platforms, this multiplication may overflow resulting in the allocation of a smaller buffer and a heap buffer overflow.  Applications and services that print or log contents of untrusted X.509 certificates are vulnerable to this issue. As the certificates would have to have sizes of over 1 Gigabyte, printing or logging such certificates is a fairly unlikely operation and only 32 bit platforms are affected, this issue was assigned Low severity.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31790",
                        "url": "https://ubuntu.com/security/CVE-2026-31790",
                        "cve_description": "Issue summary: Applications using RSASVE key encapsulation to establish a secret encryption key can send contents of an uninitialized memory buffer to a malicious peer.  Impact summary: The uninitialized buffer might contain sensitive data from the previous execution of the application process which leads to sensitive data leakage to an attacker.  RSA_public_encrypt() returns the number of bytes written on success and -1 on error. The affected code tests only whether the return value is non-zero. As a result, if RSA encryption fails, encapsulation can still return success to the caller, set the output lengths, and leave the caller to use the contents of the ciphertext buffer as if a valid KEM ciphertext had been produced.  If applications use EVP_PKEY_encapsulate() with RSA/RSASVE on an attacker-supplied invalid RSA public key without first validating that key, then this may cause stale or uninitialized contents of the caller-provided ciphertext buffer to be disclosed to the attacker in place of the KEM ciphertext.  As a workaround calling EVP_PKEY_public_check() or EVP_PKEY_public_check_quick() before EVP_PKEY_encapsulate() will mitigate the issue.  The FIPS modules in 3.6, 3.5, 3.4, 3.3, 3.1 and 3.0 are affected by this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-28387",
                                "url": "https://ubuntu.com/security/CVE-2026-28387",
                                "cve_description": "Issue summary: An uncommon configuration of clients performing DANE TLSA-based server authentication, when paired with uncommon server DANE TLSA records, may result in a use-after-free and/or double-free on the client side.  Impact summary: A use after free can have a range of potential consequences such as the corruption of valid data, crashes or execution of arbitrary code.  However, the issue only affects clients that make use of TLSA records with both the PKIX-TA(0/PKIX-EE(1) certificate usages and the DANE-TA(2) certificate usage.  By far the most common deployment of DANE is in SMTP MTAs for which RFC7672 recommends that clients treat as 'unusable' any TLSA records that have the PKIX certificate usages.  These SMTP (or other similar) clients are not vulnerable to this issue.  Conversely, any clients that support only the PKIX usages, and ignore the DANE-TA(2) usage are also not vulnerable.  The client would also need to be communicating with a server that publishes a TLSA RRset with both types of TLSA records.  No FIPS modules are affected by this issue, the problem code is outside the FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28388",
                                "url": "https://ubuntu.com/security/CVE-2026-28388",
                                "cve_description": "Issue summary: When a delta CRL that contains a Delta CRL Indicator extension is processed a NULL pointer dereference might happen if the required CRL Number extension is missing.  Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application.  When CRL processing and delta CRL processing is enabled during X.509 certificate verification, the delta CRL processing does not check whether the CRL Number extension is NULL before dereferencing it. When a malformed delta CRL file is being processed, this parameter can be NULL, causing a NULL pointer dereference.  Exploiting this issue requires the X509_V_FLAG_USE_DELTAS flag to be enabled in the verification context, the certificate being verified to contain a freshestCRL extension or the base CRL to have the EXFLAG_FRESHEST flag set, and an attacker to provide a malformed CRL to an application that processes it.  The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. For that reason the issue was assessed as Low severity according to our Security Policy.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary. Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application. When CRL processing and delta CRL processing is enabled during X.509 certificate verification, the delta CRL processing does not check whether the CRL Number extension is NULL before dereferencing it. When a malformed delta CRL file is being processed, this parameter can be NULL, causing a NULL pointer dereference. Exploiting this issue requires the X509_V_FLAG_USE_DELTAS flag to be enabled in the verification context, the certificate being verified to contain a freshestCRL extension or the base CRL to have the EXFLAG_FRESHEST flag set, and an attacker to provide a malformed CRL to an application that processes it. The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. For that reason the issue was assessed as Low severity according to our Security Policy. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28389",
                                "url": "https://ubuntu.com/security/CVE-2026-28389",
                                "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyAgreeRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyAgreeRecipientInfo is processed, the optional parameters field of KeyEncryptionAlgorithmIdentifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary. Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service. When a CMS EnvelopedData message that uses KeyAgreeRecipientInfo is processed, the optional parameters field of KeyEncryptionAlgorithmIdentifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing. Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28390",
                                "url": "https://ubuntu.com/security/CVE-2026-28390",
                                "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyTransportRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyTransportRecipientInfo with RSA-OAEP encryption is processed, the optional parameters field of RSA-OAEP SourceFunc algorithm identifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary. Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service. When a CMS EnvelopedData message that uses KeyTransportRecipientInfo with RSA-OAEP encryption is processed, the optional parameters field of RSA-OAEP SourceFunc algorithm identifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing. Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31789",
                                "url": "https://ubuntu.com/security/CVE-2026-31789",
                                "cve_description": "Issue summary: Converting an excessively large OCTET STRING value to a hexadecimal string leads to a heap buffer overflow on 32 bit platforms.  Impact summary: A heap buffer overflow may lead to a crash or possibly an attacker controlled code execution or other undefined behavior.  If an attacker can supply a crafted X.509 certificate with an excessively large OCTET STRING value in extensions such as the Subject Key Identifier (SKID) or Authority Key Identifier (AKID) which are being converted to hex, the size of the buffer needed for the result is calculated as multiplication of the input length by 3. On 32 bit platforms, this multiplication may overflow resulting in the allocation of a smaller buffer and a heap buffer overflow.  Applications and services that print or log contents of untrusted X.509 certificates are vulnerable to this issue. As the certificates would have to have sizes of over 1 Gigabyte, printing or logging such certificates is a fairly unlikely operation and only 32 bit platforms are affected, this issue was assigned Low severity.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31790",
                                "url": "https://ubuntu.com/security/CVE-2026-31790",
                                "cve_description": "Issue summary: Applications using RSASVE key encapsulation to establish a secret encryption key can send contents of an uninitialized memory buffer to a malicious peer.  Impact summary: The uninitialized buffer might contain sensitive data from the previous execution of the application process which leads to sensitive data leakage to an attacker.  RSA_public_encrypt() returns the number of bytes written on success and -1 on error. The affected code tests only whether the return value is non-zero. As a result, if RSA encryption fails, encapsulation can still return success to the caller, set the output lengths, and leave the caller to use the contents of the ciphertext buffer as if a valid KEM ciphertext had been produced.  If applications use EVP_PKEY_encapsulate() with RSA/RSASVE on an attacker-supplied invalid RSA public key without first validating that key, then this may cause stale or uninitialized contents of the caller-provided ciphertext buffer to be disclosed to the attacker in place of the KEM ciphertext.  As a workaround calling EVP_PKEY_public_check() or EVP_PKEY_public_check_quick() before EVP_PKEY_encapsulate() will mitigate the issue.  The FIPS modules in 3.6, 3.5, 3.4, 3.3, 3.1 and 3.0 are affected by this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: NULL pointer dereference when processing an OCSP",
                            "    response",
                            "    - debian/patches/CVE-2026-28387.patch: dane_match_cert() should",
                            "      X509_free() on ->mcert instead of OPENSSL_free() in",
                            "      crypto/x509/x509_vfy.c.",
                            "    - CVE-2026-28387",
                            "  * SECURITY UPDATE: NULL Pointer Dereference When Processing a Delta CRL",
                            "    - debian/patches/CVE-2026-28388-1.patch: fix NULL Dereference When",
                            "      Delta CRL Lacks CRL Number Extension in crypto/x509/x509_vfy.c.",
                            "    - debian/patches/CVE-2026-28388-2.patch: Added test in test/*.",
                            "    - CVE-2026-28388",
                            "  * SECURITY UPDATE: Possible NULL dereference when processing CMS",
                            "    KeyAgreeRecipientInfo",
                            "    - debian/patches/CVE-2026-28389.patch: Fix NULL deref in",
                            "      [ec]dh_cms_set_shared_info in crypto/cms/cms_dh.c,",
                            "      crypto/cms/cms_ec.c.",
                            "    - CVE-2026-28389",
                            "  * SECURITY UPDATE: Possible NULL Dereference When Processing CMS",
                            "    KeyTransportRecipientInfo",
                            "    - debian/patches/CVE-2026-28390.patch: Fix NULL deref in",
                            "      rsa_cms_decrypt in crypto/cms/cms_rsa.c.",
                            "    - CVE-2026-28390",
                            "  * SECURITY UPDATE: Heap buffer overflow in hexadecimal conversion",
                            "    - debian/patches/CVE-2026-31789.patch: avoid possible buffer overflow",
                            "      in buf2hex conversion in crypto/o_str.c.",
                            "    - CVE-2026-31789",
                            "  * SECURITY UPDATE: Incorrect failure handling in RSA KEM RSASVE",
                            "    encapsulation",
                            "    - debian/patches/CVE-2026-31790-1.patch: validate RSA_public_encrypt()",
                            "      result in RSASVE in providers/implementations/kem/rsa_kem.c.",
                            "    - debian/patches/CVE-2026-31790-2.patch: test RSA_public_encrypt()",
                            "      result in RSASVE in test/evp_extra_test.c.",
                            "    - CVE-2026-31790",
                            ""
                        ],
                        "package": "openssl",
                        "version": "3.0.2-0ubuntu1.23",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Tue, 07 Apr 2026 08:05:56 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libsystemd0:riscv64",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libudev1:riscv64",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-headers-generic",
                "from_version": {
                    "source_package_name": "linux-meta-riscv-6.8",
                    "source_package_version": "6.8.0.106.106~22.04.1",
                    "version": "6.8.0.106.106~22.04.1"
                },
                "to_version": {
                    "source_package_name": "linux-meta-riscv-6.8",
                    "source_package_version": "6.8.0.117.117~22.04.1",
                    "version": "6.8.0.117.117~22.04.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-117.117~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.117.117~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Thu, 07 May 2026 23:12:23 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-116.116~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.116.116~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 24 Apr 2026 16:01:40 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-114.114~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.114.114~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 17 Apr 2026 13:05:53 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-111.111~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.111.111~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Tue, 14 Apr 2026 17:48:01 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-110.110~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.110.110~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Thu, 26 Mar 2026 17:12:52 +0100"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-107.107~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.107.107~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Wed, 18 Mar 2026 15:55:24 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-headers-virtual",
                "from_version": {
                    "source_package_name": "linux-meta-riscv-6.8",
                    "source_package_version": "6.8.0.106.106~22.04.1",
                    "version": "6.8.0.106.106~22.04.1"
                },
                "to_version": {
                    "source_package_name": "linux-meta-riscv-6.8",
                    "source_package_version": "6.8.0.117.117~22.04.1",
                    "version": "6.8.0.117.117~22.04.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-117.117~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.117.117~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Thu, 07 May 2026 23:12:23 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-116.116~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.116.116~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 24 Apr 2026 16:01:40 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-114.114~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.114.114~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 17 Apr 2026 13:05:53 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-111.111~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.111.111~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Tue, 14 Apr 2026 17:48:01 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-110.110~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.110.110~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Thu, 26 Mar 2026 17:12:52 +0100"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-107.107~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.107.107~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Wed, 18 Mar 2026 15:55:24 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-image-virtual",
                "from_version": {
                    "source_package_name": "linux-meta-riscv-6.8",
                    "source_package_version": "6.8.0.106.106~22.04.1",
                    "version": "6.8.0.106.106~22.04.1"
                },
                "to_version": {
                    "source_package_name": "linux-meta-riscv-6.8",
                    "source_package_version": "6.8.0.117.117~22.04.1",
                    "version": "6.8.0.117.117~22.04.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-117.117~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.117.117~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Thu, 07 May 2026 23:12:23 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-116.116~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.116.116~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 24 Apr 2026 16:01:40 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-114.114~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.114.114~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 17 Apr 2026 13:05:53 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-111.111~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.111.111~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Tue, 14 Apr 2026 17:48:01 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-110.110~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.110.110~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Thu, 26 Mar 2026 17:12:52 +0100"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-107.107~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.107.107~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Wed, 18 Mar 2026 15:55:24 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-virtual",
                "from_version": {
                    "source_package_name": "linux-meta-riscv-6.8",
                    "source_package_version": "6.8.0.106.106~22.04.1",
                    "version": "6.8.0.106.106~22.04.1"
                },
                "to_version": {
                    "source_package_name": "linux-meta-riscv-6.8",
                    "source_package_version": "6.8.0.117.117~22.04.1",
                    "version": "6.8.0.117.117~22.04.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-117.117~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.117.117~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Thu, 07 May 2026 23:12:23 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-116.116~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.116.116~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 24 Apr 2026 16:01:40 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-114.114~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.114.114~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 17 Apr 2026 13:05:53 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-111.111~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.111.111~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Tue, 14 Apr 2026 17:48:01 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-110.110~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.110.110~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Thu, 26 Mar 2026 17:12:52 +0100"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 6.8.0-107.107~22.04",
                            ""
                        ],
                        "package": "linux-meta-riscv-6.8",
                        "version": "6.8.0.107.107~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Wed, 18 Mar 2026 15:55:24 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "lshw",
                "from_version": {
                    "source_package_name": "lshw",
                    "source_package_version": "02.19.git.2021.06.19.996aaad9c7-2build1",
                    "version": "02.19.git.2021.06.19.996aaad9c7-2build1"
                },
                "to_version": {
                    "source_package_name": "lshw",
                    "source_package_version": "02.19.git.2021.06.19.996aaad9c7-2ubuntu0.22.04.1",
                    "version": "02.19.git.2021.06.19.996aaad9c7-2ubuntu0.22.04.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2127480
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Fix incorrect fb detection (LP: #2127480):",
                            "    - d/p/lp2127480-0001-improve-fb-detection.patch",
                            "    - d/p/lp2127480-0002-another-try-at-fixing-the-Github-fbdev-issue.patch",
                            ""
                        ],
                        "package": "lshw",
                        "version": "02.19.git.2021.06.19.996aaad9c7-2ubuntu0.22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2127480
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Fri, 10 Oct 2025 15:55:44 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "netplan.io",
                "from_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.106.1-7ubuntu0.22.04.4",
                    "version": "0.106.1-7ubuntu0.22.04.4"
                },
                "to_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.107.1-3ubuntu0.22.04.3",
                    "version": "0.107.1-3ubuntu0.22.04.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2022-4968",
                        "url": "https://ubuntu.com/security/CVE-2022-4968",
                        "cve_description": "netplan leaks the private key of wireguard to local users. Versions after 1.0 are not affected.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-06-07 01:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2139598,
                    1988018,
                    2020409,
                    2058031
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * debian/patches/lp2139598-execute-udev-rules-before-sriov-apply-service.patch:",
                            "    execute udev rules before starting sriov apply service (LP: #2139598)",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.3",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2139598
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 03 Mar 2026 12:18:29 +0100"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * debian/patches/lp1988018: VF-LAG activation",
                            "    Fixes the order in which SR-IOV configuration is performed and",
                            "    cooperates with VF-LAG activation (LP: #1988018).",
                            "  * debian/patches/lp2020409:",
                            "    Enables setting the embedded-switch mode without having to define",
                            "    virtual functions (LP: #2020409).",
                            "  * debian/libnetplan0.symbols: New symbol _netplan_netdef_get_bond_mode.",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.2",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            1988018,
                            2020409
                        ],
                        "author": "Danilo Egea Gondolfo <danilo.egea.gondolfo@canonical.com>",
                        "date": "Mon, 07 Oct 2024 10:57:38 +0100"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2022-4968",
                                "url": "https://ubuntu.com/security/CVE-2022-4968",
                                "cve_description": "netplan leaks the private key of wireguard to local users. Versions after 1.0 are not affected.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-06-07 01:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * Backport netplan.io 0.107.1-3 to 22.04 (LP: #2058031):",
                            "    - Support for \"dummy\" (`dummy-devices`) interfaces (LP: 1774203) (!361)",
                            "    - Support for \"veth\" (`virtual-ethernets`) interfaces (!368)",
                            "    - Add Python bindings for libnetplan (!385)",
                            "    - netplan: Handle command exceptions (!334)",
                            "    - WPA3 (personal) support (LP: 2023238) (!369)",
                            "    - Add all the commands to the bash completion file (LP: 1749869) (!326)",
                            "    - New submodule for state manipulation (!379)",
                            "    - commands/status: show routes from all routing tables (!390)",
                            "    - cli:status: Make rich pretty printing optional (!388)",
                            "    - libnetplan: expose dhcp4 and dhcp6 properties (!394)",
                            "    - Expose macaddress and DNS configuration from the netdef (!395)",
                            "    - libnetplan: expose the routes list in the netdef (!397)",
                            "    - NetworkManager: Wireguard private key flag support (!371)",
                            "    - Add a netplan_parser_load_keyfile() Python binding (!351)",
                            "    - keyfile parser: add support for all tunnel types (LP: 2016473) (!360)",
                            "    - parse-nm:wg: add support for reading the listen-port property (!372)",
                            "    - parse-nm: add support for VRF devices (!398)",
                            "    - Vlan keyfile parser support (!370)",
                            "    - Netplan docs rework (!333 & !337)",
                            "    - docs: Add a short netplan-everywhere howto (!325)",
                            "    - doc: make us of sphinx copybutton plugin (!354)",
                            "    - doc: Add Ubuntu Code of Conduct 2.0 (!355)",
                            "    - doc: Explanation about 00-network-manager-all.yaml (!378)",
                            "    - wifi: add support for WPA3-Enterprise (LP: 2029876) (!402)",
                            "    - wifi: support WPA2 and WPA3 Personal simultaneously (!404)",
                            "    - added mii-monitor-interval example (!411)",
                            "    - docs: Add \"Contribute Documentation\" how-to",
                            "    - auth: add support for LEAP and EAP-PWD (!415)",
                            "    - tests: Add autopkgtest for (LP: 1959570) (!419)",
                            "    - wifi: make it possible to have a psk and an eap password simultaneously",
                            "      (!416)",
                            "    - doc: Set-up some basic Doxygen project (!423)",
                            "    - doc: Make Sphinx to handle autodoxygen project, using breathe (!423)",
                            "    - doc: create libnetplan apidoc structure (!423)",
                            "    - inc: Start documenting public API (!423)",
                            "    - doc: Update 'Netplan everywhere' for 23.10 (!418)",
                            "    SECURITY UPDATE: weak permissions on secret files, command injection",
                            "    - d/p/lp2065738/0014-libnetplan-use-more-restrictive-file-permissions.patch:",
                            "      Use more restrictive file permissions to prevent unprivileged users to",
                            "      read sensitive data from back end files (LP: 2065738, 1987842)",
                            "    - CVE-2022-4968",
                            "    - d/p/lp2066258/0015-libnetplan-escape-control-characters.patch:",
                            "      Escape control characters in the parser and double quotes in backend",
                            "      files.",
                            "    - d/p/lp2066258/0016-backends-escape-file-paths.patch:",
                            "      Escape special characters in file paths.",
                            "    - d/p/lp2066258/0017-backends-escape-semicolons-in-service-units.patch:",
                            "      Escape isolated semicolons in systemd service units. (LP: 2066258)",
                            "    - debian/netplan-generator.postinst: Add a postinst maintainer script to",
                            "      call the generator. It's needed so the file permissions fixes will be",
                            "      applied automatically.",
                            "    Bug fixes:",
                            "    - Fix FTBFS on Fedora and refresh RPM packaging (!323)",
                            "    - parser: validate lacp-rate properly (LP: 1745648) (!324)",
                            "    - use meson-make-symlink.sh helper instead of install_symlink() (!327)",
                            "    - netplan: cli: fix typo from 'unkown' to 'unknown' (!328)",
                            "    - Handle duplication during parser second pass (LP: 2007682) (!329)",
                            "    - parse:ovs: Ignore deprecated OpenFlow1.6 protocol (LP: 1963735) (!332)",
                            "    - dbus: Build the copy path correctly (!331)",
                            "    - tests: add new spread based snapd integration test (!330)",
                            "    - Use controlled execution environment, to avoid failure if PATH is unset",
                            "      (LP: 1959570) (!336)",
                            "    - Some refactoring (!338)",
                            "    - netplan: adjust the maximum buffer size to 1MB (!340)",
                            "    - parse: use \"--\" with systemd-escape (!347)",
                            "    - docs: fix bridge parameters types and add examples (!346)",
                            "    - vrfs: skip policies parsing if list is NULL (LP: 2016427) (!341)",
                            "    - networkd: plug a memory leak (!344)",
                            "    - libnetplan: don't try to read from a NULL file (!342)",
                            "    - nm: return if write_routes() fails (!345)",
                            "    - parse: plug a memory leak (!348)",
                            "    - parse: set the backend on nm-devices to NM (!349)",
                            "    - parse: don't point to the wrong node on validation (!343)",
                            "    - rtd: set the OS and Python versions explicitly (!357)",
                            "    - Fix 8021x eap method parsing (LP: 2016625) (!358)",
                            "    - CI: update canonical/setup-lxd to v0.1.1 (!359)",
                            "    - CI: fix dch after adding the new 0.106.1 tag (!364)",
                            "    - Provide frequency to wpa_supplicant in adhoc mode (LP: 2020754) (!363)",
                            "    - Improve the coverage of the memory leak tests (!365)",
                            "    - Fix keyfile parsing of wireguard config (!366)",
                            "    - routes: fix metric rendering (LP: 2023681) (!367)",
                            "    - CI: add DebCI integration test (!362)",
                            "    - CI: initial NetworkManager autopkgtests (!374)",
                            "    - parse-nm: handle cloned-mac-address special cases (LP: 2026230) (!376)",
                            "    - Improve autopkgtest stability with systemd 253 & iproute 6.4 (!377)",
                            "    - Fixes for minor issues (!380)",
                            "    - tests:integration: Adopt for systemd v254 (Closes: #1041310) (!381)",
                            "    - parse: Downgrade NM passthrough warning to debug (!384)",
                            "    - Don't drop files with just global values (LP: 2027584) (!382)",
                            "    - Fixing Coverity issues (!383)",
                            "    - CLI: Refactoring to avoid namespace clash with public bindings (!387)",
                            "    - tests: fix test coverage report with newer python-coverage (!389)",
                            "    - github: add a scheduled action to run Coverity (!391)",
                            "    - github: only run the coverity workflow on our repository (!392)",
                            "    - Addressing a few issues found (!393)",
                            "    - Wireguard fixes (!352)",
                            "    - Fix a memory leak, an assert and an error message (!350)",
                            "    - ovs: don't allow peers with the same name (!353)",
                            "    - CI: make use of the canonical/setup-lxd action (!356)",
                            "    - test:ovs: Avoid NetworkManager taking contol, breaking a test",
                            "    - parse: allow COMMON_LINK_HANDLERS for VRFs (!401)",
                            "    - util: don't return a placeholder netdef in the iterator (!406)",
                            "    - tunnels/validation: do not error out if \"local\" is not defined (!407)",
                            "    - tests: add some integration tests without the local address (!407)",
                            "    - wireguard: ignore empty endpoints (LP: 2038811) (!414)",
                            "    - parse: improve the parsing of access-points (LP: 1809994) (!413)",
                            "    - wifi: replace the previously defined AP with the new one (!413)",
                            "    - doc: spelling check improvements (!417)",
                            "    - Fix permissions on folder '/run/NetworkManager/' (!422)",
                            "    - cli:try: avoid linting error for type hints (Closes: #1058524) (!422)",
                            "    - nm-parse: always read the PSK into the new psk variable (!416)",
                            "    - networkd: fix formatting (!424)",
                            "    - networkd: replace deprecated CriticalConnection= by KeepConfiguration=",
                            "      (!424)",
                            "    - networkd: move KeepConfiguration= into [Network] section",
                            "    - apply: bring \"lo\" back up if it's managed by NM (!408)",
                            "    - apply: don't assume the NM loopback connection is called \"lo\" (!408)",
                            "    Packaging restructuring:",
                            "    - Split netplan-generator into separate package to make the Python",
                            "      dependency optional.",
                            "    - Split python3-netplan bindings into a separate package",
                            "  * Add patches for bug fixes from netplan.io 1.0-1 and 1.0.1-1:",
                            "    - debian/patches/lp2041727:",
                            "      Check if ovsdb-server.service is active before displaying warning",
                            "      (LP: 2041727) (!421)",
                            "    - d/p/0004-tests-assert-generated-.service-files-in-assert_srio.patch,",
                            "      d/p/0005-tests-sriov-test-if-the-generated-netplan-rebind-ser.patch,",
                            "      d/p/0006-sriov-don-t-generate-duplicate-entries-in-the-rebind.patch:",
                            "      Don't generate duplicate entries in the netplan-sriov-rebind.service",
                            "      (!437)",
                            "    - d/p/0017-emitter-allow-unicode-characters-in-the-emitter.patch.",
                            "      Allow non-ascii characters in the YAML emitter (LP: 2071652) (!485).",
                            "    - d/p/0018-parse-do-not-escape-all-non-ascii-bytes.patch.",
                            "      Don't escape all non-ascii bytes (!486).",
                            "  * Drop patches not required for 22.04:",
                            "    - debian/patches/python-limited-stable-api.patch",
                            "    - d/p/sru-compat/0013-Keep-old-file-permission-for-backwards-compatibility.patch.",
                            "      From now on we want libnetplan to create files with tight permissions.",
                            "  * Add patches for SRU backwards compatibility:",
                            "    - 0014-Demote-lacp-rate-validation-error-to-warning-for-bac.patch:",
                            "      Convert the error to a warning in a new validation for the option",
                            "      'lacp-rate' to prevent breaking existing setups",
                            "  * debian/control:",
                            "    - Drop python3-rich dependency to Suggests",
                            "    - Drop build dependency on systemd-dev",
                            "  * debian/netplan.io.preinst:",
                            "    - This preinst script is intended to cleanup the .pyc files from",
                            "      share/netplan/netplan. This directory is supposed to be removed after",
                            "      the upgrade from netplan.io 0.106.1 to 0.107.1, as the Python code",
                            "      was moved to it's own python3-netplan package, but it's left behind",
                            "      due to Python cached files.",
                            "  * Drop changes related to usr-merge and not required for 22.04",
                            "    - debian/netplan-generator.install",
                            "    - debian/netplan-generator.dirs",
                            "    - debian/netplan-generator.postinst",
                            "    - debian/netplan-generator.preinst",
                            "  * d/netplan-generator.lintian-overrides, d/netplan.io.lintian-overrides:",
                            "    - Drop overrides file. It wasn't really silencing any lintian warnings.",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2058031
                        ],
                        "author": "Danilo Egea Gondolfo <danilo.egea.gondolfo@canonical.com>",
                        "date": "Fri, 16 Aug 2024 17:59:32 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "ntfs-3g",
                "from_version": {
                    "source_package_name": "ntfs-3g",
                    "source_package_version": "1:2021.8.22-3ubuntu1.2",
                    "version": "1:2021.8.22-3ubuntu1.2"
                },
                "to_version": {
                    "source_package_name": "ntfs-3g",
                    "source_package_version": "1:2021.8.22-3ubuntu1.3",
                    "version": "1:2021.8.22-3ubuntu1.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2023-52890",
                        "url": "https://ubuntu.com/security/CVE-2023-52890",
                        "cve_description": "NTFS-3G before 75dcdc2 has a use-after-free in ntfs_uppercase_mbs in libntfs-3g/unistr.c. NOTE: discussion suggests that exploitation would be challenging.",
                        "cve_priority": "low",
                        "cve_public_date": "2024-06-13 04:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-40706",
                        "url": "https://ubuntu.com/security/CVE-2026-40706",
                        "cve_description": "In NTFS-3G 2022.10.3 before 2026.2.25, a heap buffer overflow exists in ntfs_build_permissions_posix() in acls.c that allows an attacker to corrupt heap memory in the SUID-root ntfs-3g binary by crafting a malicious NTFS image. The overflow is triggered on the READ path (stat, readdir, open) when processing a security descriptor with multiple ACCESS_DENIED ACEs containing WRITE_OWNER from distinct group SIDs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-21 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2023-52890",
                                "url": "https://ubuntu.com/security/CVE-2023-52890",
                                "cve_description": "NTFS-3G before 75dcdc2 has a use-after-free in ntfs_uppercase_mbs in libntfs-3g/unistr.c. NOTE: discussion suggests that exploitation would be challenging.",
                                "cve_priority": "low",
                                "cve_public_date": "2024-06-13 04:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-40706",
                                "url": "https://ubuntu.com/security/CVE-2026-40706",
                                "cve_description": "In NTFS-3G 2022.10.3 before 2026.2.25, a heap buffer overflow exists in ntfs_build_permissions_posix() in acls.c that allows an attacker to corrupt heap memory in the SUID-root ntfs-3g binary by crafting a malicious NTFS image. The overflow is triggered on the READ path (stat, readdir, open) when processing a security descriptor with multiple ACCESS_DENIED ACEs containing WRITE_OWNER from distinct group SIDs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-21 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: use-after-free in ntfs_uppercase_mbs",
                            "    - debian/patches/CVE-2023-52890.patch: fix use-after-free in",
                            "      libntfs-3g/unistr.c.",
                            "    - CVE-2023-52890",
                            "  * SECURITY UPDATE: heap overflow in ntfs_build_permissions_posix()",
                            "    - debian/patches/CVE-2026-40706.patch: allocate space for the worst",
                            "      case number of ACE entries in libntfs-3g/acls.c.",
                            "    - CVE-2026-40706",
                            ""
                        ],
                        "package": "ntfs-3g",
                        "version": "1:2021.8.22-3ubuntu1.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 17 Apr 2026 13:54:28 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "openssh-client",
                "from_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.9p1-3ubuntu0.14",
                    "version": "1:8.9p1-3ubuntu0.14"
                },
                "to_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.9p1-3ubuntu0.15",
                    "version": "1:8.9p1-3ubuntu0.15"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-35385",
                        "url": "https://ubuntu.com/security/CVE-2026-35385",
                        "cve_description": "In OpenSSH before 10.3, a file downloaded by scp may be installed setuid or setgid, an outcome contrary to some users' expectations, if the download is performed as root with -O (legacy scp protocol) and without -p (preserve mode).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-35386",
                        "url": "https://ubuntu.com/security/CVE-2026-35386",
                        "cve_description": "In OpenSSH before 10.3, command execution can occur via shell metacharacters in a username within a command line. This requires a scenario where the username on the command line is untrusted, and also requires a non-default configurations of % in ssh_config.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-35387",
                        "url": "https://ubuntu.com/security/CVE-2026-35387",
                        "cve_description": "OpenSSH before 10.3 can use unintended ECDSA algorithms. Listing of any ECDSA algorithm in PubkeyAcceptedAlgorithms or HostbasedAcceptedAlgorithms is misinterpreted to mean all ECDSA algorithms.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-35388",
                        "url": "https://ubuntu.com/security/CVE-2026-35388",
                        "cve_description": "OpenSSH before 10.3 omits connection multiplexing confirmation for proxy-mode multiplexing sessions.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-35414",
                        "url": "https://ubuntu.com/security/CVE-2026-35414",
                        "cve_description": "OpenSSH before 10.3 mishandles the authorized_keys principals option in uncommon scenarios involving a principals list in conjunction with a Certificate Authority that makes certain use of comma characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 18:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-35385",
                                "url": "https://ubuntu.com/security/CVE-2026-35385",
                                "cve_description": "In OpenSSH before 10.3, a file downloaded by scp may be installed setuid or setgid, an outcome contrary to some users' expectations, if the download is performed as root with -O (legacy scp protocol) and without -p (preserve mode).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-35386",
                                "url": "https://ubuntu.com/security/CVE-2026-35386",
                                "cve_description": "In OpenSSH before 10.3, command execution can occur via shell metacharacters in a username within a command line. This requires a scenario where the username on the command line is untrusted, and also requires a non-default configurations of % in ssh_config.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-35387",
                                "url": "https://ubuntu.com/security/CVE-2026-35387",
                                "cve_description": "OpenSSH before 10.3 can use unintended ECDSA algorithms. Listing of any ECDSA algorithm in PubkeyAcceptedAlgorithms or HostbasedAcceptedAlgorithms is misinterpreted to mean all ECDSA algorithms.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-35388",
                                "url": "https://ubuntu.com/security/CVE-2026-35388",
                                "cve_description": "OpenSSH before 10.3 omits connection multiplexing confirmation for proxy-mode multiplexing sessions.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-35414",
                                "url": "https://ubuntu.com/security/CVE-2026-35414",
                                "cve_description": "OpenSSH before 10.3 mishandles the authorized_keys principals option in uncommon scenarios involving a principals list in conjunction with a Certificate Authority that makes certain use of comma characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 18:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: unexpected scp setuid and setgid",
                            "    - debian/patches/CVE-2026-35385.patch: clear setuid/setgid bits from",
                            "      downloaded files in scp.c.",
                            "    - CVE-2026-35385",
                            "  * SECURITY UPDATE: command execution via shell metacharacters in username",
                            "    - debian/patches/CVE-2026-35386-pre1.patch: apply validity rules on",
                            "      ProxyJump usernames and hostnames in readconf.c, readconf.h, ssh.c.",
                            "    - debian/patches/CVE-2026-35386.patch: move username check earlier in",
                            "      ssh.c.",
                            "    - CVE-2026-35386",
                            "  * SECURITY UPDATE: use of unintended ECDSA algorithms",
                            "    - debian/patches/CVE-2026-35387_35414.patch: correctly match ECDSA",
                            "      signature algorithms against algorithm allowlists in",
                            "      auth2-hostbased.c, auth2-pubkey.c, sshconnect2.c.",
                            "    - CVE-2026-35387",
                            "  * SECURITY UPDATE: missing connection multiplexing confirmation",
                            "    - debian/patches/CVE-2026-35388.patch: add missing askpass check in",
                            "      mux.c.",
                            "    - CVE-2026-35388",
                            "  * SECURITY UPDATE: authorized_keys principals option mishandling",
                            "    - debian/patches/CVE-2026-35387_35414.patch: check for commas in",
                            "      auth2-pubkey.c.",
                            "    - CVE-2026-35414",
                            ""
                        ],
                        "package": "openssh",
                        "version": "1:8.9p1-3ubuntu0.15",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Mon, 27 Apr 2026 20:38:10 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "openssh-server",
                "from_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.9p1-3ubuntu0.14",
                    "version": "1:8.9p1-3ubuntu0.14"
                },
                "to_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.9p1-3ubuntu0.15",
                    "version": "1:8.9p1-3ubuntu0.15"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-35385",
                        "url": "https://ubuntu.com/security/CVE-2026-35385",
                        "cve_description": "In OpenSSH before 10.3, a file downloaded by scp may be installed setuid or setgid, an outcome contrary to some users' expectations, if the download is performed as root with -O (legacy scp protocol) and without -p (preserve mode).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-35386",
                        "url": "https://ubuntu.com/security/CVE-2026-35386",
                        "cve_description": "In OpenSSH before 10.3, command execution can occur via shell metacharacters in a username within a command line. This requires a scenario where the username on the command line is untrusted, and also requires a non-default configurations of % in ssh_config.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-35387",
                        "url": "https://ubuntu.com/security/CVE-2026-35387",
                        "cve_description": "OpenSSH before 10.3 can use unintended ECDSA algorithms. Listing of any ECDSA algorithm in PubkeyAcceptedAlgorithms or HostbasedAcceptedAlgorithms is misinterpreted to mean all ECDSA algorithms.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-35388",
                        "url": "https://ubuntu.com/security/CVE-2026-35388",
                        "cve_description": "OpenSSH before 10.3 omits connection multiplexing confirmation for proxy-mode multiplexing sessions.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-35414",
                        "url": "https://ubuntu.com/security/CVE-2026-35414",
                        "cve_description": "OpenSSH before 10.3 mishandles the authorized_keys principals option in uncommon scenarios involving a principals list in conjunction with a Certificate Authority that makes certain use of comma characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 18:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-35385",
                                "url": "https://ubuntu.com/security/CVE-2026-35385",
                                "cve_description": "In OpenSSH before 10.3, a file downloaded by scp may be installed setuid or setgid, an outcome contrary to some users' expectations, if the download is performed as root with -O (legacy scp protocol) and without -p (preserve mode).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-35386",
                                "url": "https://ubuntu.com/security/CVE-2026-35386",
                                "cve_description": "In OpenSSH before 10.3, command execution can occur via shell metacharacters in a username within a command line. This requires a scenario where the username on the command line is untrusted, and also requires a non-default configurations of % in ssh_config.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-35387",
                                "url": "https://ubuntu.com/security/CVE-2026-35387",
                                "cve_description": "OpenSSH before 10.3 can use unintended ECDSA algorithms. Listing of any ECDSA algorithm in PubkeyAcceptedAlgorithms or HostbasedAcceptedAlgorithms is misinterpreted to mean all ECDSA algorithms.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-35388",
                                "url": "https://ubuntu.com/security/CVE-2026-35388",
                                "cve_description": "OpenSSH before 10.3 omits connection multiplexing confirmation for proxy-mode multiplexing sessions.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-35414",
                                "url": "https://ubuntu.com/security/CVE-2026-35414",
                                "cve_description": "OpenSSH before 10.3 mishandles the authorized_keys principals option in uncommon scenarios involving a principals list in conjunction with a Certificate Authority that makes certain use of comma characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 18:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: unexpected scp setuid and setgid",
                            "    - debian/patches/CVE-2026-35385.patch: clear setuid/setgid bits from",
                            "      downloaded files in scp.c.",
                            "    - CVE-2026-35385",
                            "  * SECURITY UPDATE: command execution via shell metacharacters in username",
                            "    - debian/patches/CVE-2026-35386-pre1.patch: apply validity rules on",
                            "      ProxyJump usernames and hostnames in readconf.c, readconf.h, ssh.c.",
                            "    - debian/patches/CVE-2026-35386.patch: move username check earlier in",
                            "      ssh.c.",
                            "    - CVE-2026-35386",
                            "  * SECURITY UPDATE: use of unintended ECDSA algorithms",
                            "    - debian/patches/CVE-2026-35387_35414.patch: correctly match ECDSA",
                            "      signature algorithms against algorithm allowlists in",
                            "      auth2-hostbased.c, auth2-pubkey.c, sshconnect2.c.",
                            "    - CVE-2026-35387",
                            "  * SECURITY UPDATE: missing connection multiplexing confirmation",
                            "    - debian/patches/CVE-2026-35388.patch: add missing askpass check in",
                            "      mux.c.",
                            "    - CVE-2026-35388",
                            "  * SECURITY UPDATE: authorized_keys principals option mishandling",
                            "    - debian/patches/CVE-2026-35387_35414.patch: check for commas in",
                            "      auth2-pubkey.c.",
                            "    - CVE-2026-35414",
                            ""
                        ],
                        "package": "openssh",
                        "version": "1:8.9p1-3ubuntu0.15",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Mon, 27 Apr 2026 20:38:10 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "openssh-sftp-server",
                "from_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.9p1-3ubuntu0.14",
                    "version": "1:8.9p1-3ubuntu0.14"
                },
                "to_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.9p1-3ubuntu0.15",
                    "version": "1:8.9p1-3ubuntu0.15"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-35385",
                        "url": "https://ubuntu.com/security/CVE-2026-35385",
                        "cve_description": "In OpenSSH before 10.3, a file downloaded by scp may be installed setuid or setgid, an outcome contrary to some users' expectations, if the download is performed as root with -O (legacy scp protocol) and without -p (preserve mode).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-35386",
                        "url": "https://ubuntu.com/security/CVE-2026-35386",
                        "cve_description": "In OpenSSH before 10.3, command execution can occur via shell metacharacters in a username within a command line. This requires a scenario where the username on the command line is untrusted, and also requires a non-default configurations of % in ssh_config.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-35387",
                        "url": "https://ubuntu.com/security/CVE-2026-35387",
                        "cve_description": "OpenSSH before 10.3 can use unintended ECDSA algorithms. Listing of any ECDSA algorithm in PubkeyAcceptedAlgorithms or HostbasedAcceptedAlgorithms is misinterpreted to mean all ECDSA algorithms.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-35388",
                        "url": "https://ubuntu.com/security/CVE-2026-35388",
                        "cve_description": "OpenSSH before 10.3 omits connection multiplexing confirmation for proxy-mode multiplexing sessions.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-35414",
                        "url": "https://ubuntu.com/security/CVE-2026-35414",
                        "cve_description": "OpenSSH before 10.3 mishandles the authorized_keys principals option in uncommon scenarios involving a principals list in conjunction with a Certificate Authority that makes certain use of comma characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-02 18:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-35385",
                                "url": "https://ubuntu.com/security/CVE-2026-35385",
                                "cve_description": "In OpenSSH before 10.3, a file downloaded by scp may be installed setuid or setgid, an outcome contrary to some users' expectations, if the download is performed as root with -O (legacy scp protocol) and without -p (preserve mode).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-35386",
                                "url": "https://ubuntu.com/security/CVE-2026-35386",
                                "cve_description": "In OpenSSH before 10.3, command execution can occur via shell metacharacters in a username within a command line. This requires a scenario where the username on the command line is untrusted, and also requires a non-default configurations of % in ssh_config.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-35387",
                                "url": "https://ubuntu.com/security/CVE-2026-35387",
                                "cve_description": "OpenSSH before 10.3 can use unintended ECDSA algorithms. Listing of any ECDSA algorithm in PubkeyAcceptedAlgorithms or HostbasedAcceptedAlgorithms is misinterpreted to mean all ECDSA algorithms.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-35388",
                                "url": "https://ubuntu.com/security/CVE-2026-35388",
                                "cve_description": "OpenSSH before 10.3 omits connection multiplexing confirmation for proxy-mode multiplexing sessions.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-35414",
                                "url": "https://ubuntu.com/security/CVE-2026-35414",
                                "cve_description": "OpenSSH before 10.3 mishandles the authorized_keys principals option in uncommon scenarios involving a principals list in conjunction with a Certificate Authority that makes certain use of comma characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-02 18:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: unexpected scp setuid and setgid",
                            "    - debian/patches/CVE-2026-35385.patch: clear setuid/setgid bits from",
                            "      downloaded files in scp.c.",
                            "    - CVE-2026-35385",
                            "  * SECURITY UPDATE: command execution via shell metacharacters in username",
                            "    - debian/patches/CVE-2026-35386-pre1.patch: apply validity rules on",
                            "      ProxyJump usernames and hostnames in readconf.c, readconf.h, ssh.c.",
                            "    - debian/patches/CVE-2026-35386.patch: move username check earlier in",
                            "      ssh.c.",
                            "    - CVE-2026-35386",
                            "  * SECURITY UPDATE: use of unintended ECDSA algorithms",
                            "    - debian/patches/CVE-2026-35387_35414.patch: correctly match ECDSA",
                            "      signature algorithms against algorithm allowlists in",
                            "      auth2-hostbased.c, auth2-pubkey.c, sshconnect2.c.",
                            "    - CVE-2026-35387",
                            "  * SECURITY UPDATE: missing connection multiplexing confirmation",
                            "    - debian/patches/CVE-2026-35388.patch: add missing askpass check in",
                            "      mux.c.",
                            "    - CVE-2026-35388",
                            "  * SECURITY UPDATE: authorized_keys principals option mishandling",
                            "    - debian/patches/CVE-2026-35387_35414.patch: check for commas in",
                            "      auth2-pubkey.c.",
                            "    - CVE-2026-35414",
                            ""
                        ],
                        "package": "openssh",
                        "version": "1:8.9p1-3ubuntu0.15",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Mon, 27 Apr 2026 20:38:10 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "openssl",
                "from_version": {
                    "source_package_name": "openssl",
                    "source_package_version": "3.0.2-0ubuntu1.21",
                    "version": "3.0.2-0ubuntu1.21"
                },
                "to_version": {
                    "source_package_name": "openssl",
                    "source_package_version": "3.0.2-0ubuntu1.23",
                    "version": "3.0.2-0ubuntu1.23"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-28387",
                        "url": "https://ubuntu.com/security/CVE-2026-28387",
                        "cve_description": "Issue summary: An uncommon configuration of clients performing DANE TLSA-based server authentication, when paired with uncommon server DANE TLSA records, may result in a use-after-free and/or double-free on the client side.  Impact summary: A use after free can have a range of potential consequences such as the corruption of valid data, crashes or execution of arbitrary code.  However, the issue only affects clients that make use of TLSA records with both the PKIX-TA(0/PKIX-EE(1) certificate usages and the DANE-TA(2) certificate usage.  By far the most common deployment of DANE is in SMTP MTAs for which RFC7672 recommends that clients treat as 'unusable' any TLSA records that have the PKIX certificate usages.  These SMTP (or other similar) clients are not vulnerable to this issue.  Conversely, any clients that support only the PKIX usages, and ignore the DANE-TA(2) usage are also not vulnerable.  The client would also need to be communicating with a server that publishes a TLSA RRset with both types of TLSA records.  No FIPS modules are affected by this issue, the problem code is outside the FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28388",
                        "url": "https://ubuntu.com/security/CVE-2026-28388",
                        "cve_description": "Issue summary: When a delta CRL that contains a Delta CRL Indicator extension is processed a NULL pointer dereference might happen if the required CRL Number extension is missing.  Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application.  When CRL processing and delta CRL processing is enabled during X.509 certificate verification, the delta CRL processing does not check whether the CRL Number extension is NULL before dereferencing it. When a malformed delta CRL file is being processed, this parameter can be NULL, causing a NULL pointer dereference.  Exploiting this issue requires the X509_V_FLAG_USE_DELTAS flag to be enabled in the verification context, the certificate being verified to contain a freshestCRL extension or the base CRL to have the EXFLAG_FRESHEST flag set, and an attacker to provide a malformed CRL to an application that processes it.  The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. For that reason the issue was assessed as Low severity according to our Security Policy.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary. Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application. When CRL processing and delta CRL processing is enabled during X.509 certificate verification, the delta CRL processing does not check whether the CRL Number extension is NULL before dereferencing it. When a malformed delta CRL file is being processed, this parameter can be NULL, causing a NULL pointer dereference. Exploiting this issue requires the X509_V_FLAG_USE_DELTAS flag to be enabled in the verification context, the certificate being verified to contain a freshestCRL extension or the base CRL to have the EXFLAG_FRESHEST flag set, and an attacker to provide a malformed CRL to an application that processes it. The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. For that reason the issue was assessed as Low severity according to our Security Policy. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28389",
                        "url": "https://ubuntu.com/security/CVE-2026-28389",
                        "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyAgreeRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyAgreeRecipientInfo is processed, the optional parameters field of KeyEncryptionAlgorithmIdentifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary. Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service. When a CMS EnvelopedData message that uses KeyAgreeRecipientInfo is processed, the optional parameters field of KeyEncryptionAlgorithmIdentifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing. Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28390",
                        "url": "https://ubuntu.com/security/CVE-2026-28390",
                        "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyTransportRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyTransportRecipientInfo with RSA-OAEP encryption is processed, the optional parameters field of RSA-OAEP SourceFunc algorithm identifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary. Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service. When a CMS EnvelopedData message that uses KeyTransportRecipientInfo with RSA-OAEP encryption is processed, the optional parameters field of RSA-OAEP SourceFunc algorithm identifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing. Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31789",
                        "url": "https://ubuntu.com/security/CVE-2026-31789",
                        "cve_description": "Issue summary: Converting an excessively large OCTET STRING value to a hexadecimal string leads to a heap buffer overflow on 32 bit platforms.  Impact summary: A heap buffer overflow may lead to a crash or possibly an attacker controlled code execution or other undefined behavior.  If an attacker can supply a crafted X.509 certificate with an excessively large OCTET STRING value in extensions such as the Subject Key Identifier (SKID) or Authority Key Identifier (AKID) which are being converted to hex, the size of the buffer needed for the result is calculated as multiplication of the input length by 3. On 32 bit platforms, this multiplication may overflow resulting in the allocation of a smaller buffer and a heap buffer overflow.  Applications and services that print or log contents of untrusted X.509 certificates are vulnerable to this issue. As the certificates would have to have sizes of over 1 Gigabyte, printing or logging such certificates is a fairly unlikely operation and only 32 bit platforms are affected, this issue was assigned Low severity.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31790",
                        "url": "https://ubuntu.com/security/CVE-2026-31790",
                        "cve_description": "Issue summary: Applications using RSASVE key encapsulation to establish a secret encryption key can send contents of an uninitialized memory buffer to a malicious peer.  Impact summary: The uninitialized buffer might contain sensitive data from the previous execution of the application process which leads to sensitive data leakage to an attacker.  RSA_public_encrypt() returns the number of bytes written on success and -1 on error. The affected code tests only whether the return value is non-zero. As a result, if RSA encryption fails, encapsulation can still return success to the caller, set the output lengths, and leave the caller to use the contents of the ciphertext buffer as if a valid KEM ciphertext had been produced.  If applications use EVP_PKEY_encapsulate() with RSA/RSASVE on an attacker-supplied invalid RSA public key without first validating that key, then this may cause stale or uninitialized contents of the caller-provided ciphertext buffer to be disclosed to the attacker in place of the KEM ciphertext.  As a workaround calling EVP_PKEY_public_check() or EVP_PKEY_public_check_quick() before EVP_PKEY_encapsulate() will mitigate the issue.  The FIPS modules in 3.6, 3.5, 3.4, 3.3, 3.1 and 3.0 are affected by this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-28387",
                                "url": "https://ubuntu.com/security/CVE-2026-28387",
                                "cve_description": "Issue summary: An uncommon configuration of clients performing DANE TLSA-based server authentication, when paired with uncommon server DANE TLSA records, may result in a use-after-free and/or double-free on the client side.  Impact summary: A use after free can have a range of potential consequences such as the corruption of valid data, crashes or execution of arbitrary code.  However, the issue only affects clients that make use of TLSA records with both the PKIX-TA(0/PKIX-EE(1) certificate usages and the DANE-TA(2) certificate usage.  By far the most common deployment of DANE is in SMTP MTAs for which RFC7672 recommends that clients treat as 'unusable' any TLSA records that have the PKIX certificate usages.  These SMTP (or other similar) clients are not vulnerable to this issue.  Conversely, any clients that support only the PKIX usages, and ignore the DANE-TA(2) usage are also not vulnerable.  The client would also need to be communicating with a server that publishes a TLSA RRset with both types of TLSA records.  No FIPS modules are affected by this issue, the problem code is outside the FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28388",
                                "url": "https://ubuntu.com/security/CVE-2026-28388",
                                "cve_description": "Issue summary: When a delta CRL that contains a Delta CRL Indicator extension is processed a NULL pointer dereference might happen if the required CRL Number extension is missing.  Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application.  When CRL processing and delta CRL processing is enabled during X.509 certificate verification, the delta CRL processing does not check whether the CRL Number extension is NULL before dereferencing it. When a malformed delta CRL file is being processed, this parameter can be NULL, causing a NULL pointer dereference.  Exploiting this issue requires the X509_V_FLAG_USE_DELTAS flag to be enabled in the verification context, the certificate being verified to contain a freshestCRL extension or the base CRL to have the EXFLAG_FRESHEST flag set, and an attacker to provide a malformed CRL to an application that processes it.  The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. For that reason the issue was assessed as Low severity according to our Security Policy.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary. Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application. When CRL processing and delta CRL processing is enabled during X.509 certificate verification, the delta CRL processing does not check whether the CRL Number extension is NULL before dereferencing it. When a malformed delta CRL file is being processed, this parameter can be NULL, causing a NULL pointer dereference. Exploiting this issue requires the X509_V_FLAG_USE_DELTAS flag to be enabled in the verification context, the certificate being verified to contain a freshestCRL extension or the base CRL to have the EXFLAG_FRESHEST flag set, and an attacker to provide a malformed CRL to an application that processes it. The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. For that reason the issue was assessed as Low severity according to our Security Policy. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28389",
                                "url": "https://ubuntu.com/security/CVE-2026-28389",
                                "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyAgreeRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyAgreeRecipientInfo is processed, the optional parameters field of KeyEncryptionAlgorithmIdentifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary. Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service. When a CMS EnvelopedData message that uses KeyAgreeRecipientInfo is processed, the optional parameters field of KeyEncryptionAlgorithmIdentifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing. Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28390",
                                "url": "https://ubuntu.com/security/CVE-2026-28390",
                                "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyTransportRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyTransportRecipientInfo with RSA-OAEP encryption is processed, the optional parameters field of RSA-OAEP SourceFunc algorithm identifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary. Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service. When a CMS EnvelopedData message that uses KeyTransportRecipientInfo with RSA-OAEP encryption is processed, the optional parameters field of RSA-OAEP SourceFunc algorithm identifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing. Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31789",
                                "url": "https://ubuntu.com/security/CVE-2026-31789",
                                "cve_description": "Issue summary: Converting an excessively large OCTET STRING value to a hexadecimal string leads to a heap buffer overflow on 32 bit platforms.  Impact summary: A heap buffer overflow may lead to a crash or possibly an attacker controlled code execution or other undefined behavior.  If an attacker can supply a crafted X.509 certificate with an excessively large OCTET STRING value in extensions such as the Subject Key Identifier (SKID) or Authority Key Identifier (AKID) which are being converted to hex, the size of the buffer needed for the result is calculated as multiplication of the input length by 3. On 32 bit platforms, this multiplication may overflow resulting in the allocation of a smaller buffer and a heap buffer overflow.  Applications and services that print or log contents of untrusted X.509 certificates are vulnerable to this issue. As the certificates would have to have sizes of over 1 Gigabyte, printing or logging such certificates is a fairly unlikely operation and only 32 bit platforms are affected, this issue was assigned Low severity.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31790",
                                "url": "https://ubuntu.com/security/CVE-2026-31790",
                                "cve_description": "Issue summary: Applications using RSASVE key encapsulation to establish a secret encryption key can send contents of an uninitialized memory buffer to a malicious peer.  Impact summary: The uninitialized buffer might contain sensitive data from the previous execution of the application process which leads to sensitive data leakage to an attacker.  RSA_public_encrypt() returns the number of bytes written on success and -1 on error. The affected code tests only whether the return value is non-zero. As a result, if RSA encryption fails, encapsulation can still return success to the caller, set the output lengths, and leave the caller to use the contents of the ciphertext buffer as if a valid KEM ciphertext had been produced.  If applications use EVP_PKEY_encapsulate() with RSA/RSASVE on an attacker-supplied invalid RSA public key without first validating that key, then this may cause stale or uninitialized contents of the caller-provided ciphertext buffer to be disclosed to the attacker in place of the KEM ciphertext.  As a workaround calling EVP_PKEY_public_check() or EVP_PKEY_public_check_quick() before EVP_PKEY_encapsulate() will mitigate the issue.  The FIPS modules in 3.6, 3.5, 3.4, 3.3, 3.1 and 3.0 are affected by this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: NULL pointer dereference when processing an OCSP",
                            "    response",
                            "    - debian/patches/CVE-2026-28387.patch: dane_match_cert() should",
                            "      X509_free() on ->mcert instead of OPENSSL_free() in",
                            "      crypto/x509/x509_vfy.c.",
                            "    - CVE-2026-28387",
                            "  * SECURITY UPDATE: NULL Pointer Dereference When Processing a Delta CRL",
                            "    - debian/patches/CVE-2026-28388-1.patch: fix NULL Dereference When",
                            "      Delta CRL Lacks CRL Number Extension in crypto/x509/x509_vfy.c.",
                            "    - debian/patches/CVE-2026-28388-2.patch: Added test in test/*.",
                            "    - CVE-2026-28388",
                            "  * SECURITY UPDATE: Possible NULL dereference when processing CMS",
                            "    KeyAgreeRecipientInfo",
                            "    - debian/patches/CVE-2026-28389.patch: Fix NULL deref in",
                            "      [ec]dh_cms_set_shared_info in crypto/cms/cms_dh.c,",
                            "      crypto/cms/cms_ec.c.",
                            "    - CVE-2026-28389",
                            "  * SECURITY UPDATE: Possible NULL Dereference When Processing CMS",
                            "    KeyTransportRecipientInfo",
                            "    - debian/patches/CVE-2026-28390.patch: Fix NULL deref in",
                            "      rsa_cms_decrypt in crypto/cms/cms_rsa.c.",
                            "    - CVE-2026-28390",
                            "  * SECURITY UPDATE: Heap buffer overflow in hexadecimal conversion",
                            "    - debian/patches/CVE-2026-31789.patch: avoid possible buffer overflow",
                            "      in buf2hex conversion in crypto/o_str.c.",
                            "    - CVE-2026-31789",
                            "  * SECURITY UPDATE: Incorrect failure handling in RSA KEM RSASVE",
                            "    encapsulation",
                            "    - debian/patches/CVE-2026-31790-1.patch: validate RSA_public_encrypt()",
                            "      result in RSASVE in providers/implementations/kem/rsa_kem.c.",
                            "    - debian/patches/CVE-2026-31790-2.patch: test RSA_public_encrypt()",
                            "      result in RSASVE in test/evp_extra_test.c.",
                            "    - CVE-2026-31790",
                            ""
                        ],
                        "package": "openssl",
                        "version": "3.0.2-0ubuntu1.23",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Tue, 07 Apr 2026 08:05:56 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "packagekit",
                "from_version": {
                    "source_package_name": "packagekit",
                    "source_package_version": "1.2.5-2ubuntu3",
                    "version": "1.2.5-2ubuntu3"
                },
                "to_version": {
                    "source_package_name": "packagekit",
                    "source_package_version": "1.2.5-2ubuntu3.1",
                    "version": "1.2.5-2ubuntu3.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2148512
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: TOCTOU Race on Transaction Flags (LP: #2148512)",
                            "    - debian/patches/Do-not-allow-re-invoking-methods-on-non-new-txn.patch:",
                            "      do not allow re-invoking methods on non-new transactions in",
                            "      src/pk-transaction.c.",
                            "    - CVE number pending",
                            ""
                        ],
                        "package": "packagekit",
                        "version": "1.2.5-2ubuntu3.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [
                            2148512
                        ],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Mon, 20 Apr 2026 08:24:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "packagekit-tools",
                "from_version": {
                    "source_package_name": "packagekit",
                    "source_package_version": "1.2.5-2ubuntu3",
                    "version": "1.2.5-2ubuntu3"
                },
                "to_version": {
                    "source_package_name": "packagekit",
                    "source_package_version": "1.2.5-2ubuntu3.1",
                    "version": "1.2.5-2ubuntu3.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2148512
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: TOCTOU Race on Transaction Flags (LP: #2148512)",
                            "    - debian/patches/Do-not-allow-re-invoking-methods-on-non-new-txn.patch:",
                            "      do not allow re-invoking methods on non-new transactions in",
                            "      src/pk-transaction.c.",
                            "    - CVE number pending",
                            ""
                        ],
                        "package": "packagekit",
                        "version": "1.2.5-2ubuntu3.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [
                            2148512
                        ],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Mon, 20 Apr 2026 08:24:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "pkexec",
                "from_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33",
                    "version": "0.105-33"
                },
                "to_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33ubuntu0.1",
                    "version": "0.105-33ubuntu0.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-7519",
                        "url": "https://ubuntu.com/security/CVE-2025-7519",
                        "cve_description": "A flaw was found in polkit. When processing an XML policy with 32 or more nested elements in depth, an out-of-bounds write can be triggered. This issue can lead to a crash or other unexpected behavior, and arbitrary code execution is not discarded. To exploit this flaw, a high-privilege account is needed as it's required to place the malicious policy file properly.",
                        "cve_priority": "low",
                        "cve_public_date": "2025-07-14 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-4897",
                        "url": "https://ubuntu.com/security/CVE-2026-4897",
                        "cve_description": "A flaw was found in polkit. A local user can exploit this by providing a specially crafted, excessively long input to the `polkit-agent-helper-1` setuid binary via standard input (stdin). This unbounded input can lead to an out-of-memory (OOM) condition, resulting in a Denial of Service (DoS) for the system.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-26 15:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-7519",
                                "url": "https://ubuntu.com/security/CVE-2025-7519",
                                "cve_description": "A flaw was found in polkit. When processing an XML policy with 32 or more nested elements in depth, an out-of-bounds write can be triggered. This issue can lead to a crash or other unexpected behavior, and arbitrary code execution is not discarded. To exploit this flaw, a high-privilege account is needed as it's required to place the malicious policy file properly.",
                                "cve_priority": "low",
                                "cve_public_date": "2025-07-14 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-4897",
                                "url": "https://ubuntu.com/security/CVE-2026-4897",
                                "cve_description": "A flaw was found in polkit. A local user can exploit this by providing a specially crafted, excessively long input to the `polkit-agent-helper-1` setuid binary via standard input (stdin). This unbounded input can lead to an out-of-memory (OOM) condition, resulting in a Denial of Service (DoS) for the system.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-26 15:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: OOB write via nested elements in XML policy",
                            "    - debian/patches/CVE-2025-7519.patch: check depth in",
                            "      src/polkitbackend/polkitbackendactionpool.c.",
                            "    - CVE-2025-7519",
                            "  * SECURITY UPDATE: DoS via excessively long input",
                            "    - debian/patches/CVE-2026-4897.patch: fix getline() string overflow in",
                            "      src/polkitagent/polkitagenthelperprivate.c.",
                            "    - CVE-2026-4897",
                            ""
                        ],
                        "package": "policykit-1",
                        "version": "0.105-33ubuntu0.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 10 Apr 2026 06:59:20 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "policykit-1",
                "from_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33",
                    "version": "0.105-33"
                },
                "to_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33ubuntu0.1",
                    "version": "0.105-33ubuntu0.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-7519",
                        "url": "https://ubuntu.com/security/CVE-2025-7519",
                        "cve_description": "A flaw was found in polkit. When processing an XML policy with 32 or more nested elements in depth, an out-of-bounds write can be triggered. This issue can lead to a crash or other unexpected behavior, and arbitrary code execution is not discarded. To exploit this flaw, a high-privilege account is needed as it's required to place the malicious policy file properly.",
                        "cve_priority": "low",
                        "cve_public_date": "2025-07-14 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-4897",
                        "url": "https://ubuntu.com/security/CVE-2026-4897",
                        "cve_description": "A flaw was found in polkit. A local user can exploit this by providing a specially crafted, excessively long input to the `polkit-agent-helper-1` setuid binary via standard input (stdin). This unbounded input can lead to an out-of-memory (OOM) condition, resulting in a Denial of Service (DoS) for the system.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-26 15:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-7519",
                                "url": "https://ubuntu.com/security/CVE-2025-7519",
                                "cve_description": "A flaw was found in polkit. When processing an XML policy with 32 or more nested elements in depth, an out-of-bounds write can be triggered. This issue can lead to a crash or other unexpected behavior, and arbitrary code execution is not discarded. To exploit this flaw, a high-privilege account is needed as it's required to place the malicious policy file properly.",
                                "cve_priority": "low",
                                "cve_public_date": "2025-07-14 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-4897",
                                "url": "https://ubuntu.com/security/CVE-2026-4897",
                                "cve_description": "A flaw was found in polkit. A local user can exploit this by providing a specially crafted, excessively long input to the `polkit-agent-helper-1` setuid binary via standard input (stdin). This unbounded input can lead to an out-of-memory (OOM) condition, resulting in a Denial of Service (DoS) for the system.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-26 15:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: OOB write via nested elements in XML policy",
                            "    - debian/patches/CVE-2025-7519.patch: check depth in",
                            "      src/polkitbackend/polkitbackendactionpool.c.",
                            "    - CVE-2025-7519",
                            "  * SECURITY UPDATE: DoS via excessively long input",
                            "    - debian/patches/CVE-2026-4897.patch: fix getline() string overflow in",
                            "      src/polkitagent/polkitagenthelperprivate.c.",
                            "    - CVE-2026-4897",
                            ""
                        ],
                        "package": "policykit-1",
                        "version": "0.105-33ubuntu0.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 10 Apr 2026 06:59:20 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "polkitd",
                "from_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33",
                    "version": "0.105-33"
                },
                "to_version": {
                    "source_package_name": "policykit-1",
                    "source_package_version": "0.105-33ubuntu0.1",
                    "version": "0.105-33ubuntu0.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-7519",
                        "url": "https://ubuntu.com/security/CVE-2025-7519",
                        "cve_description": "A flaw was found in polkit. When processing an XML policy with 32 or more nested elements in depth, an out-of-bounds write can be triggered. This issue can lead to a crash or other unexpected behavior, and arbitrary code execution is not discarded. To exploit this flaw, a high-privilege account is needed as it's required to place the malicious policy file properly.",
                        "cve_priority": "low",
                        "cve_public_date": "2025-07-14 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-4897",
                        "url": "https://ubuntu.com/security/CVE-2026-4897",
                        "cve_description": "A flaw was found in polkit. A local user can exploit this by providing a specially crafted, excessively long input to the `polkit-agent-helper-1` setuid binary via standard input (stdin). This unbounded input can lead to an out-of-memory (OOM) condition, resulting in a Denial of Service (DoS) for the system.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-26 15:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-7519",
                                "url": "https://ubuntu.com/security/CVE-2025-7519",
                                "cve_description": "A flaw was found in polkit. When processing an XML policy with 32 or more nested elements in depth, an out-of-bounds write can be triggered. This issue can lead to a crash or other unexpected behavior, and arbitrary code execution is not discarded. To exploit this flaw, a high-privilege account is needed as it's required to place the malicious policy file properly.",
                                "cve_priority": "low",
                                "cve_public_date": "2025-07-14 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-4897",
                                "url": "https://ubuntu.com/security/CVE-2026-4897",
                                "cve_description": "A flaw was found in polkit. A local user can exploit this by providing a specially crafted, excessively long input to the `polkit-agent-helper-1` setuid binary via standard input (stdin). This unbounded input can lead to an out-of-memory (OOM) condition, resulting in a Denial of Service (DoS) for the system.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-26 15:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: OOB write via nested elements in XML policy",
                            "    - debian/patches/CVE-2025-7519.patch: check depth in",
                            "      src/polkitbackend/polkitbackendactionpool.c.",
                            "    - CVE-2025-7519",
                            "  * SECURITY UPDATE: DoS via excessively long input",
                            "    - debian/patches/CVE-2026-4897.patch: fix getline() string overflow in",
                            "      src/polkitagent/polkitagenthelperprivate.c.",
                            "    - CVE-2026-4897",
                            ""
                        ],
                        "package": "policykit-1",
                        "version": "0.105-33ubuntu0.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 10 Apr 2026 06:59:20 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "pollinate",
                "from_version": {
                    "source_package_name": "pollinate",
                    "source_package_version": "4.33-3ubuntu2.1",
                    "version": "4.33-3ubuntu2.1"
                },
                "to_version": {
                    "source_package_name": "pollinate",
                    "source_package_version": "4.33-3ubuntu2.3",
                    "version": "4.33-3ubuntu2.3"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2146451
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Remove certificate pinning (LP: #2146451)",
                            "    - Curl will now use the system ca-certificates to validate the server",
                            "      cert which will allow a graceful transition during the upcoming",
                            "      certificate renewal and prevent machines from booting without",
                            "      seeded entropy.",
                            ""
                        ],
                        "package": "pollinate",
                        "version": "4.33-3ubuntu2.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [
                            2146451
                        ],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 26 Mar 2026 08:25:57 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3-jwt",
                "from_version": {
                    "source_package_name": "pyjwt",
                    "source_package_version": "2.3.0-1ubuntu0.2",
                    "version": "2.3.0-1ubuntu0.2"
                },
                "to_version": {
                    "source_package_name": "pyjwt",
                    "source_package_version": "2.3.0-1ubuntu0.3",
                    "version": "2.3.0-1ubuntu0.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-32597",
                        "url": "https://ubuntu.com/security/CVE-2026-32597",
                        "cve_description": "PyJWT is a JSON Web Token implementation in Python. Prior to 2.12.0, PyJWT does not validate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. When a JWS token contains a crit array listing extensions that PyJWT does not understand, the library accepts the token instead of rejecting it. This violates the MUST requirement in the RFC. This vulnerability is fixed in 2.12.0.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-13 19:55:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-32597",
                                "url": "https://ubuntu.com/security/CVE-2026-32597",
                                "cve_description": "PyJWT is a JSON Web Token implementation in Python. Prior to 2.12.0, PyJWT does not validate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. When a JWS token contains a crit array listing extensions that PyJWT does not understand, the library accepts the token instead of rejecting it. This violates the MUST requirement in the RFC. This vulnerability is fixed in 2.12.0.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-13 19:55:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Incorrect authorization of invalid JWS token.",
                            "    - debian/patches/CVE-2026-32597.patch: Add _supported_crit and checks",
                            "      for valid crit header in jwt/api_jws.py. Add tests in",
                            "      tests/test_api_jws.py and tests/test_api_jwt.py.",
                            "    - CVE-2026-32597",
                            ""
                        ],
                        "package": "pyjwt",
                        "version": "2.3.0-1ubuntu0.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Hlib Korzhynskyy <hlib.korzhynskyy@canonical.com>",
                        "date": "Thu, 26 Mar 2026 14:58:14 -0230"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3-openssl",
                "from_version": {
                    "source_package_name": "pyopenssl",
                    "source_package_version": "21.0.0-1",
                    "version": "21.0.0-1"
                },
                "to_version": {
                    "source_package_name": "pyopenssl",
                    "source_package_version": "21.0.0-1ubuntu0.1",
                    "version": "21.0.0-1ubuntu0.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-27448",
                        "url": "https://ubuntu.com/security/CVE-2026-27448",
                        "cve_description": "pyOpenSSL is a Python wrapper around the OpenSSL library. Starting in version 0.14.0 and prior to version 26.0.0, if a user provided callback to `set_tlsext_servername_callback` raised an unhandled exception, this would result in a connection being accepted. If a user was relying on this callback for any security-sensitive behavior, this could allow bypassing it. Starting in version 26.0.0, unhandled exceptions now result in rejecting the connection.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-03-18 00:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-27448",
                                "url": "https://ubuntu.com/security/CVE-2026-27448",
                                "cve_description": "pyOpenSSL is a Python wrapper around the OpenSSL library. Starting in version 0.14.0 and prior to version 26.0.0, if a user provided callback to `set_tlsext_servername_callback` raised an unhandled exception, this would result in a connection being accepted. If a user was relying on this callback for any security-sensitive behavior, this could allow bypassing it. Starting in version 26.0.0, unhandled exceptions now result in rejecting the connection.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-03-18 00:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Unhandled exceptions in set_tlsext_servername_callback",
                            "    - debian/patches/CVE-2026-27448.patch: handle exceptions in callbacks",
                            "      in src/OpenSSL/SSL.py, tests/test_ssl.py.",
                            "    - CVE-2026-27448",
                            ""
                        ],
                        "package": "pyopenssl",
                        "version": "21.0.0-1ubuntu0.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Wed, 18 Mar 2026 14:11:32 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3-pyasn1",
                "from_version": {
                    "source_package_name": "pyasn1",
                    "source_package_version": "0.4.8-1ubuntu0.1",
                    "version": "0.4.8-1ubuntu0.1"
                },
                "to_version": {
                    "source_package_name": "pyasn1",
                    "source_package_version": "0.4.8-1ubuntu0.2",
                    "version": "0.4.8-1ubuntu0.2"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-30922",
                        "url": "https://ubuntu.com/security/CVE-2026-30922",
                        "cve_description": "pyasn1 is a generic ASN.1 library for Python. Prior to 0.6.3, the `pyasn1` library is vulnerable to a Denial of Service (DoS) attack caused by uncontrolled recursion when decoding ASN.1 data with deeply nested structures. An attacker can supply a crafted payload containing thousands of nested `SEQUENCE` (`0x30`) or `SET` (`0x31`) tags with \"Indefinite Length\" (`0x80`) markers. This forces the decoder to recursively call itself until the Python interpreter crashes with a `RecursionError` or consumes all available memory (OOM), crashing the host application. This is a distinct vulnerability from CVE-2026-23490 (which addressed integer overflows in OID decoding). The fix for CVE-2026-23490 (`MAX_OID_ARC_CONTINUATION_OCTETS`) does not mitigate this recursion issue. Version 0.6.3 fixes this specific issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 04:17:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-30922",
                                "url": "https://ubuntu.com/security/CVE-2026-30922",
                                "cve_description": "pyasn1 is a generic ASN.1 library for Python. Prior to 0.6.3, the `pyasn1` library is vulnerable to a Denial of Service (DoS) attack caused by uncontrolled recursion when decoding ASN.1 data with deeply nested structures. An attacker can supply a crafted payload containing thousands of nested `SEQUENCE` (`0x30`) or `SET` (`0x31`) tags with \"Indefinite Length\" (`0x80`) markers. This forces the decoder to recursively call itself until the Python interpreter crashes with a `RecursionError` or consumes all available memory (OOM), crashing the host application. This is a distinct vulnerability from CVE-2026-23490 (which addressed integer overflows in OID decoding). The fix for CVE-2026-23490 (`MAX_OID_ARC_CONTINUATION_OCTETS`) does not mitigate this recursion issue. Version 0.6.3 fixes this specific issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 04:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: DoS via uncontrolled recursion",
                            "    - debian/patches/CVE-2026-30922.patch: limit nesting depth in",
                            "      pyasn1/codec/ber/decoder.py, tests/codec/ber/test_decoder.py,",
                            "      tests/codec/cer/test_decoder.py, tests/codec/der/test_decoder.py.",
                            "    - CVE-2026-30922",
                            ""
                        ],
                        "package": "pyasn1",
                        "version": "0.4.8-1ubuntu0.2",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Mon, 23 Mar 2026 13:49:20 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "sed",
                "from_version": {
                    "source_package_name": "sed",
                    "source_package_version": "4.8-1ubuntu2",
                    "version": "4.8-1ubuntu2"
                },
                "to_version": {
                    "source_package_name": "sed",
                    "source_package_version": "4.8-1ubuntu2.1",
                    "version": "4.8-1ubuntu2.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-5958",
                        "url": "https://ubuntu.com/security/CVE-2026-5958",
                        "cve_description": "When sed is invoked with both -i (in-place edit) and --follow-symlinks, the function open_next_file() performs two separate, non-atomic filesystem operations on the same path: 1. resolves symlink to its target and stores the resolved path for determining when output is written, 2. opens the original symlink path (not the resolved one) to read the file.  Between these two calls there is a race window. If an attacker atomically replaces the symlink with a different target during that window, sed will: read content from the new (attacker-chosen) symlink target and write the processed result to the path recorded in step 1. This can lead to arbitrary file overwrite with attacker-controlled content in the context of the sed process.   This issue was fixed in version 4.10.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-20 12:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-5958",
                                "url": "https://ubuntu.com/security/CVE-2026-5958",
                                "cve_description": "When sed is invoked with both -i (in-place edit) and --follow-symlinks, the function open_next_file() performs two separate, non-atomic filesystem operations on the same path: 1. resolves symlink to its target and stores the resolved path for determining when output is written, 2. opens the original symlink path (not the resolved one) to read the file.  Between these two calls there is a race window. If an attacker atomically replaces the symlink with a different target during that window, sed will: read content from the new (attacker-chosen) symlink target and write the processed result to the path recorded in step 1. This can lead to arbitrary file overwrite with attacker-controlled content in the context of the sed process.   This issue was fixed in version 4.10.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-20 12:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: TOCTOU race in sed -i --follow-symlinks",
                            "    - debian/patches/CVE-2026-5958.patch: open the already-resolved path",
                            "      instead of re-traversing the symlink in sed/execute.c.",
                            "    - CVE-2026-5958",
                            ""
                        ],
                        "package": "sed",
                        "version": "4.8-1ubuntu2.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 17 Apr 2026 14:02:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "snapd",
                "from_version": {
                    "source_package_name": "snapd",
                    "source_package_version": "2.73+ubuntu22.04.1",
                    "version": "2.73+ubuntu22.04.1"
                },
                "to_version": {
                    "source_package_name": "snapd",
                    "source_package_version": "2.74.1+ubuntu22.04.4",
                    "version": "2.74.1+ubuntu22.04.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-3888",
                        "url": "https://ubuntu.com/security/CVE-2026-3888",
                        "cve_description": "Local privilege escalation in snapd on Linux allows local attackers to get root privilege by re-creating snap's private /tmp directory when systemd-tmpfiles is configured to automatically clean up this directory. This issue affects Ubuntu 16.04 LTS, 18.04 LTS, 20.04 LTS, 22.04 LTS, and 24.04 LTS.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-03-17 14:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2138629,
                    2141328,
                    2139611,
                    2139300,
                    2139099,
                    2141607,
                    2116949,
                    2068493,
                    2134364,
                    2124239,
                    2122054,
                    2117558,
                    1916244,
                    2121238,
                    2117121,
                    2112626,
                    2114704
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-3888",
                                "url": "https://ubuntu.com/security/CVE-2026-3888",
                                "cve_description": "Local privilege escalation in snapd on Linux allows local attackers to get root privilege by re-creating snap's private /tmp directory when systemd-tmpfiles is configured to automatically clean up this directory. This issue affects Ubuntu 16.04 LTS, 18.04 LTS, 20.04 LTS, 22.04 LTS, and 24.04 LTS.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-03-17 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            " ",
                            "   * New upstream release, LP: #2138629",
                            "    - FDE: secboot fixes",
                            "    - Security: CVE-2026-3888",
                            "    - Packaging: fix deb package version number",
                            "    - Packaging: fix autopkgtest failure to install spread",
                            "    - Packaging: revert dropping transitional packages",
                            ""
                        ],
                        "package": "snapd",
                        "version": "2.74.1+ubuntu22.04.4",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2138629
                        ],
                        "author": "Ernest Lotter <ernest.lotter@canonical.com>",
                        "date": "Thu, 02 Apr 2026 08:44:00 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "    - FDE: measure DeployedMode and AuditMode variables if they appear",
                            "      as disabled in the event log to avoid a potential reseal-failure",
                            "      boot loop",
                            "    - LP: #2141328 FDE: reuse preinstall check context during install to",
                            "      account for user-ignored errors",
                            "    - LP: #2139611 FDE: fix db updates by allowing multiple payloads",
                            "    - LP: #2139300 snap-confine: add CAP_SYS_RESOURCE to allow raising",
                            "      memory lock limit when required",
                            "    - LP: #2139099 snap-confine: bump the max element count of the BPF",
                            "      map used to store IDs of allowed/matched devices to 1000",
                            "    - LP: #2141607 Desktop: revert change that caused user daemons",
                            "      declaring the desktop plug to implicitly depend on graphical-",
                            "      session.target",
                            "    - Interfaces: Added pidfd_open and memfd_secret to seccomp template",
                            "    - Interfaces: camera | add locking permission for /dev/video",
                            ""
                        ],
                        "package": "snapd",
                        "version": "2.74.1+ubuntu22.04",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2141328,
                            2139611,
                            2139300,
                            2139099,
                            2141607
                        ],
                        "author": "Ernest Lotter <ernest.lotter@canonical.com>",
                        "date": "Thu, 12 Feb 2026 21:27:23 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "    - FDE: use new activation API from secboot",
                            "    - FDE: use activation API also with non keydata keys",
                            "    - FDE: ignore internal recovery key expiration during install",
                            "    - FDE: support adding/removing PINs post-installation",
                            "    - FDE: support changing PINs post-installation",
                            "    - FDE: support adding a recovery key post-installation",
                            "    - FDE: provide activation status via new endpoint v2/system-",
                            "      info/storage-encrypted",
                            "    - FDE: support sealing and resealing using the preinstall check",
                            "      result",
                            "    - FDE: disable passphrase support during install",
                            "    - FDE: add keyboard configuration helpers",
                            "    - FDE: lazily inject keyboard layout configuration in kernel cmdline",
                            "    - FDE: enable pin tries and limits PIN entry attempts to 3",
                            "    - FDE: extend secureboot endpoint to accept DB, KEK, and PK",
                            "    - FDE: simplify /v2/system-volumes keyslots handling by allowing",
                            "      name-only entries, implicitly expanding to all system containers",
                            "    - FDE: support extra non-system key slot names to support agents",
                            "      such as Landscape to set dedicated recovery keys",
                            "    - FDE: initialize fde state after device state",
                            "    - FDE: use device node to find the storage container and keys",
                            "    - FDE: provide user visible name for disk based on ID_MODEL",
                            "    - FDE: update secboot in snapd with latest additions and fixes",
                            "    - core-initrd: add systemd service for setting plymouth keyboard",
                            "      layout and X11 keyboard layouts",
                            "    - core-initrd: set plymouth cleartext toggle option",
                            "    - core-initrd: fix plymouth missing font issue",
                            "    - core-initrd: update dependency from libteec1 to libteec2",
                            "    - core-initrd: add new dlopened libs",
                            "    - LP: #2116949 Preseeding: add support for preseeding of hybrid",
                            "      systems via the installer API$",
                            "    - Preseeding: check whether a path is a mountpoint before remounting",
                            "    - Confdb: support tagging paths as secret in storage schemas",
                            "    - Confdb: support filtering on placeholder sub-keys",
                            "    - Confdb: support filtering in API and confdbstate",
                            "    - Confdb: support field filtering on reads",
                            "    - Confdb: support \"parameters\" stanza and check filters against them",
                            "    - Confdb: add support for '--with' contraints",
                            "    - Confdb: parsing fixes and error handling improvements",
                            "    - Assertions: restrict serials to new format in confdb-control",
                            "    - Assertions: add verify signature function",
                            "    - Remote device management: modify request-message assertion to",
                            "      expose its time constraints for remote device management",
                            "    - Remote device management: support polling of store messages",
                            "    - Remote device management: add signing of response messages with",
                            "      device key",
                            "    - Prompting: enable notify protocol v5 and test prompt restoration",
                            "      after snapd restart",
                            "    - snap: change malformed '--channel=' warning to error",
                            "    - snap: add 'snap report-issue' command to get the available contact",
                            "      details for the specified snap",
                            "    - snap: add 'snap version --verbose' flag to include information on",
                            "      snap binaries origin",
                            "    - snap: create the XDG_RUNTIME_DIR folder",
                            "    - LP: #2068493 snap: add support for 'snap refresh --tracking'",
                            "    - snapctl: add '--tracking' flag to 'snapctl refresh'",
                            "    - Reexec: include the info filepath in the version compare debug log",
                            "    - Reexec: add support for forcing reexec into and older snapd snap",
                            "      by setting SNAP_REEXEC=force in the environment",
                            "    - snap-confine: correct error message related to snap-confine group",
                            "      policy validation",
                            "    - snap-confine: ensure we only mount existing directories",
                            "    - LP: #2134364 snap-confine: handle potential race when creating",
                            "      /tmp/snap-private-tmp when lacking systemd-tmpfiles support",
                            "    - snap-confine: filter plus characters from security tags",
                            "    - Desktop: use desktop file IDs as desktop IDs",
                            "    - Desktop: store the common ID in the desktop file",
                            "    - Desktop: allow graphical daemons to show icons in the dock",
                            "    - Desktop: change user daemons with desktop plug defined to depend",
                            "      on graphical-session.target",
                            "    - dm-verity for essential snaps: made change to prerequisite struct",
                            "    - Cross-distro: modify SELinux profile to allow connecting to squid",
                            "      proxy",
                            "    - Cross-distro: add support for migrating snap mount directory",
                            "    - Packaging: drop ubuntu-14.04 packaging",
                            "    - Packaging: drop ubuntu-{14.04,16.04} transitional binary packages",
                            "    - Packaging: remove desktop files and state lock file during snapd",
                            "      purge",
                            "    - Packaging: fix inhibition hint file being left behind on failed",
                            "      unlink-current-snap",
                            "    - Disallow timeouts < 1us in systemd units",
                            "    - Add snap-store to the user-daemons support overrides",
                            "    - Support for SuccessExitStatus= generation for systemd daemon",
                            "    - Make standby output more verbose",
                            "    - Add prepare-serial-request hook",
                            "    - Try to discard snap mount namespaces when no processes are running",
                            "      during snap updates",
                            "    - Improve handling of snap downloads cache by introducing periodic",
                            "      cleanup with more aggressive policy",
                            "    - Interfaces: mediatek-accel | create new interface",
                            "    - Interfaces: nvidia-video-driver-libs | create new interface",
                            "    - Interfaces: *-driver-libs | accept component paths",
                            "    - Interfaces: desktop-legacy, unity7 | remove workaround for slash",
                            "      filtering in ibus address",
                            "    - Interfaces: fwupd | allow writing reboot notification in /run",
                            "    - Interfaces: add 'install' coreutil to base AppArmor template",
                            "    - Interfaces: u2f-devices | add apparmor permissions to allow the",
                            "      use of the libfido2 library in snaps",
                            "    - Interfaces: u2f-devices | add support for Thetis security key",
                            "    - Interfaces: add AppArmor workaround for mmap MAP_HUGETLB",
                            "    - Interfaces: timeserver-control | manage per-link ntp settings via",
                            "      systemd-networkd",
                            ""
                        ],
                        "package": "snapd",
                        "version": "2.74+ubuntu22.04",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2116949,
                            2068493,
                            2134364
                        ],
                        "author": "Ernest Lotter <ernest.lotter@canonical.com>",
                        "date": "Tue, 20 Jan 2026 18:54:17 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * New upstream release, LP: #2124239",
                            "    - FDE: support replacing TPM protected keys at runtime via the",
                            "      /v2/system-volumes endpoint",
                            "    - FDE: support secboot preinstall check fix actions for 25.10+",
                            "      hybrid installs via the /v2/system/{label} endpoint",
                            "    - FDE: tweak polkit message to remove jargon",
                            "    - FDE: ensure proper sealing with kernel command line defaults",
                            "    - FDE: provide generic reseal function",
                            "    - FDE: support using OPTEE for protecting keys, as an alternative to",
                            "      existing fde-setup hooks (Ubuntu Core only)",
                            "    - Confdb: 'snapctl get --view' supports passing default values",
                            "    - Confdb: content sub-rules in confdb-schemas inherit their parent",
                            "      rule's \"access\"",
                            "    - Confdb: make confdb error kinds used in API more generic",
                            "    - Confdb: fully support lists and indexed paths (including unset)",
                            "    - Prompting: add notice backend for prompting types (unused for now)",
                            "    - Prompting: include request cgroup in prompt",
                            "    - Prompting: handle unsupported xattrs",
                            "    - Prompting: add permission mapping for the camera interface",
                            "    - Notices: read notices from state without state lock",
                            "    - Notices: add methods to get notice fields and create, reoccur, and",
                            "      deepcopy notice",
                            "    - Notices: add notice manager to coordinate separate notice backends",
                            "    - Notices: support draining notices from state when notice backend",
                            "      registered as producer of a particular notice type",
                            "    - Notices: query notice manager from daemon instead of querying",
                            "      state for notices directly",
                            "    - Packaging: Ubuntu | ignore .git directory",
                            "    - Packaging: FIPS | bump deb Go FIPS to 1.23",
                            "    - Packaging: snap | bump FIPS toolchain to 1.23",
                            "    - Packaging: debian | sync most upstream changes",
                            "    - Packaging: debian-sid | depends on libcap2-bin for postint",
                            "    - Packaging: Fedora | drop fakeroot",
                            "    - Packaging: snap | modify snapd.mk to pass build tags when running",
                            "      unit tests",
                            "    - Packaging: snap | modify snapd.mk to pass nooptee build tag",
                            "    - Packaging: modify Makefile.am to fix snap-confine install profile",
                            "      with 'make hack'",
                            "    - Packaging: modify Makefile.am to fix out-of-tree use of 'make",
                            "      hack'",
                            "    - LP: #2122054 Snap installation: skip snap icon download when",
                            "      running in a cloud or using a proxy store",
                            "    - Snap installation: add timeout to http client when downloading",
                            "      snap icon",
                            "    - Snap installation: use http(s) proxy for icon downloads",
                            "    - LP: #2117558 snap-confine: fix error message with /root/snap not",
                            "      accessible",
                            "    - snap-confine: fix non-suid limitation by switching to root:root to",
                            "      operate v1 freezer",
                            "    - core-initrd: do not use writable-paths when not available",
                            "    - core-initrd: remove debian folder",
                            "    - LP: #1916244 Interfaces: gpio-chardev | re-enable the gpio-chardev",
                            "      interface now with the more robust gpio-aggregator configfs kernel",
                            "      interface",
                            "    - Interfaces: gpio-chardev | exclusive snap connections, raise a",
                            "      conflict when both gpio-chardev and gpio are connected",
                            "    - Interfaces: gpio-chardev | fix gpio-aggregator module load order",
                            "    - Interfaces: ros-snapd-support | grant access to /v2/changes",
                            "    - Interfaces: uda-driver-libs, egl-driver-libs, gbm-driver-libs,",
                            "      opengl-driver-libs, opengles-driver-libs | new interfaces to",
                            "      support nvidia driver components",
                            "    - Interfaces: microstack-support | allow DPDK (hugepage related",
                            "      permissions)",
                            "    - Interfaces: system-observe | allow reading additional files in",
                            "      /proc, needed by node-exporter",
                            "    - Interfaces: u2f | add Cano Key, Thesis FIDO2 BioFP+ Security Key",
                            "      and Kensington VeriMark DT Fingerprint Key to device list",
                            "    - Interfaces: snap-interfaces-requests-control | allow shell API",
                            "      control",
                            "    - Interfaces: fwupd | allow access to Intel CVS sysfs",
                            "    - Interfaces: hardware-observe | allow read access to Kernel",
                            "      Samepage Merging (KSM)",
                            "    - Interfaces: xilinx-dma | support Multi Queue DMA (QDMA) IP",
                            "    - Interfaces: spi | relax sysfs permission rules to allow access to",
                            "      SPI device node attributes",
                            "    - Interfaces: content | introduce compatibility label",
                            "    - LP: #2121238 Interfaces: do not expose Kerberos tickets for",
                            "      classic snaps",
                            "    - Interfaces: ssh-public-keys | allow ro access to public host keys",
                            "      with ssh-key",
                            "    - Interfaces: Modify AppArmor template to allow listing systemd",
                            "      credentials and invoking systemd-creds",
                            "    - Interfaces: modify AppArmor template with workarounds for Go 1.35",
                            "      cgroup aware GOMAXPROCS",
                            "    - Interfaces: modify seccomp template to allow landlock_*",
                            "    - Prevent snap hooks from running while relevant snaps are unlinked",
                            "    - Make refreshes wait before unlinking snaps if running hooks can be",
                            "      affected",
                            "    - Fix systemd unit generation by moving \"WantedBy=\" from section",
                            "      \"unit\" to \"install\"",
                            "    - Add opt-in logging support for snap-update-ns",
                            "    - Unhide 'snap help' sign and export-key under Development category",
                            "    - LP: #2117121 Cleanly support socket activation for classic snap",
                            "    - Add architecture to 'snap version' output",
                            "    - Add 'snap debug api' option to disable authentication through",
                            "      auth.json",
                            "    - Show grade in notes for 'snap info --verbose'",
                            "    - Fix preseeding failure due to scan-disk issue on RPi",
                            "    - Support 'snap debug api' queries to user session agents",
                            "    - LP: #2112626 Improve progress reporting for snap install/refresh",
                            "    - Drop legacy BAMF_DESKTOP_FILE_HINT in desktop files",
                            "    - Fix /v2/apps error for root user when user services are present",
                            "    - LP: #2114704 Extend output to indicate when snap data snapshot was",
                            "      created during remove",
                            "    - Improve how we handle emmc volumes",
                            "    - Improve handling of system-user extra assertions",
                            ""
                        ],
                        "package": "snapd",
                        "version": "2.72",
                        "urgency": "medium",
                        "distributions": "xenial",
                        "launchpad_bugs_fixed": [
                            2124239,
                            2122054,
                            2117558,
                            1916244,
                            2121238,
                            2117121,
                            2112626,
                            2114704
                        ],
                        "author": "Ernest Lotter <ernest.lotter@canonical.com>",
                        "date": "Thu, 18 Sep 2025 10:00:54 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "systemd",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "systemd-sysv",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "systemd-timesyncd",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "tzdata",
                "from_version": {
                    "source_package_name": "tzdata",
                    "source_package_version": "2025b-0ubuntu0.22.04.1",
                    "version": "2025b-0ubuntu0.22.04.1"
                },
                "to_version": {
                    "source_package_name": "tzdata",
                    "source_package_version": "2026a-0ubuntu0.22.04.1",
                    "version": "2026a-0ubuntu0.22.04.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2143355
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * New upstream release (LP: #2143355):",
                            "    - No leap second on 2026-06-30",
                            "    - Moldova has used EU transition times since 2022",
                            "  * Add autopkgtest test case for 2025c and 2026a release",
                            "  * Update the ICU timezone data to 2026a",
                            "  * Add autopkgtest test case for ICU timezone data 2026a",
                            ""
                        ],
                        "package": "tzdata",
                        "version": "2026a-0ubuntu0.22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2143355
                        ],
                        "author": "Nadzeya Hutsko <nadzeya.hutsko@canonical.com>",
                        "date": "Thu, 19 Mar 2026 15:04:40 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "ubuntu-advantage-tools",
                "from_version": {
                    "source_package_name": "ubuntu-advantage-tools",
                    "source_package_version": "37.1ubuntu0~22.04",
                    "version": "37.1ubuntu0~22.04"
                },
                "to_version": {
                    "source_package_name": "ubuntu-advantage-tools",
                    "source_package_version": "37.2ubuntu~22.04",
                    "version": "37.2ubuntu~22.04"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2131292
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/apparmor/ubuntu_pro_esm_cache.jinja2: fix \"DENIED\" messages when",
                            "    devicetree exists (LP: #2131292)",
                            ""
                        ],
                        "package": "ubuntu-advantage-tools",
                        "version": "37.2ubuntu~22.04",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2131292
                        ],
                        "author": "Renan Rodrigo <rr@ubuntu.com>",
                        "date": "Tue, 07 Apr 2026 15:24:25 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "ubuntu-pro-client",
                "from_version": {
                    "source_package_name": "ubuntu-advantage-tools",
                    "source_package_version": "37.1ubuntu0~22.04",
                    "version": "37.1ubuntu0~22.04"
                },
                "to_version": {
                    "source_package_name": "ubuntu-advantage-tools",
                    "source_package_version": "37.2ubuntu~22.04",
                    "version": "37.2ubuntu~22.04"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2131292
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/apparmor/ubuntu_pro_esm_cache.jinja2: fix \"DENIED\" messages when",
                            "    devicetree exists (LP: #2131292)",
                            ""
                        ],
                        "package": "ubuntu-advantage-tools",
                        "version": "37.2ubuntu~22.04",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2131292
                        ],
                        "author": "Renan Rodrigo <rr@ubuntu.com>",
                        "date": "Tue, 07 Apr 2026 15:24:25 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "ubuntu-pro-client-l10n",
                "from_version": {
                    "source_package_name": "ubuntu-advantage-tools",
                    "source_package_version": "37.1ubuntu0~22.04",
                    "version": "37.1ubuntu0~22.04"
                },
                "to_version": {
                    "source_package_name": "ubuntu-advantage-tools",
                    "source_package_version": "37.2ubuntu~22.04",
                    "version": "37.2ubuntu~22.04"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2131292
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/apparmor/ubuntu_pro_esm_cache.jinja2: fix \"DENIED\" messages when",
                            "    devicetree exists (LP: #2131292)",
                            ""
                        ],
                        "package": "ubuntu-advantage-tools",
                        "version": "37.2ubuntu~22.04",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2131292
                        ],
                        "author": "Renan Rodrigo <rr@ubuntu.com>",
                        "date": "Tue, 07 Apr 2026 15:24:25 -0300"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "udev",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "vim",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.26",
                    "version": "2:8.2.3995-1ubuntu2.26"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.29",
                    "version": "2:8.2.3995-1ubuntu2.29"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-41411",
                        "url": "https://ubuntu.com/security/CVE-2026-41411",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0357, A command injection vulnerability exists in Vim's tag file processing. When resolving a tag, the filename field from the tags file is passed through wildcard expansion to resolve environment variables and wildcards. If the filename field contains backtick syntax (e.g., `command`), Vim executes the embedded command via the system shell with the full privileges of the running user.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-24 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-39881",
                        "url": "https://ubuntu.com/security/CVE-2026-39881",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0316, a command injection vulnerability in Vim's netbeans interface allows a malicious netbeans server to execute arbitrary Ex commands when Vim connects to it, via unsanitized strings in the defineAnnoType and specialKeys protocol messages. This vulnerability is fixed in 9.2.0316.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-08 21:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-33412",
                        "url": "https://ubuntu.com/security/CVE-2026-33412",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0202, a command injection vulnerability exists in Vim's glob() function on Unix-like systems. By including a newline character (\\n) in a pattern passed to glob(), an attacker may be able to execute arbitrary shell commands. This vulnerability depends on the user's 'shell' setting. This issue has been patched in version 9.2.0202.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-24 20:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-34982",
                        "url": "https://ubuntu.com/security/CVE-2026-34982",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0276, a modeline sandbox bypass in Vim allows arbitrary OS command execution when a user opens a crafted file. The `complete`, `guitabtooltip` and `printheader` options are missing the `P_MLE` flag, allowing a modeline to be executed. Additionally, the `mapset()` function lacks a `check_secure()` call, allowing it to be abused from sandboxed expressions. Commit 9.2.0276 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-06 16:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-41411",
                                "url": "https://ubuntu.com/security/CVE-2026-41411",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0357, A command injection vulnerability exists in Vim's tag file processing. When resolving a tag, the filename field from the tags file is passed through wildcard expansion to resolve environment variables and wildcards. If the filename field contains backtick syntax (e.g., `command`), Vim executes the embedded command via the system shell with the full privileges of the running user.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-24 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command injection via backtick expansion in tag files",
                            "    - debian/patches/CVE-2026-41411.patch: Disallow backticks before attempting",
                            "      to expand filenames",
                            "    - CVE-2026-41411",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.29",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Federico Quattrin <federico.quattrin@canonical.com>",
                        "date": "Wed, 06 May 2026 13:56:18 -0300"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-39881",
                                "url": "https://ubuntu.com/security/CVE-2026-39881",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0316, a command injection vulnerability in Vim's netbeans interface allows a malicious netbeans server to execute arbitrary Ex commands when Vim connects to it, via unsanitized strings in the defineAnnoType and specialKeys protocol messages. This vulnerability is fixed in 9.2.0316.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-08 21:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command Injection in netbeans",
                            "    - debian/patches/CVE-2026-39881.patch: Validate typename, fg, and bg",
                            "      before passing to coloncmd in src/netbeans.c",
                            "    - CVE-2026-39881",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.28",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Kyle Kernick <kyle.kernick@canonical.com>",
                        "date": "Wed, 22 Apr 2026 12:21:19 -0600"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-33412",
                                "url": "https://ubuntu.com/security/CVE-2026-33412",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0202, a command injection vulnerability exists in Vim's glob() function on Unix-like systems. By including a newline character (\\n) in a pattern passed to glob(), an attacker may be able to execute arbitrary shell commands. This vulnerability depends on the user's 'shell' setting. This issue has been patched in version 9.2.0202.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-24 20:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-34982",
                                "url": "https://ubuntu.com/security/CVE-2026-34982",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0276, a modeline sandbox bypass in Vim allows arbitrary OS command execution when a user opens a crafted file. The `complete`, `guitabtooltip` and `printheader` options are missing the `P_MLE` flag, allowing a modeline to be executed. Additionally, the `mapset()` function lacks a `check_secure()` call, allowing it to be abused from sandboxed expressions. Commit 9.2.0276 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-06 16:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command injection in glob.",
                            "    - debian/patches/CVE-2026-33412.patch: Add newline to SHELL_SPECIAL in",
                            "      src/os_unix.c.",
                            "    - CVE-2026-33412",
                            "  * SECURITY UPDATE: Security bypass in modeline.",
                            "    - debian/patches/CVE-2026-34982.patch: Disallow modeset while in secure",
                            "       mode in src/optiondefs.h.",
                            "    - CVE-2026-34982",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.27",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Kyle Kernick <kyle.kernick@canonical.com>",
                        "date": "Mon, 06 Apr 2026 14:13:36 -0600"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "vim-common",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.26",
                    "version": "2:8.2.3995-1ubuntu2.26"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.29",
                    "version": "2:8.2.3995-1ubuntu2.29"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-41411",
                        "url": "https://ubuntu.com/security/CVE-2026-41411",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0357, A command injection vulnerability exists in Vim's tag file processing. When resolving a tag, the filename field from the tags file is passed through wildcard expansion to resolve environment variables and wildcards. If the filename field contains backtick syntax (e.g., `command`), Vim executes the embedded command via the system shell with the full privileges of the running user.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-24 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-39881",
                        "url": "https://ubuntu.com/security/CVE-2026-39881",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0316, a command injection vulnerability in Vim's netbeans interface allows a malicious netbeans server to execute arbitrary Ex commands when Vim connects to it, via unsanitized strings in the defineAnnoType and specialKeys protocol messages. This vulnerability is fixed in 9.2.0316.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-08 21:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-33412",
                        "url": "https://ubuntu.com/security/CVE-2026-33412",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0202, a command injection vulnerability exists in Vim's glob() function on Unix-like systems. By including a newline character (\\n) in a pattern passed to glob(), an attacker may be able to execute arbitrary shell commands. This vulnerability depends on the user's 'shell' setting. This issue has been patched in version 9.2.0202.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-24 20:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-34982",
                        "url": "https://ubuntu.com/security/CVE-2026-34982",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0276, a modeline sandbox bypass in Vim allows arbitrary OS command execution when a user opens a crafted file. The `complete`, `guitabtooltip` and `printheader` options are missing the `P_MLE` flag, allowing a modeline to be executed. Additionally, the `mapset()` function lacks a `check_secure()` call, allowing it to be abused from sandboxed expressions. Commit 9.2.0276 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-06 16:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-41411",
                                "url": "https://ubuntu.com/security/CVE-2026-41411",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0357, A command injection vulnerability exists in Vim's tag file processing. When resolving a tag, the filename field from the tags file is passed through wildcard expansion to resolve environment variables and wildcards. If the filename field contains backtick syntax (e.g., `command`), Vim executes the embedded command via the system shell with the full privileges of the running user.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-24 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command injection via backtick expansion in tag files",
                            "    - debian/patches/CVE-2026-41411.patch: Disallow backticks before attempting",
                            "      to expand filenames",
                            "    - CVE-2026-41411",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.29",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Federico Quattrin <federico.quattrin@canonical.com>",
                        "date": "Wed, 06 May 2026 13:56:18 -0300"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-39881",
                                "url": "https://ubuntu.com/security/CVE-2026-39881",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0316, a command injection vulnerability in Vim's netbeans interface allows a malicious netbeans server to execute arbitrary Ex commands when Vim connects to it, via unsanitized strings in the defineAnnoType and specialKeys protocol messages. This vulnerability is fixed in 9.2.0316.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-08 21:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command Injection in netbeans",
                            "    - debian/patches/CVE-2026-39881.patch: Validate typename, fg, and bg",
                            "      before passing to coloncmd in src/netbeans.c",
                            "    - CVE-2026-39881",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.28",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Kyle Kernick <kyle.kernick@canonical.com>",
                        "date": "Wed, 22 Apr 2026 12:21:19 -0600"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-33412",
                                "url": "https://ubuntu.com/security/CVE-2026-33412",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0202, a command injection vulnerability exists in Vim's glob() function on Unix-like systems. By including a newline character (\\n) in a pattern passed to glob(), an attacker may be able to execute arbitrary shell commands. This vulnerability depends on the user's 'shell' setting. This issue has been patched in version 9.2.0202.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-24 20:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-34982",
                                "url": "https://ubuntu.com/security/CVE-2026-34982",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0276, a modeline sandbox bypass in Vim allows arbitrary OS command execution when a user opens a crafted file. The `complete`, `guitabtooltip` and `printheader` options are missing the `P_MLE` flag, allowing a modeline to be executed. Additionally, the `mapset()` function lacks a `check_secure()` call, allowing it to be abused from sandboxed expressions. Commit 9.2.0276 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-06 16:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command injection in glob.",
                            "    - debian/patches/CVE-2026-33412.patch: Add newline to SHELL_SPECIAL in",
                            "      src/os_unix.c.",
                            "    - CVE-2026-33412",
                            "  * SECURITY UPDATE: Security bypass in modeline.",
                            "    - debian/patches/CVE-2026-34982.patch: Disallow modeset while in secure",
                            "       mode in src/optiondefs.h.",
                            "    - CVE-2026-34982",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.27",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Kyle Kernick <kyle.kernick@canonical.com>",
                        "date": "Mon, 06 Apr 2026 14:13:36 -0600"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "vim-runtime",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.26",
                    "version": "2:8.2.3995-1ubuntu2.26"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.29",
                    "version": "2:8.2.3995-1ubuntu2.29"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-41411",
                        "url": "https://ubuntu.com/security/CVE-2026-41411",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0357, A command injection vulnerability exists in Vim's tag file processing. When resolving a tag, the filename field from the tags file is passed through wildcard expansion to resolve environment variables and wildcards. If the filename field contains backtick syntax (e.g., `command`), Vim executes the embedded command via the system shell with the full privileges of the running user.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-24 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-39881",
                        "url": "https://ubuntu.com/security/CVE-2026-39881",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0316, a command injection vulnerability in Vim's netbeans interface allows a malicious netbeans server to execute arbitrary Ex commands when Vim connects to it, via unsanitized strings in the defineAnnoType and specialKeys protocol messages. This vulnerability is fixed in 9.2.0316.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-08 21:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-33412",
                        "url": "https://ubuntu.com/security/CVE-2026-33412",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0202, a command injection vulnerability exists in Vim's glob() function on Unix-like systems. By including a newline character (\\n) in a pattern passed to glob(), an attacker may be able to execute arbitrary shell commands. This vulnerability depends on the user's 'shell' setting. This issue has been patched in version 9.2.0202.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-24 20:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-34982",
                        "url": "https://ubuntu.com/security/CVE-2026-34982",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0276, a modeline sandbox bypass in Vim allows arbitrary OS command execution when a user opens a crafted file. The `complete`, `guitabtooltip` and `printheader` options are missing the `P_MLE` flag, allowing a modeline to be executed. Additionally, the `mapset()` function lacks a `check_secure()` call, allowing it to be abused from sandboxed expressions. Commit 9.2.0276 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-06 16:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-41411",
                                "url": "https://ubuntu.com/security/CVE-2026-41411",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0357, A command injection vulnerability exists in Vim's tag file processing. When resolving a tag, the filename field from the tags file is passed through wildcard expansion to resolve environment variables and wildcards. If the filename field contains backtick syntax (e.g., `command`), Vim executes the embedded command via the system shell with the full privileges of the running user.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-24 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command injection via backtick expansion in tag files",
                            "    - debian/patches/CVE-2026-41411.patch: Disallow backticks before attempting",
                            "      to expand filenames",
                            "    - CVE-2026-41411",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.29",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Federico Quattrin <federico.quattrin@canonical.com>",
                        "date": "Wed, 06 May 2026 13:56:18 -0300"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-39881",
                                "url": "https://ubuntu.com/security/CVE-2026-39881",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0316, a command injection vulnerability in Vim's netbeans interface allows a malicious netbeans server to execute arbitrary Ex commands when Vim connects to it, via unsanitized strings in the defineAnnoType and specialKeys protocol messages. This vulnerability is fixed in 9.2.0316.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-08 21:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command Injection in netbeans",
                            "    - debian/patches/CVE-2026-39881.patch: Validate typename, fg, and bg",
                            "      before passing to coloncmd in src/netbeans.c",
                            "    - CVE-2026-39881",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.28",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Kyle Kernick <kyle.kernick@canonical.com>",
                        "date": "Wed, 22 Apr 2026 12:21:19 -0600"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-33412",
                                "url": "https://ubuntu.com/security/CVE-2026-33412",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0202, a command injection vulnerability exists in Vim's glob() function on Unix-like systems. By including a newline character (\\n) in a pattern passed to glob(), an attacker may be able to execute arbitrary shell commands. This vulnerability depends on the user's 'shell' setting. This issue has been patched in version 9.2.0202.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-24 20:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-34982",
                                "url": "https://ubuntu.com/security/CVE-2026-34982",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0276, a modeline sandbox bypass in Vim allows arbitrary OS command execution when a user opens a crafted file. The `complete`, `guitabtooltip` and `printheader` options are missing the `P_MLE` flag, allowing a modeline to be executed. Additionally, the `mapset()` function lacks a `check_secure()` call, allowing it to be abused from sandboxed expressions. Commit 9.2.0276 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-06 16:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command injection in glob.",
                            "    - debian/patches/CVE-2026-33412.patch: Add newline to SHELL_SPECIAL in",
                            "      src/os_unix.c.",
                            "    - CVE-2026-33412",
                            "  * SECURITY UPDATE: Security bypass in modeline.",
                            "    - debian/patches/CVE-2026-34982.patch: Disallow modeset while in secure",
                            "       mode in src/optiondefs.h.",
                            "    - CVE-2026-34982",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.27",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Kyle Kernick <kyle.kernick@canonical.com>",
                        "date": "Mon, 06 Apr 2026 14:13:36 -0600"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "vim-tiny",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.26",
                    "version": "2:8.2.3995-1ubuntu2.26"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.29",
                    "version": "2:8.2.3995-1ubuntu2.29"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-41411",
                        "url": "https://ubuntu.com/security/CVE-2026-41411",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0357, A command injection vulnerability exists in Vim's tag file processing. When resolving a tag, the filename field from the tags file is passed through wildcard expansion to resolve environment variables and wildcards. If the filename field contains backtick syntax (e.g., `command`), Vim executes the embedded command via the system shell with the full privileges of the running user.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-24 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-39881",
                        "url": "https://ubuntu.com/security/CVE-2026-39881",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0316, a command injection vulnerability in Vim's netbeans interface allows a malicious netbeans server to execute arbitrary Ex commands when Vim connects to it, via unsanitized strings in the defineAnnoType and specialKeys protocol messages. This vulnerability is fixed in 9.2.0316.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-08 21:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-33412",
                        "url": "https://ubuntu.com/security/CVE-2026-33412",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0202, a command injection vulnerability exists in Vim's glob() function on Unix-like systems. By including a newline character (\\n) in a pattern passed to glob(), an attacker may be able to execute arbitrary shell commands. This vulnerability depends on the user's 'shell' setting. This issue has been patched in version 9.2.0202.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-24 20:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-34982",
                        "url": "https://ubuntu.com/security/CVE-2026-34982",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0276, a modeline sandbox bypass in Vim allows arbitrary OS command execution when a user opens a crafted file. The `complete`, `guitabtooltip` and `printheader` options are missing the `P_MLE` flag, allowing a modeline to be executed. Additionally, the `mapset()` function lacks a `check_secure()` call, allowing it to be abused from sandboxed expressions. Commit 9.2.0276 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-06 16:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-41411",
                                "url": "https://ubuntu.com/security/CVE-2026-41411",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0357, A command injection vulnerability exists in Vim's tag file processing. When resolving a tag, the filename field from the tags file is passed through wildcard expansion to resolve environment variables and wildcards. If the filename field contains backtick syntax (e.g., `command`), Vim executes the embedded command via the system shell with the full privileges of the running user.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-24 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command injection via backtick expansion in tag files",
                            "    - debian/patches/CVE-2026-41411.patch: Disallow backticks before attempting",
                            "      to expand filenames",
                            "    - CVE-2026-41411",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.29",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Federico Quattrin <federico.quattrin@canonical.com>",
                        "date": "Wed, 06 May 2026 13:56:18 -0300"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-39881",
                                "url": "https://ubuntu.com/security/CVE-2026-39881",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0316, a command injection vulnerability in Vim's netbeans interface allows a malicious netbeans server to execute arbitrary Ex commands when Vim connects to it, via unsanitized strings in the defineAnnoType and specialKeys protocol messages. This vulnerability is fixed in 9.2.0316.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-08 21:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command Injection in netbeans",
                            "    - debian/patches/CVE-2026-39881.patch: Validate typename, fg, and bg",
                            "      before passing to coloncmd in src/netbeans.c",
                            "    - CVE-2026-39881",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.28",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Kyle Kernick <kyle.kernick@canonical.com>",
                        "date": "Wed, 22 Apr 2026 12:21:19 -0600"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-33412",
                                "url": "https://ubuntu.com/security/CVE-2026-33412",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0202, a command injection vulnerability exists in Vim's glob() function on Unix-like systems. By including a newline character (\\n) in a pattern passed to glob(), an attacker may be able to execute arbitrary shell commands. This vulnerability depends on the user's 'shell' setting. This issue has been patched in version 9.2.0202.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-24 20:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-34982",
                                "url": "https://ubuntu.com/security/CVE-2026-34982",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0276, a modeline sandbox bypass in Vim allows arbitrary OS command execution when a user opens a crafted file. The `complete`, `guitabtooltip` and `printheader` options are missing the `P_MLE` flag, allowing a modeline to be executed. Additionally, the `mapset()` function lacks a `check_secure()` call, allowing it to be abused from sandboxed expressions. Commit 9.2.0276 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-06 16:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command injection in glob.",
                            "    - debian/patches/CVE-2026-33412.patch: Add newline to SHELL_SPECIAL in",
                            "      src/os_unix.c.",
                            "    - CVE-2026-33412",
                            "  * SECURITY UPDATE: Security bypass in modeline.",
                            "    - debian/patches/CVE-2026-34982.patch: Disallow modeset while in secure",
                            "       mode in src/optiondefs.h.",
                            "    - CVE-2026-34982",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.27",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Kyle Kernick <kyle.kernick@canonical.com>",
                        "date": "Mon, 06 Apr 2026 14:13:36 -0600"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "xxd",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.26",
                    "version": "2:8.2.3995-1ubuntu2.26"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.29",
                    "version": "2:8.2.3995-1ubuntu2.29"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-41411",
                        "url": "https://ubuntu.com/security/CVE-2026-41411",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0357, A command injection vulnerability exists in Vim's tag file processing. When resolving a tag, the filename field from the tags file is passed through wildcard expansion to resolve environment variables and wildcards. If the filename field contains backtick syntax (e.g., `command`), Vim executes the embedded command via the system shell with the full privileges of the running user.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-24 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-39881",
                        "url": "https://ubuntu.com/security/CVE-2026-39881",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0316, a command injection vulnerability in Vim's netbeans interface allows a malicious netbeans server to execute arbitrary Ex commands when Vim connects to it, via unsanitized strings in the defineAnnoType and specialKeys protocol messages. This vulnerability is fixed in 9.2.0316.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-08 21:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-33412",
                        "url": "https://ubuntu.com/security/CVE-2026-33412",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0202, a command injection vulnerability exists in Vim's glob() function on Unix-like systems. By including a newline character (\\n) in a pattern passed to glob(), an attacker may be able to execute arbitrary shell commands. This vulnerability depends on the user's 'shell' setting. This issue has been patched in version 9.2.0202.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-24 20:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-34982",
                        "url": "https://ubuntu.com/security/CVE-2026-34982",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0276, a modeline sandbox bypass in Vim allows arbitrary OS command execution when a user opens a crafted file. The `complete`, `guitabtooltip` and `printheader` options are missing the `P_MLE` flag, allowing a modeline to be executed. Additionally, the `mapset()` function lacks a `check_secure()` call, allowing it to be abused from sandboxed expressions. Commit 9.2.0276 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-06 16:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-41411",
                                "url": "https://ubuntu.com/security/CVE-2026-41411",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0357, A command injection vulnerability exists in Vim's tag file processing. When resolving a tag, the filename field from the tags file is passed through wildcard expansion to resolve environment variables and wildcards. If the filename field contains backtick syntax (e.g., `command`), Vim executes the embedded command via the system shell with the full privileges of the running user.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-24 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command injection via backtick expansion in tag files",
                            "    - debian/patches/CVE-2026-41411.patch: Disallow backticks before attempting",
                            "      to expand filenames",
                            "    - CVE-2026-41411",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.29",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Federico Quattrin <federico.quattrin@canonical.com>",
                        "date": "Wed, 06 May 2026 13:56:18 -0300"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-39881",
                                "url": "https://ubuntu.com/security/CVE-2026-39881",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.2.0316, a command injection vulnerability in Vim's netbeans interface allows a malicious netbeans server to execute arbitrary Ex commands when Vim connects to it, via unsanitized strings in the defineAnnoType and specialKeys protocol messages. This vulnerability is fixed in 9.2.0316.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-08 21:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command Injection in netbeans",
                            "    - debian/patches/CVE-2026-39881.patch: Validate typename, fg, and bg",
                            "      before passing to coloncmd in src/netbeans.c",
                            "    - CVE-2026-39881",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.28",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Kyle Kernick <kyle.kernick@canonical.com>",
                        "date": "Wed, 22 Apr 2026 12:21:19 -0600"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-33412",
                                "url": "https://ubuntu.com/security/CVE-2026-33412",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0202, a command injection vulnerability exists in Vim's glob() function on Unix-like systems. By including a newline character (\\n) in a pattern passed to glob(), an attacker may be able to execute arbitrary shell commands. This vulnerability depends on the user's 'shell' setting. This issue has been patched in version 9.2.0202.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-24 20:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-34982",
                                "url": "https://ubuntu.com/security/CVE-2026-34982",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0276, a modeline sandbox bypass in Vim allows arbitrary OS command execution when a user opens a crafted file. The `complete`, `guitabtooltip` and `printheader` options are missing the `P_MLE` flag, allowing a modeline to be executed. Additionally, the `mapset()` function lacks a `check_secure()` call, allowing it to be abused from sandboxed expressions. Commit 9.2.0276 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-06 16:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Command injection in glob.",
                            "    - debian/patches/CVE-2026-33412.patch: Add newline to SHELL_SPECIAL in",
                            "      src/os_unix.c.",
                            "    - CVE-2026-33412",
                            "  * SECURITY UPDATE: Security bypass in modeline.",
                            "    - debian/patches/CVE-2026-34982.patch: Disallow modeset while in secure",
                            "       mode in src/optiondefs.h.",
                            "    - CVE-2026-34982",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.27",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Kyle Kernick <kyle.kernick@canonical.com>",
                        "date": "Mon, 06 Apr 2026 14:13:36 -0600"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            }
        ],
        "snap": [
            {
                "name": "snapd",
                "from_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": "26375"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": "26878"
                }
            },
            {
                "name": "lxd",
                "from_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": "38485"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": "38804"
                }
            }
        ]
    },
    "added": {
        "deb": [
            {
                "name": "linux-headers-6.8.0-117-generic",
                "from_version": {
                    "source_package_name": "linux-riscv-6.8",
                    "source_package_version": "6.8.0-106.106~22.04.1",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux-riscv-6.8",
                    "source_package_version": "6.8.0-117.117~22.04.1",
                    "version": "6.8.0-117.117~22.04.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-31419",
                        "url": "https://ubuntu.com/security/CVE-2026-31419",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: bonding: fix use-after-free in bond_xmit_broadcast()  bond_xmit_broadcast() reuses the original skb for the last slave (determined by bond_is_last_slave()) and clones it for others. Concurrent slave enslave/release can mutate the slave list during RCU-protected iteration, changing which slave is \"last\" mid-loop. This causes the original skb to be double-consumed (double-freed).  Replace the racy bond_is_last_slave() check with a simple index comparison (i + 1 == slaves_count) against the pre-snapshot slave count taken via READ_ONCE() before the loop.  This preserves the zero-copy optimization for the last slave while making the \"last\" determination stable against concurrent list mutations.  The UAF can trigger the following crash:  ================================================================== BUG: KASAN: slab-use-after-free in skb_clone Read of size 8 at addr ffff888100ef8d40 by task exploit/147  CPU: 1 UID: 0 PID: 147 Comm: exploit Not tainted 7.0.0-rc3+ #4 PREEMPTLAZY Call Trace:  <TASK>  dump_stack_lvl (lib/dump_stack.c:123)  print_report (mm/kasan/report.c:379 mm/kasan/report.c:482)  kasan_report (mm/kasan/report.c:597)  skb_clone (include/linux/skbuff.h:1724 include/linux/skbuff.h:1792 include/linux/skbuff.h:3396 net/core/skbuff.c:2108)  bond_xmit_broadcast (drivers/net/bonding/bond_main.c:5334)  bond_start_xmit (drivers/net/bonding/bond_main.c:5567 drivers/net/bonding/bond_main.c:5593)  dev_hard_start_xmit (include/linux/netdevice.h:5325 include/linux/netdevice.h:5334 net/core/dev.c:3871 net/core/dev.c:3887)  __dev_queue_xmit (include/linux/netdevice.h:3601 net/core/dev.c:4838)  ip6_finish_output2 (include/net/neighbour.h:540 include/net/neighbour.h:554 net/ipv6/ip6_output.c:136)  ip6_finish_output (net/ipv6/ip6_output.c:208 net/ipv6/ip6_output.c:219)  ip6_output (net/ipv6/ip6_output.c:250)  ip6_send_skb (net/ipv6/ip6_output.c:1985)  udp_v6_send_skb (net/ipv6/udp.c:1442)  udpv6_sendmsg (net/ipv6/udp.c:1733)  __sys_sendto (net/socket.c:730 net/socket.c:742 net/socket.c:2206)  __x64_sys_sendto (net/socket.c:2209)  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)  </TASK>  Allocated by task 147:  Freed by task 147:  The buggy address belongs to the object at ffff888100ef8c80  which belongs to the cache skbuff_head_cache of size 224 The buggy address is located 192 bytes inside of  freed 224-byte region [ffff888100ef8c80, ffff888100ef8d60)  Memory state around the buggy address:  ffff888100ef8c00: fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc  ffff888100ef8c80: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff888100ef8d00: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc                                                     ^  ffff888100ef8d80: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb  ffff888100ef8e00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31431",
                        "url": "https://ubuntu.com/security/CVE-2026-31431",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: algif_aead - Revert to operating out-of-place  This mostly reverts commit 72548b093ee3 except for the copying of the associated data.  There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings.  Get rid of all the complexity added for in-place operation and just copy the AD directly.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-04-22 09:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31533",
                        "url": "https://ubuntu.com/security/CVE-2026-31533",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption  The -EBUSY handling in tls_do_encryption(), introduced by commit 859054147318 (\"net: tls: handle backlogging of crypto requests\"), has a use-after-free due to double cleanup of encrypt_pending and the scatterlist entry.  When crypto_aead_encrypt() returns -EBUSY, the request is enqueued to the cryptd backlog and the async callback tls_encrypt_done() will be invoked upon completion. That callback unconditionally restores the scatterlist entry (sge->offset, sge->length) and decrements ctx->encrypt_pending. However, if tls_encrypt_async_wait() returns an error, the synchronous error path in tls_do_encryption() performs the same cleanup again, double-decrementing encrypt_pending and double-restoring the scatterlist.  The double-decrement corrupts the encrypt_pending sentinel (initialized to 1), making tls_encrypt_async_wait() permanently skip the wait for pending async callbacks. A subsequent sendmsg can then free the tls_rec via bpf_exec_tx_verdict() while a cryptd callback is still pending, resulting in a use-after-free when the callback fires on the freed record.  Fix this by skipping the synchronous cleanup when the -EBUSY async wait returns an error, since the callback has already handled encrypt_pending and sge restoration.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-23 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31504",
                        "url": "https://ubuntu.com/security/CVE-2026-31504",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix fanout UAF in packet_release() via NETDEV_UP race  `packet_release()` has a race window where `NETDEV_UP` can re-register a socket into a fanout group's `arr[]` array. The re-registration is not cleaned up by `fanout_release()`, leaving a dangling pointer in the fanout array. `packet_release()` does NOT zero `po->num` in its `bind_lock` section. After releasing `bind_lock`, `po->num` is still non-zero and `po->ifindex` still matches the bound device. A concurrent `packet_notifier(NETDEV_UP)` that already found the socket in `sklist` can re-register the hook. For fanout sockets, this re-registration calls `__fanout_link(sk, po)` which adds the socket back into `f->arr[]` and increments `f->num_members`, but does NOT increment `f->sk_ref`.  The fix sets `po->num` to zero in `packet_release` while `bind_lock` is held to prevent NETDEV_UP from linking, preventing the race window.  This bug was found following an additional audit with Claude Code based on CVE-2025-38617.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-22 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23214",
                        "url": "https://ubuntu.com/security/CVE-2026-23214",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: reject new transactions if the fs is fully read-only  [BUG] There is a bug report where a heavily fuzzed fs is mounted with all rescue mount options, which leads to the following warnings during unmount:    BTRFS: Transaction aborted (error -22)   Modules linked in:   CPU: 0 UID: 0 PID: 9758 Comm: repro.out Not tainted   6.19.0-rc5-00002-gb71e635feefc #7 PREEMPT(full)   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014   RIP: 0010:find_free_extent_update_loop fs/btrfs/extent-tree.c:4208 [inline]   RIP: 0010:find_free_extent+0x52f0/0x5d20 fs/btrfs/extent-tree.c:4611   Call Trace:    <TASK>    btrfs_reserve_extent+0x2cd/0x790 fs/btrfs/extent-tree.c:4705    btrfs_alloc_tree_block+0x1e1/0x10e0 fs/btrfs/extent-tree.c:5157    btrfs_force_cow_block+0x578/0x2410 fs/btrfs/ctree.c:517    btrfs_cow_block+0x3c4/0xa80 fs/btrfs/ctree.c:708    btrfs_search_slot+0xcad/0x2b50 fs/btrfs/ctree.c:2130    btrfs_truncate_inode_items+0x45d/0x2350 fs/btrfs/inode-item.c:499    btrfs_evict_inode+0x923/0xe70 fs/btrfs/inode.c:5628    evict+0x5f4/0xae0 fs/inode.c:837    __dentry_kill+0x209/0x660 fs/dcache.c:670    finish_dput+0xc9/0x480 fs/dcache.c:879    shrink_dcache_for_umount+0xa0/0x170 fs/dcache.c:1661    generic_shutdown_super+0x67/0x2c0 fs/super.c:621    kill_anon_super+0x3b/0x70 fs/super.c:1289    btrfs_kill_super+0x41/0x50 fs/btrfs/super.c:2127    deactivate_locked_super+0xbc/0x130 fs/super.c:474    cleanup_mnt+0x425/0x4c0 fs/namespace.c:1318    task_work_run+0x1d4/0x260 kernel/task_work.c:233    exit_task_work include/linux/task_work.h:40 [inline]    do_exit+0x694/0x22f0 kernel/exit.c:971    do_group_exit+0x21c/0x2d0 kernel/exit.c:1112    __do_sys_exit_group kernel/exit.c:1123 [inline]    __se_sys_exit_group kernel/exit.c:1121 [inline]    __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1121    x64_sys_call+0x2210/0x2210 arch/x86/include/generated/asm/syscalls_64.h:232    do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]    do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94    entry_SYSCALL_64_after_hwframe+0x77/0x7f   RIP: 0033:0x44f639   Code: Unable to access opcode bytes at 0x44f60f.   RSP: 002b:00007ffc15c4e088 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7   RAX: ffffffffffffffda RBX: 00000000004c32f0 RCX: 000000000044f639   RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001   RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 0000000000000000   R10: 0000000000000000 R11: 0000000000000246 R12: 00000000004c32f0   R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001    </TASK>  Since rescue mount options will mark the full fs read-only, there should be no new transaction triggered.  But during unmount we will evict all inodes, which can trigger a new transaction, and triggers warnings on a heavily corrupted fs.  [CAUSE] Btrfs allows new transaction even on a read-only fs, this is to allow log replay happen even on read-only mounts, just like what ext4/xfs do.  However with rescue mount options, the fs is fully read-only and cannot be remounted read-write, thus in that case we should also reject any new transactions.  [FIX] If we find the fs has rescue mount options, we should treat the fs as error, so that no new transaction can be started.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23213",
                        "url": "https://ubuntu.com/security/CVE-2026-23213",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/pm: Disable MMIO access during SMU Mode 1 reset  During Mode 1 reset, the ASIC undergoes a reset cycle and becomes temporarily inaccessible via PCIe. Any attempt to access MMIO registers during this window (e.g., from interrupt handlers or other driver threads) can result in uncompleted PCIe transactions, leading to NMI panics or system hangs.  To prevent this, set the `no_hw_access` flag to true immediately after triggering the reset. This signals other driver components to skip register accesses while the device is offline.  A memory barrier `smp_mb()` is added to ensure the flag update is globally visible to all cores before the driver enters the sleep/wait state.  (cherry picked from commit 7edb503fe4b6d67f47d8bb0dfafb8e699bb0f8a4)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71225",
                        "url": "https://ubuntu.com/security/CVE-2025-71225",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: suspend array while updating raid_disks via sysfs  In raid1_reshape(), freeze_array() is called before modifying the r1bio memory pool (conf->r1bio_pool) and conf->raid_disks, and unfreeze_array() is called after the update is completed.  However, freeze_array() only waits until nr_sync_pending and (nr_pending - nr_queued) of all buckets reaches zero. When an I/O error occurs, nr_queued is increased and the corresponding r1bio is queued to either retry_list or bio_end_io_list. As a result, freeze_array() may unblock before these r1bios are released.  This can lead to a situation where conf->raid_disks and the mempool have already been updated while queued r1bios, allocated with the old raid_disks value, are later released. Consequently, free_r1bio() may access memory out of bounds in put_all_bios() and release r1bios of the wrong size to the new mempool, potentially causing issues with the mempool as well.  Since only normal I/O might increase nr_queued while an I/O error occurs, suspending the array avoids this issue.  Note: Updating raid_disks via ioctl SET_ARRAY_INFO already suspends the array. Therefore, we suspend the array when updating raid_disks via sysfs to avoid this issue too.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68823",
                        "url": "https://ubuntu.com/security/CVE-2025-68823",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ublk: fix deadlock when reading partition table  When one process(such as udev) opens ublk block device (e.g., to read the partition table via bdev_open()), a deadlock[1] can occur:  1. bdev_open() grabs disk->open_mutex 2. The process issues read I/O to ublk backend to read partition table 3. In __ublk_complete_rq(), blk_update_request() or blk_mq_end_request()    runs bio->bi_end_io() callbacks 4. If this triggers fput() on file descriptor of ublk block device, the    work may be deferred to current task's task work (see fput() implementation) 5. This eventually calls blkdev_release() from the same context 6. blkdev_release() tries to grab disk->open_mutex again 7. Deadlock: same task waiting for a mutex it already holds  The fix is to run blk_update_request() and blk_mq_end_request() with bottom halves disabled. This forces blkdev_release() to run in kernel work-queue context instead of current task work context, and allows ublk server to make forward progress, and avoids the deadlock.  [axboe: rewrite comment in ublk]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23191",
                        "url": "https://ubuntu.com/security/CVE-2026-23191",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: aloop: Fix racy access at PCM trigger  The PCM trigger callback of aloop driver tries to check the PCM state and stop the stream of the tied substream in the corresponding cable. Since both check and stop operations are performed outside the cable lock, this may result in UAF when a program attempts to trigger frequently while opening/closing the tied stream, as spotted by fuzzers.  For addressing the UAF, this patch changes two things: - It covers the most of code in loopback_check_format() with   cable->lock spinlock, and add the proper NULL checks.  This avoids   already some racy accesses. - In addition, now we try to check the state of the capture PCM stream   that may be stopped in this function, which was the major pain point   leading to UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23215",
                        "url": "https://ubuntu.com/security/CVE-2026-23215",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/vmware: Fix hypercall clobbers  Fedora QA reported the following panic:    BUG: unable to handle page fault for address: 0000000040003e54   #PF: supervisor write access in kernel mode   #PF: error_code(0x0002) - not-present page   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20251119-3.fc43 11/19/2025   RIP: 0010:vmware_hypercall4.constprop.0+0x52/0x90   ..   Call Trace:    vmmouse_report_events+0x13e/0x1b0    psmouse_handle_byte+0x15/0x60    ps2_interrupt+0x8a/0xd0    ...  because the QEMU VMware mouse emulation is buggy, and clears the top 32 bits of %rdi that the kernel kept a pointer in.  The QEMU vmmouse driver saves and restores the register state in a \"uint32_t data[6];\" and as a result restores the state with the high bits all cleared.  RDI originally contained the value of a valid kernel stack address (0xff5eeb3240003e54).  After the vmware hypercall it now contains 0x40003e54, and we get a page fault as a result when it is dereferenced.  The proper fix would be in QEMU, but this works around the issue in the kernel to keep old setups working, when old kernels had not happened to keep any state in %rdi over the hypercall.  In theory this same issue exists for all the hypercalls in the vmmouse driver; in practice it has only been seen with vmware_hypercall3() and vmware_hypercall4().  For now, just mark RDI/RSI as clobbered for those two calls.  This should have a minimal effect on code generation overall as it should be rare for the compiler to want to make RDI/RSI live across hypercalls.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23182",
                        "url": "https://ubuntu.com/security/CVE-2026-23182",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra: Fix a memory leak in tegra_slink_probe()  In tegra_slink_probe(), when platform_get_irq() fails, it directly returns from the function with an error code, which causes a memory leak.  Replace it with a goto label to ensure proper cleanup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23190",
                        "url": "https://ubuntu.com/security/CVE-2026-23190",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: amd: fix memory leak in acp3x pdm dma ops",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23254",
                        "url": "https://ubuntu.com/security/CVE-2026-23254",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: gro: fix outer network offset  The udp GRO complete stage assumes that all the packets inserted the RX have the `encapsulation` flag zeroed. Such assumption is not true, as a few H/W NICs can set such flag when H/W offloading the checksum for an UDP encapsulated traffic, the tun driver can inject GSO packets with UDP encapsulation and the problematic layout can also be created via a veth based setup.  Due to the above, in the problematic scenarios, udp4_gro_complete() uses the wrong network offset (inner instead of outer) to compute the outer UDP header pseudo checksum, leading to csum validation errors later on in packet processing.  Address the issue always clearing the encapsulation flag at GRO completion time. Such flag will be set again as needed for encapsulated packets by udp_gro_complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23180",
                        "url": "https://ubuntu.com/security/CVE-2026-23180",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: add bounds check for if_id in IRQ handler  The IRQ handler extracts if_id from the upper 16 bits of the hardware status register and uses it to index into ethsw->ports[] without validation. Since if_id can be any 16-bit value (0-65535) but the ports array is only allocated with sw_attr.num_ifs elements, this can lead to an out-of-bounds read potentially.  Add a bounds check before accessing the array, consistent with the existing validation in dpaa2_switch_rx().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23256",
                        "url": "https://ubuntu.com/security/CVE-2026-23256",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in VF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Compile tested only. Issue found using code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23257",
                        "url": "https://ubuntu.com/security/CVE-2026-23257",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in PF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Also, decrement i in the devlink_alloc failure path to point to the last successfully allocated index.  Compile tested only. Issue found using code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23258",
                        "url": "https://ubuntu.com/security/CVE-2026-23258",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Initialize netdev pointer before queue setup  In setup_nic_devices(), the netdev is allocated using alloc_etherdev_mq(). However, the pointer to this structure is stored in oct->props[i].netdev only after the calls to netif_set_real_num_rx_queues() and netif_set_real_num_tx_queues().  If either of these functions fails, setup_nic_devices() returns an error without freeing the allocated netdev. Since oct->props[i].netdev is still NULL at this point, the cleanup function liquidio_destroy_nic_device() will fail to find and free the netdev, resulting in a memory leak.  Fix this by initializing oct->props[i].netdev before calling the queue setup functions. This ensures that the netdev is properly accessible for cleanup in case of errors.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23206",
                        "url": "https://ubuntu.com/security/CVE-2026-23206",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: prevent ZERO_SIZE_PTR dereference when num_ifs is zero  The driver allocates arrays for ports, FDBs, and filter blocks using kcalloc() with ethsw->sw_attr.num_ifs as the element count. When the device reports zero interfaces (either due to hardware configuration or firmware issues), kcalloc(0, ...) returns ZERO_SIZE_PTR (0x10) instead of NULL.  Later in dpaa2_switch_probe(), the NAPI initialization unconditionally accesses ethsw->ports[0]->netdev, which attempts to dereference ZERO_SIZE_PTR (address 0x10), resulting in a kernel panic.  Add a check to ensure num_ifs is greater than zero after retrieving device attributes. This prevents the zero-sized allocations and subsequent invalid pointer dereference.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23204",
                        "url": "https://ubuntu.com/security/CVE-2026-23204",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: cls_u32: use skb_header_pointer_careful()  skb_header_pointer() does not fully validate negative @offset values.  Use skb_header_pointer_careful() instead.  GangMin Kim provided a report and a repro fooling u32_classify():  BUG: KASAN: slab-out-of-bounds in u32_classify+0x1180/0x11b0 net/sched/cls_u32.c:221",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23205",
                        "url": "https://ubuntu.com/security/CVE-2026-23205",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/client: fix memory leak in smb2_open_file()  Reproducer:    1. server: directories are exported read-only   2. client: mount -t cifs //${server_ip}/export /mnt   3. client: dd if=/dev/zero of=/mnt/file bs=512 count=1000 oflag=direct   4. client: umount /mnt   5. client: sleep 1   6. client: modprobe -r cifs  The error message is as follows:   =============================================================================   BUG cifs_small_rq (Not tainted): Objects remaining on __kmem_cache_shutdown()  -----------------------------------------------------------------------------    Object 0x00000000d47521be @offset=14336   ...   WARNING: mm/slub.c:1251 at __kmem_cache_shutdown+0x34e/0x440, CPU#0: modprobe/1577   ...   Call Trace:    <TASK>    kmem_cache_destroy+0x94/0x190    cifs_destroy_request_bufs+0x3e/0x50 [cifs]    cleanup_module+0x4e/0x540 [cifs]    __se_sys_delete_module+0x278/0x400    __x64_sys_delete_module+0x5f/0x70    x64_sys_call+0x2299/0x2ff0    do_syscall_64+0x89/0x350    entry_SYSCALL_64_after_hwframe+0x76/0x7e   ...   kmem_cache_destroy cifs_small_rq: Slab cache still has objects when called from cifs_destroy_request_bufs+0x3e/0x50 [cifs]   WARNING: mm/slab_common.c:532 at kmem_cache_destroy+0x16b/0x190, CPU#0: modprobe/1577",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23176",
                        "url": "https://ubuntu.com/security/CVE-2026-23176",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: toshiba_haps: Fix memory leaks in add/remove routines  toshiba_haps_add() leaks the haps object allocated by it if it returns an error after allocating that object successfully.  toshiba_haps_remove() does not free the object pointed to by toshiba_haps before clearing that pointer, so it becomes unreachable allocated memory.  Address these memory leaks by using devm_kzalloc() for allocating the memory in question.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23216",
                        "url": "https://ubuntu.com/security/CVE-2026-23216",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_conn_usage_count()  In iscsit_dec_conn_usage_count(), the function calls complete() while holding the conn->conn_usage_lock. As soon as complete() is invoked, the waiter (such as iscsit_close_connection()) may wake up and proceed to free the iscsit_conn structure.  If the waiter frees the memory before the current thread reaches spin_unlock_bh(), it results in a KASAN slab-use-after-free as the function attempts to release a lock within the already-freed connection structure.  Fix this by releasing the spinlock before calling complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23193",
                        "url": "https://ubuntu.com/security/CVE-2026-23193",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_session_usage_count()  In iscsit_dec_session_usage_count(), the function calls complete() while holding the sess->session_usage_lock. Similar to the connection usage count logic, the waiter signaled by complete() (e.g., in the session release path) may wake up and free the iscsit_session structure immediately.  This creates a race condition where the current thread may attempt to execute spin_unlock_bh() on a session structure that has already been deallocated, resulting in a KASAN slab-use-after-free.  To resolve this, release the session_usage_lock before calling complete() to ensure all dereferences of the sess pointer are finished before the waiter is allowed to proceed with deallocation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23260",
                        "url": "https://ubuntu.com/security/CVE-2026-23260",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: maple: free entry on mas_store_gfp() failure  regcache_maple_write() allocates a new block ('entry') to merge adjacent ranges and then stores it with mas_store_gfp(). When mas_store_gfp() fails, the new 'entry' remains allocated and is never freed, leaking memory.  Free 'entry' on the failure path; on success continue freeing the replaced neighbor blocks ('lower', 'upper').",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23179",
                        "url": "https://ubuntu.com/security/CVE-2026-23179",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: fixup hang in nvmet_tcp_listen_data_ready()  When the socket is closed while in TCP_LISTEN a callback is run to flush all outstanding packets, which in turns calls nvmet_tcp_listen_data_ready() with the sk_callback_lock held. So we need to check if we are in TCP_LISTEN before attempting to get the sk_callback_lock() to avoid a deadlock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23261",
                        "url": "https://ubuntu.com/security/CVE-2026-23261",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: release admin tagset if init fails  nvme_fabrics creates an NVMe/FC controller in following path:      nvmf_dev_write()       -> nvmf_create_ctrl()         -> nvme_fc_create_ctrl()           -> nvme_fc_init_ctrl()  nvme_fc_init_ctrl() allocates the admin blk-mq resources right after nvme_add_ctrl() succeeds.  If any of the subsequent steps fail (changing the controller state, scheduling connect work, etc.), we jump to the fail_ctrl path, which tears down the controller references but never frees the admin queue/tag set.  The leaked blk-mq allocations match the kmemleak report seen during blktests nvme/fc.  Check ctrl->ctrl.admin_tagset in the fail_ctrl path and call nvme_remove_admin_tag_set() when it is set so that all admin queue allocations are reclaimed whenever controller setup aborts.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23178",
                        "url": "https://ubuntu.com/security/CVE-2026-23178",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()  `i2c_hid_xfer` is used to read `recv_len + sizeof(__le16)` bytes of data into `ihid->rawbuf`.  The former can come from the userspace in the hidraw driver and is only bounded by HID_MAX_BUFFER_SIZE(16384) by default (unless we also set `max_buffer_size` field of `struct hid_ll_driver` which we do not).  The latter has size determined at runtime by the maximum size of different report types you could receive on any particular device and can be a much smaller value.  Fix this by truncating `recv_len` to `ihid->bufsize - sizeof(__le16)`.  The impact is low since access to hidraw devices requires root.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71268",
                        "url": "https://ubuntu.com/security/CVE-2025-71268",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix reservation leak in some error paths when inserting inline extent  If we fail to allocate a path or join a transaction, we return from __cow_file_range_inline() without freeing the reserved qgroup data, resulting in a leak. Fix this by ensuring we call btrfs_qgroup_free_data() in such cases.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71270",
                        "url": "https://ubuntu.com/security/CVE-2025-71270",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: Enable exception fixup for specific ADE subcode  This patch allows the LoongArch BPF JIT to handle recoverable memory access errors generated by BPF_PROBE_MEM* instructions.  When a BPF program performs memory access operations, the instructions it executes may trigger ADEM exceptions. The kernel’s built-in BPF exception table mechanism (EX_TYPE_BPF) will generate corresponding exception fixup entries in the JIT compilation phase; however, the architecture-specific trap handling function needs to proactively call the common fixup routine to achieve exception recovery.  do_ade(): fix EX_TYPE_BPF memory access exceptions for BPF programs, ensure safe execution.  Relevant test cases: illegal address access tests in module_attach and subprogs_extable of selftests/bpf.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71220",
                        "url": "https://ubuntu.com/security/CVE-2025-71220",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/server: call ksmbd_session_rpc_close() on error path in create_smb2_pipe()  When ksmbd_iov_pin_rsp() fails, we should call ksmbd_session_rpc_close().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71222",
                        "url": "https://ubuntu.com/security/CVE-2025-71222",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: wlcore: ensure skb headroom before skb_push  This avoids occasional skb_under_panic Oops from wl1271_tx_work. In this case, headroom is less than needed (typically 110 - 94 = 16 bytes).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71224",
                        "url": "https://ubuntu.com/security/CVE-2025-71224",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: ocb: skip rx_no_sta when interface is not joined  ieee80211_ocb_rx_no_sta() assumes a valid channel context, which is only present after JOIN_OCB.  RX may run before JOIN_OCB is executed, in which case the OCB interface is not operational. Skip RX peer handling when the interface is not joined to avoid warnings in the RX path.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23262",
                        "url": "https://ubuntu.com/security/CVE-2026-23262",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gve: Fix stats report corruption on queue count change  The driver and the NIC share a region in memory for stats reporting. The NIC calculates its offset into this region based on the total size of the stats region and the size of the NIC's stats.  When the number of queues is changed, the driver's stats region is resized. If the queue count is increased, the NIC can write past the end of the allocated stats region, causing memory corruption. If the queue count is decreased, there is a gap between the driver and NIC stats, leading to incorrect stats reporting.  This change fixes the issue by allocating stats region with maximum size, and the offset calculation for NIC stats is changed to match with the calculation of the NIC.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38201",
                        "url": "https://ubuntu.com/security/CVE-2025-38201",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX  Otherwise, it is possible to hit WARN_ON_ONCE in __kvmalloc_node_noprof() when resizing hashtable because __GFP_NOWARN is unset.  Similar to:    b541ba7d1f5a (\"netfilter: conntrack: clamp maximum hashtable size to INT_MAX\")",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-07-04 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23198",
                        "url": "https://ubuntu.com/security/CVE-2026-23198",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Don't clobber irqfd routing type when deassigning irqfd  When deassigning a KVM_IRQFD, don't clobber the irqfd's copy of the IRQ's routing entry as doing so breaks kvm_arch_irq_bypass_del_producer() on x86 and arm64, which explicitly look for KVM_IRQ_ROUTING_MSI.  Instead, to handle a concurrent routing update, verify that the irqfd is still active before consuming the routing information.  As evidenced by the x86 and arm64 bugs, and another bug in kvm_arch_update_irqfd_routing() (see below), clobbering the entry type without notifying arch code is surprising and error prone.  As a bonus, checking that the irqfd is active provides a convenient location for documenting _why_ KVM must not consume the routing entry for an irqfd that is in the process of being deassigned: once the irqfd is deleted from the list (which happens *before* the eventfd is detached), it will no longer receive updates via kvm_irq_routing_update(), and so KVM could deliver an event using stale routing information (relative to KVM_SET_GSI_ROUTING returning to userspace).  As an even better bonus, explicitly checking for the irqfd being active fixes a similar bug to the one the clobbering is trying to prevent: if an irqfd is deactivated, and then its routing is changed, kvm_irq_routing_update() won't invoke kvm_arch_update_irqfd_routing() (because the irqfd isn't in the list).  And so if the irqfd is in bypass mode, IRQs will continue to be posted using the old routing information.  As for kvm_arch_irq_bypass_del_producer(), clobbering the routing type results in KVM incorrectly keeping the IRQ in bypass mode, which is especially problematic on AMD as KVM tracks IRQs that are being posted to a vCPU in a list whose lifetime is tied to the irqfd.  Without the help of KASAN to detect use-after-free, the most common sympton on AMD is a NULL pointer deref in amd_iommu_update_ga() due to the memory for irqfd structure being re-allocated and zeroed, resulting in irqfd->irq_bypass_data being NULL when read by avic_update_iommu_vcpu_affinity():    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 40cf2b9067 P4D 40cf2b9067 PUD 408362a067 PMD 0   Oops: Oops: 0000 [#1] SMP   CPU: 6 UID: 0 PID: 40383 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--5dddc257e6b2-irqfd #31 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:amd_iommu_update_ga+0x19/0xe0   Call Trace:    <TASK>    avic_update_iommu_vcpu_affinity+0x3d/0x90 [kvm_amd]    __avic_vcpu_load+0xf4/0x130 [kvm_amd]    kvm_arch_vcpu_load+0x89/0x210 [kvm]    vcpu_load+0x30/0x40 [kvm]    kvm_arch_vcpu_ioctl_run+0x45/0x620 [kvm]    kvm_vcpu_ioctl+0x571/0x6a0 [kvm]    __se_sys_ioctl+0x6d/0xb0    do_syscall_64+0x6f/0x9d0    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x46893b     </TASK>   ---[ end trace 0000000000000000 ]---  If AVIC is inhibited when the irfd is deassigned, the bug will manifest as list corruption, e.g. on the next irqfd assignment.    list_add corruption. next->prev should be prev (ffff8d474d5cd588),                        but was 0000000000000000. (next=ffff8d8658f86530).   ------------[ cut here ]------------   kernel BUG at lib/list_debug.c:31!   Oops: invalid opcode: 0000 [#1] SMP   CPU: 128 UID: 0 PID: 80818 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--f19dc4d680ba-irqfd #28 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:__list_add_valid_or_report+0x97/0xc0   Call Trace:    <TASK>    avic_pi_update_irte+0x28e/0x2b0 [kvm_amd]    kvm_pi_update_irte+0xbf/0x190 [kvm]    kvm_arch_irq_bypass_add_producer+0x72/0x90 [kvm]    irq_bypass_register_consumer+0xcd/0x170 [irqbypa ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23264",
                        "url": "https://ubuntu.com/security/CVE-2026-23264",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Revert \"drm/amd: Check if ASPM is enabled from PCIe subsystem\"  This reverts commit 7294863a6f01248d72b61d38478978d638641bee.  This commit was erroneously applied again after commit 0ab5d711ec74 (\"drm/amd: Refactor `amdgpu_aspm` to be evaluated per device\") removed it, leading to very hard to debug crashes, when used with a system with two AMD GPUs of which only one supports ASPM.  (cherry picked from commit 97a9689300eb2b393ba5efc17c8e5db835917080)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23187",
                        "url": "https://ubuntu.com/security/CVE-2026-23187",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: fix out-of-range access of bc->domains  Fix out-of-range access of bc->domains in imx8m_blk_ctrl_remove().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23148",
                        "url": "https://ubuntu.com/security/CVE-2026-23148",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference  There is a race condition in nvmet_bio_done() that can cause a NULL pointer dereference in blk_cgroup_bio_start():  1. nvmet_bio_done() is called when a bio completes 2. nvmet_req_complete() is called, which invokes req->ops->queue_response(req) 3. The queue_response callback can re-queue and re-submit the same request 4. The re-submission reuses the same inline_bio from nvmet_req 5. Meanwhile, nvmet_req_bio_put() (called after nvmet_req_complete)    invokes bio_uninit() for inline_bio, which sets bio->bi_blkg to NULL 6. The re-submitted bio enters submit_bio_noacct_nocheck() 7. blk_cgroup_bio_start() dereferences bio->bi_blkg, causing a crash:    BUG: kernel NULL pointer dereference, address: 0000000000000028   #PF: supervisor read access in kernel mode   RIP: 0010:blk_cgroup_bio_start+0x10/0xd0   Call Trace:    submit_bio_noacct_nocheck+0x44/0x250    nvmet_bdev_execute_rw+0x254/0x370 [nvmet]    process_one_work+0x193/0x3c0    worker_thread+0x281/0x3a0  Fix this by reordering nvmet_bio_done() to call nvmet_req_bio_put() BEFORE nvmet_req_complete(). This ensures the bio is cleaned up before the request can be re-submitted, preventing the race condition.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23166",
                        "url": "https://ubuntu.com/security/CVE-2026-23166",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ice: Fix NULL pointer dereference in ice_vsi_set_napi_queues  Add NULL pointer checks in ice_vsi_set_napi_queues() to prevent crashes during resume from suspend when rings[q_idx]->q_vector is NULL.  Tested adaptor: 60:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller E810-XXV for SFP [8086:159b] (rev 02)         Subsystem: Intel Corporation Ethernet Network Adapter E810-XXV-2 [8086:4003]  SR-IOV state: both disabled and enabled can reproduce this issue.  kernel version: v6.18  Reproduce steps: Boot up and execute suspend like systemctl suspend or rtcwake.  Log: <1>[  231.443607] BUG: kernel NULL pointer dereference, address: 0000000000000040 <1>[  231.444052] #PF: supervisor read access in kernel mode <1>[  231.444484] #PF: error_code(0x0000) - not-present page <6>[  231.444913] PGD 0 P4D 0 <4>[  231.445342] Oops: Oops: 0000 [#1] SMP NOPTI <4>[  231.446635] RIP: 0010:netif_queue_set_napi+0xa/0x170 <4>[  231.447067] Code: 31 f6 31 ff c3 cc cc cc cc 0f 1f 80 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 48 85 c9 74 0b <48> 83 79 30 00 0f 84 39 01 00 00 55 41 89 d1 49 89 f8 89 f2 48 89 <4>[  231.447513] RSP: 0018:ffffcc780fc078c0 EFLAGS: 00010202 <4>[  231.447961] RAX: ffff8b848ca30400 RBX: ffff8b848caf2028 RCX: 0000000000000010 <4>[  231.448443] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8b848dbd4000 <4>[  231.448896] RBP: ffffcc780fc078e8 R08: 0000000000000000 R09: 0000000000000000 <4>[  231.449345] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001 <4>[  231.449817] R13: ffff8b848dbd4000 R14: ffff8b84833390c8 R15: 0000000000000000 <4>[  231.450265] FS:  00007c7b29e9d740(0000) GS:ffff8b8c068e2000(0000) knlGS:0000000000000000 <4>[  231.450715] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 <4>[  231.451179] CR2: 0000000000000040 CR3: 000000030626f004 CR4: 0000000000f72ef0 <4>[  231.451629] PKRU: 55555554 <4>[  231.452076] Call Trace: <4>[  231.452549]  <TASK> <4>[  231.452996]  ? ice_vsi_set_napi_queues+0x4d/0x110 [ice] <4>[  231.453482]  ice_resume+0xfd/0x220 [ice] <4>[  231.453977]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.454425]  pci_pm_resume+0x8c/0x140 <4>[  231.454872]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.455347]  dpm_run_callback+0x5f/0x160 <4>[  231.455796]  ? dpm_wait_for_superior+0x107/0x170 <4>[  231.456244]  device_resume+0x177/0x270 <4>[  231.456708]  dpm_resume+0x209/0x2f0 <4>[  231.457151]  dpm_resume_end+0x15/0x30 <4>[  231.457596]  suspend_devices_and_enter+0x1da/0x2b0 <4>[  231.458054]  enter_state+0x10e/0x570  Add defensive checks for both the ring pointer and its q_vector before dereferencing, allowing the system to resume successfully even when q_vectors are unmapped.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23151",
                        "url": "https://ubuntu.com/security/CVE-2026-23151",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: MGMT: Fix memory leak in set_ssp_complete  Fix memory leak in set_ssp_complete() where mgmt_pending_cmd structures are not freed after being removed from the pending list.  Commit 302a1f674c00 (\"Bluetooth: MGMT: Fix possible UAFs\") replaced mgmt_pending_foreach() calls with individual command handling but missed adding mgmt_pending_free() calls in both error and success paths of set_ssp_complete(). Other completion functions like set_le_complete() were fixed correctly in the same commit.  This causes a memory leak of the mgmt_pending_cmd structure and its associated parameter data for each SSP command that completes.  Add the missing mgmt_pending_free(cmd) calls in both code paths to fix the memory leak. Also fix the same issue in set_advertising_complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23163",
                        "url": "https://ubuntu.com/security/CVE-2026-23163",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: fix NULL pointer dereference in amdgpu_gmc_filter_faults_remove  On APUs such as Raven and Renoir (GC 9.1.0, 9.2.2, 9.3.0), the ih1 and ih2 interrupt ring buffers are not initialized. This is by design, as these secondary IH rings are only available on discrete GPUs. See vega10_ih_sw_init() which explicitly skips ih1/ih2 initialization when AMD_IS_APU is set.  However, amdgpu_gmc_filter_faults_remove() unconditionally uses ih1 to get the timestamp of the last interrupt entry. When retry faults are enabled on APUs (noretry=0), this function is called from the SVM page fault recovery path, resulting in a NULL pointer dereference when amdgpu_ih_decode_iv_ts_helper() attempts to access ih->ring[].  The crash manifests as:    BUG: kernel NULL pointer dereference, address: 0000000000000004   RIP: 0010:amdgpu_ih_decode_iv_ts_helper+0x22/0x40 [amdgpu]   Call Trace:    amdgpu_gmc_filter_faults_remove+0x60/0x130 [amdgpu]    svm_range_restore_pages+0xae5/0x11c0 [amdgpu]    amdgpu_vm_handle_fault+0xc8/0x340 [amdgpu]    gmc_v9_0_process_interrupt+0x191/0x220 [amdgpu]    amdgpu_irq_dispatch+0xed/0x2c0 [amdgpu]    amdgpu_ih_process+0x84/0x100 [amdgpu]  This issue was exposed by commit 1446226d32a4 (\"drm/amdgpu: Remove GC HW IP 9.3.0 from noretry=1\") which changed the default for Renoir APU from noretry=1 to noretry=0, enabling retry fault handling and thus exercising the buggy code path.  Fix this by adding a check for ih1.ring_size before attempting to use it. Also restore the soft_ih support from commit dd299441654f (\"drm/amdgpu: Rework retry fault removal\").  This is needed if the hardware doesn't support secondary HW IH rings.  v2: additional updates (Alex)  (cherry picked from commit 6ce8d536c80aa1f059e82184f0d1994436b1d526)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23159",
                        "url": "https://ubuntu.com/security/CVE-2026-23159",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf: sched: Fix perf crash with new is_user_task() helper  In order to do a user space stacktrace the current task needs to be a user task that has executed in user space. It use to be possible to test if a task is a user task or not by simply checking the task_struct mm field. If it was non NULL, it was a user task and if not it was a kernel task.  But things have changed over time, and some kernel tasks now have their own mm field.  An idea was made to instead test PF_KTHREAD and two functions were used to wrap this check in case it became more complex to test if a task was a user task or not[1]. But this was rejected and the C code simply checked the PF_KTHREAD directly.  It was later found that not all kernel threads set PF_KTHREAD. The io-uring helpers instead set PF_USER_WORKER and this needed to be added as well.  But checking the flags is still not enough. There's a very small window when a task exits that it frees its mm field and it is set back to NULL. If perf were to trigger at this moment, the flags test would say its a user space task but when perf would read the mm field it would crash with at NULL pointer dereference.  Now there are flags that can be used to test if a task is exiting, but they are set in areas that perf may still want to profile the user space task (to see where it exited). The only real test is to check both the flags and the mm field.  Instead of making this modification in every location, create a new is_user_task() helper function that does all the tests needed to know if it is safe to read the user space memory or not.  [1] https://lore.kernel.org/all/20250425204120.639530125@goodmis.org/",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-58096",
                        "url": "https://ubuntu.com/security/CVE-2024-58096",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode  ath11k_hal_srng_* should be used with srng->lock to protect srng data.  For ath11k_dp_rx_mon_dest_process() and ath11k_dp_full_mon_process_rx(), they use ath11k_hal_srng_* for many times but never call srng->lock.  So when running (full) monitor mode, warning will occur: RIP: 0010:ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k] Call Trace:  ? ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k]  ath11k_dp_rx_process_mon_status+0xc45/0x1190 [ath11k]  ? idr_alloc_u32+0x97/0xd0  ath11k_dp_rx_process_mon_rings+0x32a/0x550 [ath11k]  ath11k_dp_service_srng+0x289/0x5a0 [ath11k]  ath11k_pcic_ext_grp_napi_poll+0x30/0xd0 [ath11k]  __napi_poll+0x30/0x1f0  net_rx_action+0x198/0x320  __do_softirq+0xdd/0x319  So add srng->lock for them to avoid such warnings.  Inorder to fetch the srng->lock, should change srng's definition from 'void' to 'struct hal_srng'. And initialize them elsewhere to prevent one line of code from being too long. This is consistent with other ring process functions, such as ath11k_dp_process_rx().  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40039",
                        "url": "https://ubuntu.com/security/CVE-2025-40039",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix race condition in RPC handle list access  The 'sess->rpc_handle_list' XArray manages RPC handles within a ksmbd session. Access to this list is intended to be protected by 'sess->rpc_lock' (an rw_semaphore). However, the locking implementation was flawed, leading to potential race conditions.  In ksmbd_session_rpc_open(), the code incorrectly acquired only a read lock before calling xa_store() and xa_erase(). Since these operations modify the XArray structure, a write lock is required to ensure exclusive access and prevent data corruption from concurrent modifications.  Furthermore, ksmbd_session_rpc_method() accessed the list using xa_load() without holding any lock at all. This could lead to reading inconsistent data or a potential use-after-free if an entry is concurrently removed and the pointer is dereferenced.  Fix these issues by: 1. Using down_write() and up_write() in ksmbd_session_rpc_open()    to ensure exclusive access during XArray modification, and ensuring    the lock is correctly released on error paths. 2. Adding down_read() and up_read() in ksmbd_session_rpc_method()    to safely protect the lookup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-28 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23093",
                        "url": "https://ubuntu.com/security/CVE-2026-23093",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: smbd: fix dma_unmap_sg() nents  The dma_unmap_sg() functions should be called with the same nents as the dma_map_sg(), not the value the map function returned.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23102",
                        "url": "https://ubuntu.com/security/CVE-2026-23102",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Fix restoration of SVE context  When SME is supported, Restoring SVE signal context can go wrong in a few ways, including placing the task into an invalid state where the kernel may read from out-of-bounds memory (and may potentially take a fatal fault) and/or may kill the task with a SIGKILL.  (1) Restoring a context with SVE_SIG_FLAG_SM set can place the task into     an invalid state where SVCR.SM is set (and sve_state is non-NULL)     but TIF_SME is clear, consequently resuting in out-of-bounds memory     reads and/or killing the task with SIGKILL.      This can only occur in unusual (but legitimate) cases where the SVE     signal context has either been modified by userspace or was saved in     the context of another task (e.g. as with CRIU), as otherwise the     presence of an SVE signal context with SVE_SIG_FLAG_SM implies that     TIF_SME is already set.      While in this state, task_fpsimd_load() will NOT configure SMCR_ELx     (leaving some arbitrary value configured in hardware) before     restoring SVCR and attempting to restore the streaming mode SVE     registers from memory via sve_load_state(). As the value of     SMCR_ELx.LEN may be larger than the task's streaming SVE vector     length, this may read memory outside of the task's allocated     sve_state, reading unrelated data and/or triggering a fault.      While this can result in secrets being loaded into streaming SVE     registers, these values are never exposed. As TIF_SME is clear,     fpsimd_bind_task_to_cpu() will configure CPACR_ELx.SMEN to trap EL0     accesses to streaming mode SVE registers, so these cannot be     accessed directly at EL0. As fpsimd_save_user_state() verifies the     live vector length before saving (S)SVE state to memory, no secret     values can be saved back to memory (and hence cannot be observed via     ptrace, signals, etc).      When the live vector length doesn't match the expected vector length     for the task, fpsimd_save_user_state() will send a fatal SIGKILL     signal to the task. Hence the task may be killed after executing     userspace for some period of time.  (2) Restoring a context with SVE_SIG_FLAG_SM clear does not clear the     task's SVCR.SM. If SVCR.SM was set prior to restoring the context,     then the task will be left in streaming mode unexpectedly, and some     register state will be combined inconsistently, though the task will     be left in legitimate state from the kernel's PoV.      This can only occur in unusual (but legitimate) cases where ptrace     has been used to set SVCR.SM after entry to the sigreturn syscall,     as syscall entry clears SVCR.SM.      In these cases, the the provided SVE register data will be loaded     into the task's sve_state using the non-streaming SVE vector length     and the FPSIMD registers will be merged into this using the     streaming SVE vector length.  Fix (1) by setting TIF_SME when setting SVCR.SM. This also requires ensuring that the task's sme_state has been allocated, but as this could contain live ZA state, it should not be zeroed. Fix (2) by clearing SVCR.SM when restoring a SVE signal context with SVE_SIG_FLAG_SM clear.  For consistency, I've pulled the manipulation of SVCR, TIF_SVE, TIF_SME, and fp_type earlier, immediately after the allocation of sve_state/sme_state, before the restore of the actual register state. This makes it easier to ensure that these are always modified consistently, even if a fault is taken while reading the register data from the signal context. I do not expect any software to depend on the exact state restored when a fault is taken while reading the context.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23170",
                        "url": "https://ubuntu.com/security/CVE-2026-23170",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/imx/tve: fix probe device leak  Make sure to drop the reference taken to the DDC device during probe on probe failure (e.g. probe deferral) and on driver unbind.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23168",
                        "url": "https://ubuntu.com/security/CVE-2026-23168",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  flex_proportions: make fprop_new_period() hardirq safe  Bernd has reported a lockdep splat from flexible proportions code that is essentially complaining about the following race:  <timer fires> run_timer_softirq - we are in softirq context   call_timer_fn     writeout_period       fprop_new_period         write_seqcount_begin(&p->sequence);          <hardirq is raised>         ...         blk_mq_end_request() \t  blk_update_request() \t    ext4_end_bio() \t      folio_end_writeback() \t\t__wb_writeout_add() \t\t  __fprop_add_percpu_max() \t\t    if (unlikely(max_frac < FPROP_FRAC_BASE)) { \t\t      fprop_fraction_percpu() \t\t\tseq = read_seqcount_begin(&p->sequence); \t\t\t  - sees odd sequence so loops indefinitely  Note that a deadlock like this is only possible if the bdi has configured maximum fraction of writeout throughput which is very rare in general but frequent for example for FUSE bdis.  To fix this problem we have to make sure write section of the sequence counter is irqsafe.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23156",
                        "url": "https://ubuntu.com/security/CVE-2026-23156",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  efivarfs: fix error propagation in efivar_entry_get()  efivar_entry_get() always returns success even if the underlying __efivar_entry_get() fails, masking errors.  This may result in uninitialized heap memory being copied to userspace in the efivarfs_file_read() path.  Fix it by returning the error from __efivar_entry_get().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23167",
                        "url": "https://ubuntu.com/security/CVE-2026-23167",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: nci: Fix race between rfkill and nci_unregister_device().  syzbot reported the splat below [0] without a repro.  It indicates that struct nci_dev.cmd_wq had been destroyed before nci_close_device() was called via rfkill.  nci_dev.cmd_wq is only destroyed in nci_unregister_device(), which (I think) was called from virtual_ncidev_close() when syzbot close()d an fd of virtual_ncidev.  The problem is that nci_unregister_device() destroys nci_dev.cmd_wq first and then calls nfc_unregister_device(), which removes the device from rfkill by rfkill_unregister().  So, the device is still visible via rfkill even after nci_dev.cmd_wq is destroyed.  Let's unregister the device from rfkill first in nci_unregister_device().  Note that we cannot call nfc_unregister_device() before nci_close_device() because    1) nfc_unregister_device() calls device_del() which frees      all memory allocated by devm_kzalloc() and linked to      ndev->conn_info_list    2) nci_rx_work() could try to queue nci_conn_info to      ndev->conn_info_list which could be leaked  Thus, nfc_unregister_device() is split into two functions so we can remove rfkill interfaces only before nci_close_device().  [0]: DEBUG_LOCKS_WARN_ON(1) WARNING: kernel/locking/lockdep.c:238 at hlock_class kernel/locking/lockdep.c:238 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at check_wait_context kernel/locking/lockdep.c:4854 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at __lock_acquire+0x39d/0x2cf0 kernel/locking/lockdep.c:5187, CPU#0: syz.0.8675/6349 Modules linked in: CPU: 0 UID: 0 PID: 6349 Comm: syz.0.8675 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/13/2026 RIP: 0010:hlock_class kernel/locking/lockdep.c:238 [inline] RIP: 0010:check_wait_context kernel/locking/lockdep.c:4854 [inline] RIP: 0010:__lock_acquire+0x3a4/0x2cf0 kernel/locking/lockdep.c:5187 Code: 18 00 4c 8b 74 24 08 75 27 90 e8 17 f2 fc 02 85 c0 74 1c 83 3d 50 e0 4e 0e 00 75 13 48 8d 3d 43 f7 51 0e 48 c7 c6 8b 3a de 8d <67> 48 0f b9 3a 90 31 c0 0f b6 98 c4 00 00 00 41 8b 45 20 25 ff 1f RSP: 0018:ffffc9000c767680 EFLAGS: 00010046 RAX: 0000000000000001 RBX: 0000000000040000 RCX: 0000000000080000 RDX: ffffc90013080000 RSI: ffffffff8dde3a8b RDI: ffffffff8ff24ca0 RBP: 0000000000000003 R08: ffffffff8fef35a3 R09: 1ffffffff1fde6b4 R10: dffffc0000000000 R11: fffffbfff1fde6b5 R12: 00000000000012a2 R13: ffff888030338ba8 R14: ffff888030338000 R15: ffff888030338b30 FS:  00007fa5995f66c0(0000) GS:ffff8881256f8000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f7e72f842d0 CR3: 00000000485a0000 CR4: 00000000003526f0 Call Trace:  <TASK>  lock_acquire+0x106/0x330 kernel/locking/lockdep.c:5868  touch_wq_lockdep_map+0xcb/0x180 kernel/workqueue.c:3940  __flush_workqueue+0x14b/0x14f0 kernel/workqueue.c:3982  nci_close_device+0x302/0x630 net/nfc/nci/core.c:567  nci_dev_down+0x3b/0x50 net/nfc/nci/core.c:639  nfc_dev_down+0x152/0x290 net/nfc/core.c:161  nfc_rfkill_set_block+0x2d/0x100 net/nfc/core.c:179  rfkill_set_block+0x1d2/0x440 net/rfkill/core.c:346  rfkill_fop_write+0x461/0x5a0 net/rfkill/core.c:1301  vfs_write+0x29a/0xb90 fs/read_write.c:684  ksys_write+0x150/0x270 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xe2/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa59b39acb9 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fa5995f6028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fa59b615fa0 RCX: 00007fa59b39acb9 RDX: 0000000000000008 RSI: 0000200000000080 RDI: 0000000000000007 RBP: 00007fa59b408bf7 R08: ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23173",
                        "url": "https://ubuntu.com/security/CVE-2026-23173",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: TC, delete flows only for existing peers  When deleting TC steering flows, iterate only over actual devcom peers instead of assuming all possible ports exist. This avoids touching non-existent peers and ensures cleanup is limited to devices the driver is currently connected to.   BUG: kernel NULL pointer dereference, address: 0000000000000008  #PF: supervisor write access in kernel mode  #PF: error_code(0x0002) - not-present page  PGD 133c8a067 P4D 0  Oops: Oops: 0002 [#1] SMP  CPU: 19 UID: 0 PID: 2169 Comm: tc Not tainted 6.18.0+ #156 NONE  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:mlx5e_tc_del_fdb_peers_flow+0xbe/0x200 [mlx5_core]  Code: 00 00 a8 08 74 a8 49 8b 46 18 f6 c4 02 74 9f 4c 8d bf a0 12 00 00 4c 89 ff e8 0e e7 96 e1 49 8b 44 24 08 49 8b 0c 24 4c 89 ff <48> 89 41 08 48 89 08 49 89 2c 24 49 89 5c 24 08 e8 7d ce 96 e1 49  RSP: 0018:ff11000143867528 EFLAGS: 00010246  RAX: 0000000000000000 RBX: dead000000000122 RCX: 0000000000000000  RDX: ff11000143691580 RSI: ff110001026e5000 RDI: ff11000106f3d2a0  RBP: dead000000000100 R08: 00000000000003fd R09: 0000000000000002  R10: ff11000101c75690 R11: ff1100085faea178 R12: ff11000115f0ae78  R13: 0000000000000000 R14: ff11000115f0a800 R15: ff11000106f3d2a0  FS:  00007f35236bf740(0000) GS:ff110008dc809000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000008 CR3: 0000000157a01001 CR4: 0000000000373eb0  Call Trace:   <TASK>   mlx5e_tc_del_flow+0x46/0x270 [mlx5_core]   mlx5e_flow_put+0x25/0x50 [mlx5_core]   mlx5e_delete_flower+0x2a6/0x3e0 [mlx5_core]   tc_setup_cb_reoffload+0x20/0x80   fl_reoffload+0x26f/0x2f0 [cls_flower]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   tcf_block_playback_offloads+0x9e/0x1c0   tcf_block_unbind+0x7b/0xd0   tcf_block_setup+0x186/0x1d0   tcf_block_offload_cmd.isra.0+0xef/0x130   tcf_block_offload_unbind+0x43/0x70   __tcf_block_put+0x85/0x160   ingress_destroy+0x32/0x110 [sch_ingress]   __qdisc_destroy+0x44/0x100   qdisc_graft+0x22b/0x610   tc_get_qdisc+0x183/0x4d0   rtnetlink_rcv_msg+0x2d7/0x3d0   ? rtnl_calcit.isra.0+0x100/0x100   netlink_rcv_skb+0x53/0x100   netlink_unicast+0x249/0x320   ? __alloc_skb+0x102/0x1f0   netlink_sendmsg+0x1e3/0x420   __sock_sendmsg+0x38/0x60   ____sys_sendmsg+0x1ef/0x230   ? copy_msghdr_from_user+0x6c/0xa0   ___sys_sendmsg+0x7f/0xc0   ? ___sys_recvmsg+0x8a/0xc0   ? __sys_sendto+0x119/0x180   __sys_sendmsg+0x61/0xb0   do_syscall_64+0x55/0x640   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7f35238bb764  Code: 15 b9 86 0c 00 f7 d8 64 89 02 b8 ff ff ff ff eb bf 0f 1f 44 00 00 f3 0f 1e fa 80 3d e5 08 0d 00 00 74 13 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 4c c3 0f 1f 00 55 48 89 e5 48 83 ec 20 89 55  RSP: 002b:00007ffed4c35638 EFLAGS: 00000202 ORIG_RAX: 000000000000002e  RAX: ffffffffffffffda RBX: 000055a2efcc75e0 RCX: 00007f35238bb764  RDX: 0000000000000000 RSI: 00007ffed4c356a0 RDI: 0000000000000003  RBP: 00007ffed4c35710 R08: 0000000000000010 R09: 00007f3523984b20  R10: 0000000000000004 R11: 0000000000000202 R12: 00007ffed4c35790  R13: 000000006947df8f R14: 000055a2efcc75e0 R15: 00007ffed4c35780",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23150",
                        "url": "https://ubuntu.com/security/CVE-2026-23150",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: llcp: Fix memleak in nfc_llcp_send_ui_frame().  syzbot reported various memory leaks related to NFC, struct nfc_llcp_sock, sk_buff, nfc_dev, etc. [0]  The leading log hinted that nfc_llcp_send_ui_frame() failed to allocate skb due to sock_error(sk) being -ENXIO.  ENXIO is set by nfc_llcp_socket_release() when struct nfc_llcp_local is destroyed by local_cleanup().  The problem is that there is no synchronisation between nfc_llcp_send_ui_frame() and local_cleanup(), and skb could be put into local->tx_queue after it was purged in local_cleanup():    CPU1                          CPU2   ----                          ----   nfc_llcp_send_ui_frame()      local_cleanup()   |- do {                       '      |- pdu = nfc_alloc_send_skb(..., &err)      |                          .      |                          |- nfc_llcp_socket_release(local, false, ENXIO);      |                          |- skb_queue_purge(&local->tx_queue);     |      |                          '                                         |      |- skb_queue_tail(&local->tx_queue, pdu);                            |     ...                                                                   |      |- pdu = nfc_alloc_send_skb(..., &err)                               |                                       ^._________________________________.'  local_cleanup() is called for struct nfc_llcp_local only after nfc_llcp_remove_local() unlinks it from llcp_devices.  If we hold local->tx_queue.lock then, we can synchronise the thread and nfc_llcp_send_ui_frame().  Let's do that and check list_empty(&local->list) before queuing skb to local->tx_queue in nfc_llcp_send_ui_frame().  [0]: [   56.074943][ T6096] llcp: nfc_llcp_send_ui_frame: Could not allocate PDU (error=-6) [   64.318868][ T5813] kmemleak: 6 new suspected memory leaks (see /sys/kernel/debug/kmemleak) BUG: memory leak unreferenced object 0xffff8881272f6800 (size 1024):   comm \"syz.0.17\", pid 6096, jiffies 4294942766   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     27 00 03 40 00 00 00 00 00 00 00 00 00 00 00 00  '..@............   backtrace (crc da58d84d):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     __do_kmalloc_node mm/slub.c:5645 [inline]     __kmalloc_noprof+0x3e3/0x6b0 mm/slub.c:5658     kmalloc_noprof include/linux/slab.h:961 [inline]     sk_prot_alloc+0x11a/0x1b0 net/core/sock.c:2239     sk_alloc+0x36/0x360 net/core/sock.c:2295     nfc_llcp_sock_alloc+0x37/0x130 net/nfc/llcp_sock.c:979     llcp_sock_create+0x71/0xd0 net/nfc/llcp_sock.c:1044     nfc_sock_create+0xc9/0xf0 net/nfc/af_nfc.c:31     __sock_create+0x1a9/0x340 net/socket.c:1605     sock_create net/socket.c:1663 [inline]     __sys_socket_create net/socket.c:1700 [inline]     __sys_socket+0xb9/0x1a0 net/socket.c:1747     __do_sys_socket net/socket.c:1761 [inline]     __se_sys_socket net/socket.c:1759 [inline]     __x64_sys_socket+0x1b/0x30 net/socket.c:1759     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  BUG: memory leak unreferenced object 0xffff88810fbd9800 (size 240):   comm \"syz.0.17\", pid 6096, jiffies 4294942850   hex dump (first 32 bytes):     68 f0 ff 08 81 88 ff ff 68 f0 ff 08 81 88 ff ff  h.......h.......     00 00 00 00 00 00 00 00 00 68 2f 27 81 88 ff ff  .........h/'....   backtrace (crc 6cc652b1):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5336     __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/sk ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23164",
                        "url": "https://ubuntu.com/security/CVE-2026-23164",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  rocker: fix memory leak in rocker_world_port_post_fini()  In rocker_world_port_pre_init(), rocker_port->wpriv is allocated with kzalloc(wops->port_priv_size, GFP_KERNEL). However, in rocker_world_port_post_fini(), the memory is only freed when wops->port_post_fini callback is set:      if (!wops->port_post_fini)         return;     wops->port_post_fini(rocker_port);     kfree(rocker_port->wpriv);  Since rocker_ofdpa_ops does not implement port_post_fini callback (it is NULL), the wpriv memory allocated for each port is never freed when ports are removed. This leads to a memory leak of sizeof(struct ofdpa_port) bytes per port on every device removal.  Fix this by always calling kfree(rocker_port->wpriv) regardless of whether the port_post_fini callback exists.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23172",
                        "url": "https://ubuntu.com/security/CVE-2026-23172",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: wwan: t7xx: fix potential skb->frags overflow in RX path  When receiving data in the DPMAIF RX path, the t7xx_dpmaif_set_frag_to_skb() function adds page fragments to an skb without checking if the number of fragments has exceeded MAX_SKB_FRAGS. This could lead to a buffer overflow in skb_shinfo(skb)->frags[] array, corrupting adjacent memory and potentially causing kernel crashes or other undefined behavior.  This issue was identified through static code analysis by comparing with a similar vulnerability fixed in the mt76 driver commit b102f0c522cf (\"mt76: fix array overflow on receiving too many fragments for a packet\").  The vulnerability could be triggered if the modem firmware sends packets with excessive fragments. While under normal protocol conditions (MTU 3080 bytes, BAT buffer 3584 bytes), a single packet should not require additional fragments, the kernel should not blindly trust firmware behavior. Malicious, buggy, or compromised firmware could potentially craft packets with more fragments than the kernel expects.  Fix this by adding a bounds check before calling skb_add_rx_frag() to ensure nr_frags does not exceed MAX_SKB_FRAGS.  The check must be performed before unmapping to avoid a page leak and double DMA unmap during device teardown.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23212",
                        "url": "https://ubuntu.com/security/CVE-2026-23212",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: annotate data-races around slave->last_rx  slave->last_rx and slave->target_last_arp_rx[...] can be read and written locklessly. Add READ_ONCE() and WRITE_ONCE() annotations.  syzbot reported:  BUG: KCSAN: data-race in bond_rcv_validate / bond_rcv_validate  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 1:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410 ...  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 0:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410   br_netif_receive_skb net/bridge/br_input.c:30 [inline]   NF_HOOK include/linux/netfilter.h:318 [inline] ...  value changed: 0x0000000100005365 -> 0x0000000100005366",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23160",
                        "url": "https://ubuntu.com/security/CVE-2026-23160",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeon_ep: Fix memory leak in octep_device_setup()  In octep_device_setup(), if octep_ctrl_net_init() fails, the function returns directly without unmapping the mapped resources and freeing the allocated configuration memory.  Fix this by jumping to the unsupported_dev label, which performs the necessary cleanup. This aligns with the error handling logic of other paths in this function.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23146",
                        "url": "https://ubuntu.com/security/CVE-2026-23146",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work  hci_uart_set_proto() sets HCI_UART_PROTO_INIT before calling hci_uart_register_dev(), which calls proto->open() to initialize hu->priv. However, if a TTY write wakeup occurs during this window, hci_uart_tx_wakeup() may schedule write_work before hu->priv is initialized, leading to a NULL pointer dereference in hci_uart_write_work() when proto->dequeue() accesses hu->priv.  The race condition is:    CPU0                              CPU1   ----                              ----   hci_uart_set_proto()     set_bit(HCI_UART_PROTO_INIT)     hci_uart_register_dev()                                     tty write wakeup                                       hci_uart_tty_wakeup()                                         hci_uart_tx_wakeup()                                           schedule_work(&hu->write_work)       proto->open(hu)         // initializes hu->priv                                     hci_uart_write_work()                                       hci_uart_dequeue()                                         proto->dequeue(hu)                                           // accesses hu->priv (NULL!)  Fix this by moving set_bit(HCI_UART_PROTO_INIT) after proto->open() succeeds, ensuring hu->priv is initialized before any work can be scheduled.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23394",
                        "url": "https://ubuntu.com/security/CVE-2026-23394",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  af_unix: Give up GC if MSG_PEEK intervened.  Igor Ushakov reported that GC purged the receive queue of an alive socket due to a race with MSG_PEEK with a nice repro.  This is the exact same issue previously fixed by commit cbcf01128d0a (\"af_unix: fix garbage collect vs MSG_PEEK\").  After GC was replaced with the current algorithm, the cited commit removed the locking dance in unix_peek_fds() and reintroduced the same issue.  The problem is that MSG_PEEK bumps a file refcount without interacting with GC.  Consider an SCC containing sk-A and sk-B, where sk-A is close()d but can be recv()ed via sk-B.  The bad thing happens if sk-A is recv()ed with MSG_PEEK from sk-B and sk-B is close()d while GC is checking unix_vertex_dead() for sk-A and sk-B.    GC thread                    User thread   ---------                    -----------   unix_vertex_dead(sk-A)   -> true   <------.                     \\                      `------   recv(sk-B, MSG_PEEK)               invalidate !!    -> sk-A's file refcount : 1 -> 2                                 close(sk-B)                                -> sk-B's file refcount : 2 -> 1   unix_vertex_dead(sk-B)   -> true  Initially, sk-A's file refcount is 1 by the inflight fd in sk-B recvq.  GC thinks sk-A is dead because the file refcount is the same as the number of its inflight fds.  However, sk-A's file refcount is bumped silently by MSG_PEEK, which invalidates the previous evaluation.  At this moment, sk-B's file refcount is 2; one by the open fd, and one by the inflight fd in sk-A.  The subsequent close() releases one refcount by the former.  Finally, GC incorrectly concludes that both sk-A and sk-B are dead.  One option is to restore the locking dance in unix_peek_fds(), but we can resolve this more elegantly thanks to the new algorithm.  The point is that the issue does not occur without the subsequent close() and we actually do not need to synchronise MSG_PEEK with the dead SCC detection.  When the issue occurs, close() and GC touch the same file refcount. If GC sees the refcount being decremented by close(), it can just give up garbage-collecting the SCC.  Therefore, we only need to signal the race during MSG_PEEK with a proper memory barrier to make it visible to the GC.  Let's use seqcount_t to notify GC when MSG_PEEK occurs and let it defer the SCC to the next run.  This way no locking is needed on the MSG_PEEK side, and we can avoid imposing a penalty on every MSG_PEEK unnecessarily.  Note that we can retry within unix_scc_dead() if MSG_PEEK is detected, but we do not do so to avoid hung task splat from abusive MSG_PEEK calls.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-25 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38591",
                        "url": "https://ubuntu.com/security/CVE-2025-38591",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Reject narrower access to pointer ctx fields  The following BPF program, simplified from a syzkaller repro, causes a kernel warning:      r0 = *(u8 *)(r1 + 169);     exit;  With pointer field sk being at offset 168 in __sk_buff. This access is detected as a narrower read in bpf_skb_is_valid_access because it doesn't match offsetof(struct __sk_buff, sk). It is therefore allowed and later proceeds to bpf_convert_ctx_access. Note that for the \"is_narrower_load\" case in the convert_ctx_accesses(), the insn->off is aligned, so the cnt may not be 0 because it matches the offsetof(struct __sk_buff, sk) in the bpf_convert_ctx_access. However, the target_size stays 0 and the verifier errors with a kernel warning:      verifier bug: error during ctx access conversion(1)  This patch fixes that to return a proper \"invalid bpf_context access off=X size=Y\" error on the load instruction.  The same issue affects multiple other fields in context structures that allow narrow access. Some other non-affected fields (for sk_msg, sk_lookup, and sockopt) were also changed to use bpf_ctx_range_ptr for consistency.  Note this syzkaller crash was reported in the \"Closes\" link below, which used to be about a different bug, fixed in commit fce7bd8e385a (\"bpf/verifier: Handle BPF_LOAD_ACQ instructions in insn_def_regno()\"). Because syzbot somehow confused the two bugs, the new crash and repro didn't get reported to the mailing list.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-08-19 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23035",
                        "url": "https://ubuntu.com/security/CVE-2026-23035",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Pass netdev to mlx5e_destroy_netdev instead of priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails.  Pass netdev to mlx5e_destroy_netdev() to guarantee it will work on a valid netdev.  On mlx5e_remove: Check validity of priv->profile, before attempting to cleanup any resources that might be not there.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000370 PGD 0 P4D 0 Oops: Oops: 0000 [#1] SMP NOPTI CPU: 15 UID: 0 PID: 520 Comm: devlink Not tainted 6.18.0-rc5+ #115 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_dcbnl_dscp_app+0x23/0x100 RSP: 0018:ffffc9000083f8b8 EFLAGS: 00010286 RAX: ffff8881126fc380 RBX: ffff8881015ac400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8881035109c0 RBP: ffff8881035109c0 R08: ffff888101e3e838 R09: ffff888100264e10 R10: ffffc9000083f898 R11: ffffc9000083f8a0 R12: ffff888101b921a0 R13: ffff888101b921a0 R14: ffff8881015ac9a0 R15: ffff8881015ac400 FS:  00007f789a3c8740(0000) GS:ffff88856aa59000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000370 CR3: 000000010b6c0001 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_remove+0x57/0x110  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22996",
                        "url": "https://ubuntu.com/security/CVE-2026-22996",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Don't store mlx5e_priv in mlx5e_dev devlink priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails, mlx5e_priv in mlx5e_dev devlink private is used to reference the netdev and mdev associated with that struct. Instead, store netdev directly into mlx5e_dev and get mdev from the containing mlx5_adev aux device structure.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000520  #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: 3 UID: 0 PID: 521 Comm: devlink Not tainted 6.18.0-rc5+ #117 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_remove+0x68/0x130 RSP: 0018:ffffc900034838f0 EFLAGS: 00010246 RAX: ffff88810283c380 RBX: ffff888101874400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffff888102d789c0 R08: ffff8881007137f0 R09: ffff888100264e10 R10: ffffc90003483898 R11: ffffc900034838a0 R12: ffff888100d261a0 R13: ffff888100d261a0 R14: ffff8881018749a0 R15: ffff888101874400 FS:  00007f8565fea740(0000) GS:ffff88856a759000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000520 CR3: 000000010b11a004 CR4: 0000000000370ef0 Call Trace:  <TASK>  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23000",
                        "url": "https://ubuntu.com/security/CVE-2026-23000",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Fix crash on profile change rollback failure  mlx5e_netdev_change_profile can fail to attach a new profile and can fail to rollback to old profile, in such case, we could end up with a dangling netdev with a fully reset netdev_priv. A retry to change profile, e.g. another attempt to call mlx5e_netdev_change_profile via switchdev mode change, will crash trying to access the now NULL priv->mdev.  This fix allows mlx5e_netdev_change_profile() to handle previous failures and an empty priv, by not assuming priv is valid.  Pass netdev and mdev to all flows requiring mlx5e_netdev_change_profile() and avoid passing priv. In mlx5e_netdev_change_profile() check if current priv is valid, and if not, just attach the new profile without trying to access the old one.  This fixes the following oops, when enabling switchdev mode for the 2nd time after first time failure:   ## Enabling switchdev mode first time:  mlx5_core 0012:03:00.1: E-Switch: Supported tc chains and prios offload workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12                                                                         ^^^^^^^^ mlx5_core 0000:00:03.0: E-Switch: Disable: mode(LEGACY), nvfs(0), necvfs(0), active vports(0)   ## retry: Enabling switchdev mode 2nd time:  mlx5_core 0000:00:03.0: E-Switch: Supported tc chains and prios offload BUG: kernel NULL pointer dereference, address: 0000000000000038  #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: 520 Comm: devlink Not tainted 6.18.0-rc4+ #91 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_detach_netdev+0x3c/0x90 Code: 50 00 00 f0 80 4f 78 02 48 8b bf e8 07 00 00 48 85 ff 74 16 48 8b 73 78 48 d1 ee 83 e6 01 83 f6 01 40 0f b6 f6 e8 c4 42 00 00 <48> 8b 45 38 48 85 c0 74 08 48 89 df e8 cc 47 40 1e 48 8b bb f0 07 RSP: 0018:ffffc90000673890 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff8881036a89c0 RCX: 0000000000000000 RDX: ffff888113f63800 RSI: ffffffff822fe720 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000002dcd R09: 0000000000000000 R10: ffffc900006738e8 R11: 00000000ffffffff R12: 0000000000000000 R13: 0000000000000000 R14: ffff8881036a89c0 R15: 0000000000000000 FS:  00007fdfb8384740(0000) GS:ffff88856a9d6000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000038 CR3: 0000000112ae0005 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_netdev_change_profile+0x45/0xb0  mlx5e_vport_rep_load+0x27b/0x2d0  mlx5_esw_offloads_rep_load+0x72/0xf0  esw_offloads_enable+0x5d0/0x970  mlx5_eswitch_enable_locked+0x349/0x430  ? is_mp_supported+0x57/0xb0  mlx5_devlink_eswitch_mode_set+0x26b/0x430  devlink_nl_eswitch_set_doit+0x6f/0xf0  genl_family_rcv_msg_doit+0xe8/0x140  genl_rcv_msg+0x18b/0x290  ? __pfx_devlink_nl_pre_doit+0x10/0x10  ? __pfx_devlink_nl_eswitch_set_doit+0x10/0x10  ? __pfx_devlink_nl_post_doit+0x10/0x10  ? __pfx_genl_rcv_msg+0x10/0x10  netlink_rcv_skb+0x52/0x100  genl_rcv+0x28/0x40  netlink_unicast+0x282/0x3e0  ? __alloc_skb+0xd6/0x190  netlink_sendmsg+0x1f7/0x430  __sys_sendto+0x213/0x220  ? __sys_recvmsg+0x6a/0xd0  __x64_sys_sendto+0x24/0x30  do_syscall_64+0x50/0x1f0  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fdfb8495047",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23053",
                        "url": "https://ubuntu.com/security/CVE-2026-23053",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Fix a deadlock involving nfs_release_folio()  Wang Zhaolong reports a deadlock involving NFSv4.1 state recovery waiting on kthreadd, which is attempting to reclaim memory by calling nfs_release_folio(). The latter cannot make progress due to state recovery being needed.  It seems that the only safe thing to do here is to kick off a writeback of the folio, without waiting for completion, or else kicking off an asynchronous commit.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23050",
                        "url": "https://ubuntu.com/security/CVE-2026-23050",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pNFS: Fix a deadlock when returning a delegation during open()  Ben Coddington reports seeing a hang in the following stack trace:   0 [ffffd0b50e1774e0] __schedule at ffffffff9ca05415   1 [ffffd0b50e177548] schedule at ffffffff9ca05717   2 [ffffd0b50e177558] bit_wait at ffffffff9ca061e1   3 [ffffd0b50e177568] __wait_on_bit at ffffffff9ca05cfb   4 [ffffd0b50e1775c8] out_of_line_wait_on_bit at ffffffff9ca05ea5   5 [ffffd0b50e177618] pnfs_roc at ffffffffc154207b [nfsv4]   6 [ffffd0b50e1776b8] _nfs4_proc_delegreturn at ffffffffc1506586 [nfsv4]   7 [ffffd0b50e177788] nfs4_proc_delegreturn at ffffffffc1507480 [nfsv4]   8 [ffffd0b50e1777f8] nfs_do_return_delegation at ffffffffc1523e41 [nfsv4]   9 [ffffd0b50e177838] nfs_inode_set_delegation at ffffffffc1524a75 [nfsv4]  10 [ffffd0b50e177888] nfs4_process_delegation at ffffffffc14f41dd [nfsv4]  11 [ffffd0b50e1778a0] _nfs4_opendata_to_nfs4_state at ffffffffc1503edf [nfsv4]  12 [ffffd0b50e1778c0] _nfs4_open_and_get_state at ffffffffc1504e56 [nfsv4]  13 [ffffd0b50e177978] _nfs4_do_open at ffffffffc15051b8 [nfsv4]  14 [ffffd0b50e1779f8] nfs4_do_open at ffffffffc150559c [nfsv4]  15 [ffffd0b50e177a80] nfs4_atomic_open at ffffffffc15057fb [nfsv4]  16 [ffffd0b50e177ad0] nfs4_file_open at ffffffffc15219be [nfsv4]  17 [ffffd0b50e177b78] do_dentry_open at ffffffff9c09e6ea  18 [ffffd0b50e177ba8] vfs_open at ffffffff9c0a082e  19 [ffffd0b50e177bd0] dentry_open at ffffffff9c0a0935  The issue is that the delegreturn is being asked to wait for a layout return that cannot complete because a state recovery was initiated. The state recovery cannot complete until the open() finishes processing the delegations it was given.  The solution is to propagate the existing flags that indicate a non-blocking call to the function pnfs_roc(), so that it knows not to wait in this situation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23005",
                        "url": "https://ubuntu.com/security/CVE-2026-23005",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1  When loading guest XSAVE state via KVM_SET_XSAVE, and when updating XFD in response to a guest WRMSR, clear XFD-disabled features in the saved (or to be restored) XSTATE_BV to ensure KVM doesn't attempt to load state for features that are disabled via the guest's XFD.  Because the kernel executes XRSTOR with the guest's XFD, saving XSTATE_BV[i]=1 with XFD[i]=1 will cause XRSTOR to #NM and panic the kernel.  E.g. if fpu_update_guest_xfd() sets XFD without clearing XSTATE_BV:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#29: amx_test/848   Modules linked in: kvm_intel kvm irqbypass   CPU: 29 UID: 1000 PID: 848 Comm: amx_test Not tainted 6.19.0-rc2-ffa07f7fd437-x86_amx_nm_xfd_non_init-vm #171 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    switch_fpu_return+0x4a/0xb0    kvm_arch_vcpu_ioctl_run+0x1245/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  This can happen if the guest executes WRMSR(MSR_IA32_XFD) to set XFD[18] = 1, and a host IRQ triggers kernel_fpu_begin() prior to the vmexit handler's call to fpu_update_guest_xfd().  and if userspace stuffs XSTATE_BV[i]=1 via KVM_SET_XSAVE:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#14: amx_test/867   Modules linked in: kvm_intel kvm irqbypass   CPU: 14 UID: 1000 PID: 867 Comm: amx_test Not tainted 6.19.0-rc2-2dace9faccd6-x86_amx_nm_xfd_non_init-vm #168 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    fpu_swap_kvm_fpstate+0x6b/0x120    kvm_load_guest_fpu+0x30/0x80 [kvm]    kvm_arch_vcpu_ioctl_run+0x85/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  The new behavior is consistent with the AMX architecture.  Per Intel's SDM, XSAVE saves XSTATE_BV as '0' for components that are disabled via XFD (and non-compacted XSAVE saves the initial configuration of the state component):    If XSAVE, XSAVEC, XSAVEOPT, or XSAVES is saving the state component i,   the instruction does not generate #NM when XCR0[i] = IA32_XFD[i] = 1;   instead, it operates as if XINUSE[i] = 0 (and the state component was   in its initial state): it saves bit i of XSTATE_BV field of the XSAVE   header as 0; in addition, XSAVE saves the initial configuration of the   state component (the other instructions do not save state component i).  Alternatively, KVM could always do XRSTOR with XFD=0, e.g. by using a constant XFD based on the set of enabled features when XSAVEing for a struct fpu_guest.  However, having XSTATE_BV[i]=1 for XFD-disabled features can only happen in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, because fpu_swap_kvm_fpstate()'s call to save_fpregs_to_fpstate() saves the outgoing FPU state with the current XFD; and that is (on all but the first WRMSR to XFD) the guest XFD.  Therefore, XFD can only go out of sync with XSTATE_BV in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, and it we can consider it (de facto) part of KVM ABI that KVM_GET_XSAVE returns XSTATE_BV[i]=0 for XFD-disabled features.  [Move clea ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-58097",
                        "url": "https://ubuntu.com/security/CVE-2024-58097",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix RCU stall while reaping monitor destination ring  While processing the monitor destination ring, MSDUs are reaped from the link descriptor based on the corresponding buf_id.  However, sometimes the driver cannot obtain a valid buffer corresponding to the buf_id received from the hardware. This causes an infinite loop in the destination processing, resulting in a kernel crash.  kernel log: ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed  Fix this by skipping the problematic buf_id and reaping the next entry, replacing the break with the next MSDU processing.  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68365",
                        "url": "https://ubuntu.com/security/CVE-2025-68365",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/ntfs3: Initialize allocated memory before use  KMSAN reports: Multiple uninitialized values detected:  - KMSAN: uninit-value in ntfs_read_hdr (3) - KMSAN: uninit-value in bcmp (3)  Memory is allocated by __getname(), which is a wrapper for kmem_cache_alloc(). This memory is used before being properly cleared. Change kmem_cache_alloc() to kmem_cache_zalloc() to properly allocate and clear memory before use.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-37926",
                        "url": "https://ubuntu.com/security/CVE-2025-37926",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_session_rpc_open  A UAF issue can occur due to a race condition between ksmbd_session_rpc_open() and __session_rpc_close(). Add rpc_lock to the session to protect it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-05-20 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23030",
                        "url": "https://ubuntu.com/security/CVE-2026-23030",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: rockchip: inno-usb2: Fix a double free bug in rockchip_usb2phy_probe()  The for_each_available_child_of_node() calls of_node_put() to release child_np in each success loop. After breaking from the loop with the child_np has been released, the code will jump to the put_child label and will call the of_node_put() again if the devm_request_threaded_irq() fails. These cause a double free bug.  Fix by returning directly to avoid the duplicate of_node_put().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23025",
                        "url": "https://ubuntu.com/security/CVE-2026-23025",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/page_alloc: prevent pcp corruption with SMP=n  The kernel test robot has reported:   BUG: spinlock trylock failure on UP on CPU#0, kcompactd0/28   lock: 0xffff888807e35ef0, .magic: dead4ead, .owner: kcompactd0/28, .owner_cpu: 0  CPU: 0 UID: 0 PID: 28 Comm: kcompactd0 Not tainted 6.18.0-rc5-00127-ga06157804399 #1 PREEMPT 8cc09ef94dcec767faa911515ce9e609c45db470  Call Trace:   <IRQ>   __dump_stack (lib/dump_stack.c:95)   dump_stack_lvl (lib/dump_stack.c:123)   dump_stack (lib/dump_stack.c:130)   spin_dump (kernel/locking/spinlock_debug.c:71)   do_raw_spin_trylock (kernel/locking/spinlock_debug.c:?)   _raw_spin_trylock (include/linux/spinlock_api_smp.h:89 kernel/locking/spinlock.c:138)   __free_frozen_pages (mm/page_alloc.c:2973)   ___free_pages (mm/page_alloc.c:5295)   __free_pages (mm/page_alloc.c:5334)   tlb_remove_table_rcu (include/linux/mm.h:? include/linux/mm.h:3122 include/asm-generic/tlb.h:220 mm/mmu_gather.c:227 mm/mmu_gather.c:290)   ? __cfi_tlb_remove_table_rcu (mm/mmu_gather.c:289)   ? rcu_core (kernel/rcu/tree.c:?)   rcu_core (include/linux/rcupdate.h:341 kernel/rcu/tree.c:2607 kernel/rcu/tree.c:2861)   rcu_core_si (kernel/rcu/tree.c:2879)   handle_softirqs (arch/x86/include/asm/jump_label.h:36 include/trace/events/irq.h:142 kernel/softirq.c:623)   __irq_exit_rcu (arch/x86/include/asm/jump_label.h:36 kernel/softirq.c:725)   irq_exit_rcu (kernel/softirq.c:741)   sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1052)   </IRQ>   <TASK>  RIP: 0010:_raw_spin_unlock_irqrestore (arch/x86/include/asm/preempt.h:95 include/linux/spinlock_api_smp.h:152 kernel/locking/spinlock.c:194)   free_pcppages_bulk (mm/page_alloc.c:1494)   drain_pages_zone (include/linux/spinlock.h:391 mm/page_alloc.c:2632)   __drain_all_pages (mm/page_alloc.c:2731)   drain_all_pages (mm/page_alloc.c:2747)   kcompactd (mm/compaction.c:3115)   kthread (kernel/kthread.c:465)   ? __cfi_kcompactd (mm/compaction.c:3166)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork (arch/x86/kernel/process.c:164)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork_asm (arch/x86/entry/entry_64.S:255)   </TASK>  Matthew has analyzed the report and identified that in drain_page_zone() we are in a section protected by spin_lock(&pcp->lock) and then get an interrupt that attempts spin_trylock() on the same lock.  The code is designed to work this way without disabling IRQs and occasionally fail the trylock with a fallback.  However, the SMP=n spinlock implementation assumes spin_trylock() will always succeed, and thus it's normally a no-op.  Here the enabled lock debugging catches the problem, but otherwise it could cause a corruption of the pcp structure.  The problem has been introduced by commit 574907741599 (\"mm/page_alloc: leave IRQs enabled for per-cpu page allocations\").  The pcp locking scheme recognizes the need for disabling IRQs to prevent nesting spin_trylock() sections on SMP=n, but the need to prevent the nesting in spin_lock() has not been recognized.  Fix it by introducing local wrappers that change the spin_lock() to spin_lock_iqsave() with SMP=n and use them in all places that do spin_lock(&pcp->lock).  [vbabka@suse.cz: add pcp_ prefix to the spin_lock_irqsave wrappers, per Steven]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71186",
                        "url": "https://ubuntu.com/security/CVE-2025-71186",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: stm32: dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23078",
                        "url": "https://ubuntu.com/security/CVE-2026-23078",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: scarlett2: Fix buffer overflow in config retrieval  The scarlett2_usb_get_config() function has a logic error in the endianness conversion code that can cause buffer overflows when count > 1.  The code checks `if (size == 2)` where `size` is the total buffer size in bytes, then loops `count` times treating each element as u16 (2 bytes). This causes the loop to access `count * 2` bytes when the buffer only has `size` bytes allocated.  Fix by checking the element size (config_item->size) instead of the total buffer size. This ensures the endianness conversion matches the actual element type.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23142",
                        "url": "https://ubuntu.com/security/CVE-2026-23142",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs-scheme: cleanup access_pattern subdirs on scheme dir setup failure  When a DAMOS-scheme DAMON sysfs directory setup fails after setup of access_pattern/ directory, subdirectories of access_pattern/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23075",
                        "url": "https://ubuntu.com/security/CVE-2026-23075",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: esd_usb: esd_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In esd_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback esd_usb_read_bulk_callback(), the URBs are processed and resubmitted. In esd_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in esd_usb_close().  Fix the memory leak by anchoring the URB in the esd_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68725",
                        "url": "https://ubuntu.com/security/CVE-2025-68725",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Do not let BPF test infra emit invalid GSO types to stack  Yinhao et al. reported that their fuzzer tool was able to trigger a skb_warn_bad_offload() from netif_skb_features() -> gso_features_check(). When a BPF program - triggered via BPF test infra - pushes the packet to the loopback device via bpf_clone_redirect() then mentioned offload warning can be seen. GSO-related features are then rightfully disabled.  We get into this situation due to convert___skb_to_skb() setting gso_segs and gso_size but not gso_type. Technically, it makes sense that this warning triggers since the GSO properties are malformed due to the gso_type. Potentially, the gso_type could be marked non-trustworthy through setting it at least to SKB_GSO_DODGY without any other specific assumptions, but that also feels wrong given we should not go further into the GSO engine in the first place.  The checks were added in 121d57af308d (\"gso: validate gso_type in GSO handlers\") because there were malicious (syzbot) senders that combine a protocol with a non-matching gso_type. If we would want to drop such packets, gso_features_check() currently only returns feature flags via netif_skb_features(), so one location for potentially dropping such skbs could be validate_xmit_unreadable_skb(), but then otoh it would be an additional check in the fast-path for a very corner case. Given bpf_clone_redirect() is the only place where BPF test infra could emit such packets, lets reject them right there.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23097",
                        "url": "https://ubuntu.com/security/CVE-2026-23097",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  migrate: correct lock ordering for hugetlb file folios  Syzbot has found a deadlock (analyzed by Lance Yang):  1) Task (5749): Holds folio_lock, then tries to acquire i_mmap_rwsem(read lock). 2) Task (5754): Holds i_mmap_rwsem(write lock), then tries to acquire folio_lock.  migrate_pages()   -> migrate_hugetlbs()     -> unmap_and_move_huge_page()     <- Takes folio_lock!       -> remove_migration_ptes()         -> __rmap_walk_file()           -> i_mmap_lock_read()       <- Waits for i_mmap_rwsem(read lock)!  hugetlbfs_fallocate()   -> hugetlbfs_punch_hole()           <- Takes i_mmap_rwsem(write lock)!     -> hugetlbfs_zero_partial_page()      -> filemap_lock_hugetlb_folio()       -> filemap_lock_folio()         -> __filemap_get_folio        <- Waits for folio_lock!  The migration path is the one taking locks in the wrong order according to the documentation at the top of mm/rmap.c.  So expand the scope of the existing i_mmap_lock to cover the calls to remove_migration_ptes() too.  This is (mostly) how it used to be after commit c0d0381ade79.  That was removed by 336bf30eb765 for both file & anon hugetlb pages when it should only have been removed for anon hugetlb pages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23108",
                        "url": "https://ubuntu.com/security/CVE-2026-23108",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: usb_8dev: usb_8dev_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In usb_8dev_open() -> usb_8dev_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback usb_8dev_read_bulk_callback(), the URBs are processed and resubmitted. In usb_8dev_close() -> unlink_all_urbs() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the usb_8dev_read_bulk_callback() to the priv->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23080",
                        "url": "https://ubuntu.com/security/CVE-2026-23080",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: mcba_usb: mcba_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In mcba_usb_probe() -> mcba_usb_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback mcba_usb_read_bulk_callback(), the URBs are processed and resubmitted. In mcba_usb_close() -> mcba_urb_unlink() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the mcba_usb_read_bulk_callback()to the priv->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23061",
                        "url": "https://ubuntu.com/security/CVE-2026-23061",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In kvaser_usb_set_{,data_}bittiming() -> kvaser_usb_setup_rx_urbs(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback kvaser_usb_read_bulk_callback(), the URBs are processed and resubmitted. In kvaser_usb_remove_interfaces() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the kvaser_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23058",
                        "url": "https://ubuntu.com/security/CVE-2026-23058",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In ems_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback ems_usb_read_bulk_callback(), the URBs are processed and resubmitted. In ems_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in ems_usb_close().  Fix the memory leak by anchoring the URB in the ems_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23085",
                        "url": "https://ubuntu.com/security/CVE-2026-23085",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/gic-v3-its: Avoid truncating memory addresses  On 32-bit machines with CONFIG_ARM_LPAE, it is possible for lowmem allocations to be backed by addresses physical memory above the 32-bit address limit, as found while experimenting with larger VMSPLIT configurations.  This caused the qemu virt model to crash in the GICv3 driver, which allocates the 'itt' object using GFP_KERNEL. Since all memory below the 4GB physical address limit is in ZONE_DMA in this configuration, kmalloc() defaults to higher addresses for ZONE_NORMAL, and the ITS driver stores the physical address in a 32-bit 'unsigned long' variable.  Change the itt_addr variable to the correct phys_addr_t type instead, along with all other variables in this driver that hold a physical address.  The gicv5 driver correctly uses u64 variables, while all other irqchip drivers don't call virt_to_phys or similar interfaces. It's expected that other device drivers have similar issues, but fixing this one is sufficient for booting a virtio based guest.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23116",
                        "url": "https://ubuntu.com/security/CVE-2026-23116",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu  For i.MX8MQ platform, the ADB in the VPUMIX domain has no separate reset and clock enable bits, but is ungated and reset together with the VPUs. So we can't reset G1 or G2 separately, it may led to the system hang. Remove rst_mask and clk_mask of imx8mq_vpu_blk_ctl_domain_data. Let imx8mq_vpu_power_notifier() do really vpu reset.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23098",
                        "url": "https://ubuntu.com/security/CVE-2026-23098",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: fix double-free in nr_route_frame()  In nr_route_frame(), old_skb is immediately freed without checking if nr_neigh->ax25 pointer is NULL. Therefore, if nr_neigh->ax25 is NULL, the caller function will free old_skb again, causing a double-free bug.  Therefore, to prevent this, we need to modify it to check whether nr_neigh->ax25 is NULL before freeing old_skb.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23063",
                        "url": "https://ubuntu.com/security/CVE-2026-23063",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: ensure safe queue release with state management  Directly calling `put_queue` carries risks since it cannot guarantee that resources of `uacce_queue` have been fully released beforehand. So adding a `stop_queue` operation for the UACCE_CMD_PUT_Q command and leaving the `put_queue` operation to the final resource release ensures safety.  Queue states are defined as follows: - UACCE_Q_ZOMBIE: Initial state - UACCE_Q_INIT: After opening `uacce` - UACCE_Q_STARTED: After `start` is issued via `ioctl`  When executing `poweroff -f` in virt while accelerator are still working, `uacce_fops_release` and `uacce_remove` may execute concurrently. This can cause `uacce_put_queue` within `uacce_fops_release` to access a NULL `ops` pointer. Therefore, add state checks to prevent accessing freed pointers.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23056",
                        "url": "https://ubuntu.com/security/CVE-2026-23056",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: implement mremap in uacce_vm_ops to return -EPERM  The current uacce_vm_ops does not support the mremap operation of vm_operations_struct. Implement .mremap to return -EPERM to remind users.  The reason we need to explicitly disable mremap is that when the driver does not implement .mremap, it uses the default mremap method. This could lead to a risk scenario:  An application might first mmap address p1, then mremap to p2, followed by munmap(p1), and finally munmap(p2). Since the default mremap copies the original vma's vm_private_data (i.e., q) to the new vma, both munmap operations would trigger vma_close, causing q->qfr to be freed twice(qfr will be set to null here, so repeated release is ok).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23094",
                        "url": "https://ubuntu.com/security/CVE-2026-23094",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix isolate sysfs check condition  uacce supports the device isolation feature. If the driver implements the isolate_err_threshold_read and isolate_err_threshold_write callback functions, uacce will create sysfs files now. Users can read and configure the isolation policy through sysfs. Currently, sysfs files are created as long as either isolate_err_threshold_read or isolate_err_threshold_write callback functions are present.  However, accessing a non-existent callback function may cause the system to crash. Therefore, intercept the creation of sysfs if neither read nor write exists; create sysfs if either is supported, but intercept unsupported operations at the call site.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23096",
                        "url": "https://ubuntu.com/security/CVE-2026-23096",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix cdev handling in the cleanup path  When cdev_device_add fails, it internally releases the cdev memory, and if cdev_device_del is then executed, it will cause a hang error. To fix it, we check the return value of cdev_device_add() and clear uacce->cdev to avoid calling cdev_device_del in the uacce_remove.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23091",
                        "url": "https://ubuntu.com/security/CVE-2026-23091",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  intel_th: fix device leak on output open()  Make sure to drop the reference taken when looking up the th device during output device open() on errors and on close().  Note that a recent commit fixed the leak in a couple of open() error paths but not all of them, and the reference is still leaking on successful open().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23088",
                        "url": "https://ubuntu.com/security/CVE-2026-23088",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Fix crash on synthetic stacktrace field usage  When creating a synthetic event based on an existing synthetic event that had a stacktrace field and the new synthetic event used that field a kernel crash occurred:   ~# cd /sys/kernel/tracing  ~# echo 's:stack unsigned long stack[];' > dynamic_events  ~# echo 'hist:keys=prev_pid:s0=common_stacktrace if prev_state & 3' >> events/sched/sched_switch/trigger  ~# echo 'hist:keys=next_pid:s1=$s0:onmatch(sched.sched_switch).trace(stack,$s1)' >> events/sched/sched_switch/trigger  The above creates a synthetic event that takes a stacktrace when a task schedules out in a non-running state and passes that stacktrace to the sched_switch event when that task schedules back in. It triggers the \"stack\" synthetic event that has a stacktrace as its field (called \"stack\").   ~# echo 's:syscall_stack s64 id; unsigned long stack[];' >> dynamic_events  ~# echo 'hist:keys=common_pid:s2=stack' >> events/synthetic/stack/trigger  ~# echo 'hist:keys=common_pid:s3=$s2,i0=id:onmatch(synthetic.stack).trace(syscall_stack,$i0,$s3)' >> events/raw_syscalls/sys_exit/trigger  The above makes another synthetic event called \"syscall_stack\" that attaches the first synthetic event (stack) to the sys_exit trace event and records the stacktrace from the stack event with the id of the system call that is exiting.  When enabling this event (or using it in a historgram):   ~# echo 1 > events/synthetic/syscall_stack/enable  Produces a kernel crash!   BUG: unable to handle page fault for address: 0000000000400010  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP PTI  CPU: 6 UID: 0 PID: 1257 Comm: bash Not tainted 6.16.3+deb14-amd64 #1 PREEMPT(lazy)  Debian 6.16.3-1  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:trace_event_raw_event_synth+0x90/0x380  Code: c5 00 00 00 00 85 d2 0f 84 e1 00 00 00 31 db eb 34 0f 1f 00 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 <49> 8b 04 24 48 83 c3 01 8d 0c c5 08 00 00 00 01 cd 41 3b 5d 40 0f  RSP: 0018:ffffd2670388f958 EFLAGS: 00010202  RAX: ffff8ba1065cc100 RBX: 0000000000000000 RCX: 0000000000000000  RDX: 0000000000000001 RSI: fffff266ffda7b90 RDI: ffffd2670388f9b0  RBP: 0000000000000010 R08: ffff8ba104e76000 R09: ffffd2670388fa50  R10: ffff8ba102dd42e0 R11: ffffffff9a908970 R12: 0000000000400010  R13: ffff8ba10a246400 R14: ffff8ba10a710220 R15: fffff266ffda7b90  FS:  00007fa3bc63f740(0000) GS:ffff8ba2e0f48000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000400010 CR3: 0000000107f9e003 CR4: 0000000000172ef0  Call Trace:   <TASK>   ? __tracing_map_insert+0x208/0x3a0   action_trace+0x67/0x70   event_hist_trigger+0x633/0x6d0   event_triggers_call+0x82/0x130   trace_event_buffer_commit+0x19d/0x250   trace_event_raw_event_sys_exit+0x62/0xb0   syscall_exit_work+0x9d/0x140   do_syscall_64+0x20a/0x2f0   ? trace_event_raw_event_sched_switch+0x12b/0x170   ? save_fpregs_to_fpstate+0x3e/0x90   ? _raw_spin_unlock+0xe/0x30   ? finish_task_switch.isra.0+0x97/0x2c0   ? __rseq_handle_notify_resume+0xad/0x4c0   ? __schedule+0x4b8/0xd00   ? restore_fpregs_from_fpstate+0x3c/0x90   ? switch_fpu_return+0x5b/0xe0   ? do_syscall_64+0x1ef/0x2f0   ? do_fault+0x2e9/0x540   ? __handle_mm_fault+0x7d1/0xf70   ? count_memcg_events+0x167/0x1d0   ? handle_mm_fault+0x1d7/0x2e0   ? do_user_addr_fault+0x2c3/0x7f0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  The reason is that the stacktrace field is not labeled as such, and is treated as a normal field and not as a dynamic event that it is.  In trace_event_raw_event_synth() the event is field is still treated as a dynamic array, but the retrieval of the data is considered a normal field, and the reference is just the meta data:  // Meta data is retrieved instead of a dynamic array ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23090",
                        "url": "https://ubuntu.com/security/CVE-2026-23090",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  slimbus: core: fix device reference leak on report present  Slimbus devices can be allocated dynamically upon reception of report-present messages.  Make sure to drop the reference taken when looking up already registered devices.  Note that this requires taking an extra reference in case the device has not yet been registered and has to be allocated.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23128",
                        "url": "https://ubuntu.com/security/CVE-2026-23128",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64: Set __nocfi on swsusp_arch_resume()  A DABT is reported[1] on an android based system when resume from hiberate. This happens because swsusp_arch_suspend_exit() is marked with SYM_CODE_*() and does not have a CFI hash, but swsusp_arch_resume() will attempt to verify the CFI hash when calling a copy of swsusp_arch_suspend_exit().  Given that there's an existing requirement that the entrypoint to swsusp_arch_suspend_exit() is the first byte of the .hibernate_exit.text section, we cannot fix this by marking swsusp_arch_suspend_exit() with SYM_FUNC_*(). The simplest fix for now is to disable the CFI check in swsusp_arch_resume().  Mark swsusp_arch_resume() as __nocfi to disable the CFI check.  [1] [   22.991934][    T1] Unable to handle kernel paging request at virtual address 0000000109170ffc [   22.991934][    T1] Mem abort info: [   22.991934][    T1]   ESR = 0x0000000096000007 [   22.991934][    T1]   EC = 0x25: DABT (current EL), IL = 32 bits [   22.991934][    T1]   SET = 0, FnV = 0 [   22.991934][    T1]   EA = 0, S1PTW = 0 [   22.991934][    T1]   FSC = 0x07: level 3 translation fault [   22.991934][    T1] Data abort info: [   22.991934][    T1]   ISV = 0, ISS = 0x00000007, ISS2 = 0x00000000 [   22.991934][    T1]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [   22.991934][    T1]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [   22.991934][    T1] [0000000109170ffc] user address but active_mm is swapper [   22.991934][    T1] Internal error: Oops: 0000000096000007 [#1] PREEMPT SMP [   22.991934][    T1] Dumping ftrace buffer: [   22.991934][    T1]    (ftrace buffer empty) [   22.991934][    T1] Modules linked in: [   22.991934][    T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.6.98-android15-8-g0b1d2aee7fc3-dirty-4k #1 688c7060a825a3ac418fe53881730b355915a419 [   22.991934][    T1] Hardware name: Unisoc UMS9360-base Board (DT) [   22.991934][    T1] pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [   22.991934][    T1] pc : swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1] lr : swsusp_arch_resume+0x294/0x344 [   22.991934][    T1] sp : ffffffc08006b960 [   22.991934][    T1] x29: ffffffc08006b9c0 x28: 0000000000000000 x27: 0000000000000000 [   22.991934][    T1] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000820 [   22.991934][    T1] x23: ffffffd0817e3000 x22: ffffffd0817e3000 x21: 0000000000000000 [   22.991934][    T1] x20: ffffff8089171000 x19: ffffffd08252c8c8 x18: ffffffc080061058 [   22.991934][    T1] x17: 00000000529c6ef0 x16: 00000000529c6ef0 x15: 0000000000000004 [   22.991934][    T1] x14: ffffff8178c88000 x13: 0000000000000006 x12: 0000000000000000 [   22.991934][    T1] x11: 0000000000000015 x10: 0000000000000001 x9 : ffffffd082533000 [   22.991934][    T1] x8 : 0000000109171000 x7 : 205b5d3433393139 x6 : 392e32322020205b [   22.991934][    T1] x5 : 000000010916f000 x4 : 000000008164b000 x3 : ffffff808a4e0530 [   22.991934][    T1] x2 : ffffffd08058e784 x1 : 0000000082326000 x0 : 000000010a283000 [   22.991934][    T1] Call trace: [   22.991934][    T1]  swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1]  hibernation_restore+0x158/0x18c [   22.991934][    T1]  load_image_and_restore+0xb0/0xec [   22.991934][    T1]  software_resume+0xf4/0x19c [   22.991934][    T1]  software_resume_initcall+0x34/0x78 [   22.991934][    T1]  do_one_initcall+0xe8/0x370 [   22.991934][    T1]  do_initcall_level+0xc8/0x19c [   22.991934][    T1]  do_initcalls+0x70/0xc0 [   22.991934][    T1]  do_basic_setup+0x1c/0x28 [   22.991934][    T1]  kernel_init_freeable+0xe0/0x148 [   22.991934][    T1]  kernel_init+0x20/0x1a8 [   22.991934][    T1]  ret_from_fork+0x10/0x20 [   22.991934][    T1] Code: a9400a61 f94013e0 f9438923 f9400a64 (b85fc110)  [catalin.marinas@arm.com: commit log updated by Mark Rutland]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23107",
                        "url": "https://ubuntu.com/security/CVE-2026-23107",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Allocate SSVE storage when restoring ZA  The code to restore a ZA context doesn't attempt to allocate the task's sve_state before setting TIF_SME. Consequently, restoring a ZA context can place a task into an invalid state where TIF_SME is set but the task's sve_state is NULL.  In legitimate but uncommon cases where the ZA signal context was NOT created by the kernel in the context of the same task (e.g. if the task is saved/restored with something like CRIU), we have no guarantee that sve_state had been allocated previously. In these cases, userspace can enter streaming mode without trapping while sve_state is NULL, causing a later NULL pointer dereference when the kernel attempts to store the register state:  | # ./sigreturn-za | Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 | Mem abort info: |   ESR = 0x0000000096000046 |   EC = 0x25: DABT (current EL), IL = 32 bits |   SET = 0, FnV = 0 |   EA = 0, S1PTW = 0 |   FSC = 0x06: level 2 translation fault | Data abort info: |   ISV = 0, ISS = 0x00000046, ISS2 = 0x00000000 |   CM = 0, WnR = 1, TnD = 0, TagAccess = 0 |   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 | user pgtable: 4k pages, 52-bit VAs, pgdp=0000000101f47c00 | [0000000000000000] pgd=08000001021d8403, p4d=0800000102274403, pud=0800000102275403, pmd=0000000000000000 | Internal error: Oops: 0000000096000046 [#1]  SMP | Modules linked in: | CPU: 0 UID: 0 PID: 153 Comm: sigreturn-za Not tainted 6.19.0-rc1 #1 PREEMPT | Hardware name: linux,dummy-virt (DT) | pstate: 214000c9 (nzCv daIF +PAN -UAO -TCO +DIT -SSBS BTYPE=--) | pc : sve_save_state+0x4/0xf0 | lr : fpsimd_save_user_state+0xb0/0x1c0 | sp : ffff80008070bcc0 | x29: ffff80008070bcc0 x28: fff00000c1ca4c40 x27: 63cfa172fb5cf658 | x26: fff00000c1ca5228 x25: 0000000000000000 x24: 0000000000000000 | x23: 0000000000000000 x22: fff00000c1ca4c40 x21: fff00000c1ca4c40 | x20: 0000000000000020 x19: fff00000ff6900f0 x18: 0000000000000000 | x17: fff05e8e0311f000 x16: 0000000000000000 x15: 028fca8f3bdaf21c | x14: 0000000000000212 x13: fff00000c0209f10 x12: 0000000000000020 | x11: 0000000000200b20 x10: 0000000000000000 x9 : fff00000ff69dcc0 | x8 : 00000000000003f2 x7 : 0000000000000001 x6 : fff00000c1ca5b48 | x5 : fff05e8e0311f000 x4 : 0000000008000000 x3 : 0000000000000000 | x2 : 0000000000000001 x1 : fff00000c1ca5970 x0 : 0000000000000440 | Call trace: |  sve_save_state+0x4/0xf0 (P) |  fpsimd_thread_switch+0x48/0x198 |  __switch_to+0x20/0x1c0 |  __schedule+0x36c/0xce0 |  schedule+0x34/0x11c |  exit_to_user_mode_loop+0x124/0x188 |  el0_interrupt+0xc8/0xd8 |  __el0_irq_handler_common+0x18/0x24 |  el0t_64_irq_handler+0x10/0x1c |  el0t_64_irq+0x198/0x19c | Code: 54000040 d51b4408 d65f03c0 d503245f (e5bb5800) | ---[ end trace 0000000000000000 ]---  Fix this by having restore_za_context() ensure that the task's sve_state is allocated, matching what we do when taking an SME trap. Any live SVE/SSVE state (which is restored earlier from a separate signal context) must be preserved, and hence this is not zeroed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23073",
                        "url": "https://ubuntu.com/security/CVE-2026-23073",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rsi: Fix memory corruption due to not set vif driver data size  The struct ieee80211_vif contains trailing space for vif driver data, when struct ieee80211_vif is allocated, the total memory size that is allocated is sizeof(struct ieee80211_vif) + size of vif driver data. The size of vif driver data is set by each WiFi driver as needed.  The RSI911x driver does not set vif driver data size, no trailing space for vif driver data is therefore allocated past struct ieee80211_vif . The RSI911x driver does however use the vif driver data to store its vif driver data structure \"struct vif_priv\". An access to vif->drv_priv leads to access out of struct ieee80211_vif bounds and corruption of some memory.  In case of the failure observed locally, rsi_mac80211_add_interface() would write struct vif_priv *vif_info = (struct vif_priv *)vif->drv_priv; vif_info->vap_id = vap_idx. This write corrupts struct fq_tin member struct list_head new_flows . The flow = list_first_entry(head, struct fq_flow, flowchain); in fq_tin_reset() then reports non-NULL bogus address, which when accessed causes a crash.  The trigger is very simple, boot the machine with init=/bin/sh , mount devtmpfs, sysfs, procfs, and then do \"ip link set wlan0 up\", \"sleep 1\", \"ip link set wlan0 down\" and the crash occurs.  Fix this by setting the correct size of vif driver data, which is the size of \"struct vif_priv\", so that memory is allocated and the driver can store its driver data in it, instead of corrupting memory around it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23135",
                        "url": "https://ubuntu.com/security/CVE-2026-23135",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath12k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23133",
                        "url": "https://ubuntu.com/security/CVE-2026-23133",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath10k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71200",
                        "url": "https://ubuntu.com/security/CVE-2025-71200",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: sdhci-of-dwcmshc: Prevent illegal clock reduction in HS200/HS400 mode  When operating in HS200 or HS400 timing modes, reducing the clock frequency below 52MHz will lead to link broken as the Rockchip DWC MSHC controller requires maintaining a minimum clock of 52MHz in these modes.  Add a check to prevent illegal clock reduction through debugfs:  root@debian:/# echo 50000000 > /sys/kernel/debug/mmc0/clock root@debian:/# [   30.090146] mmc0: running CQE recovery mmc0: cqhci: Failed to halt mmc0: cqhci: spurious TCN for tag 0 WARNING: drivers/mmc/host/cqhci-core.c:797 at cqhci_irq+0x254/0x818, CPU#1: kworker/1:0H/24 Modules linked in: CPU: 1 UID: 0 PID: 24 Comm: kworker/1:0H Not tainted 6.19.0-rc1-00001-g09db0998649d-dirty #204 PREEMPT Hardware name: Rockchip RK3588 EVB1 V10 Board (DT) Workqueue: kblockd blk_mq_run_work_fn pstate: 604000c9 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : cqhci_irq+0x254/0x818 lr : cqhci_irq+0x254/0x818 ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23089",
                        "url": "https://ubuntu.com/security/CVE-2026-23089",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix use-after-free in snd_usb_mixer_free()  When snd_usb_create_mixer() fails, snd_usb_mixer_free() frees mixer->id_elems but the controls already added to the card still reference the freed memory. Later when snd_card_register() runs, the OSS mixer layer calls their callbacks and hits a use-after-free read.  Call trace:   get_ctl_value+0x63f/0x820 sound/usb/mixer.c:411   get_min_max_with_quirks.isra.0+0x240/0x1f40 sound/usb/mixer.c:1241   mixer_ctl_feature_info+0x26b/0x490 sound/usb/mixer.c:1381   snd_mixer_oss_build_test+0x174/0x3a0 sound/core/oss/mixer_oss.c:887   ...   snd_card_register+0x4ed/0x6d0 sound/core/init.c:923   usb_audio_probe+0x5ef/0x2a90 sound/usb/card.c:1025  Fix by calling snd_ctl_remove() for all mixer controls before freeing id_elems. We save the next pointer first because snd_ctl_remove() frees the current element.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23076",
                        "url": "https://ubuntu.com/security/CVE-2026-23076",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ctxfi: Fix potential OOB access in audio mixer handling  In the audio mixer handling code of ctxfi driver, the conf field is used as a kind of loop index, and it's referred in the index callbacks (amixer_index() and sum_index()).  As spotted recently by fuzzers, the current code causes OOB access at those functions. | UBSAN: array-index-out-of-bounds in /build/reproducible-path/linux-6.17.8/sound/pci/ctxfi/ctamixer.c:347:48 | index 8 is out of range for type 'unsigned char [8]'  After the analysis, the cause was found to be the lack of the proper (re-)initialization of conj field.  This patch addresses those OOB accesses by adding the proper initializations of the loop indices.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71199",
                        "url": "https://ubuntu.com/security/CVE-2025-71199",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc driver  at91_adc_interrupt can call at91_adc_touch_data_handler function to start the work by schedule_work(&st->touch_st.workq).  If we remove the module which will call at91_adc_remove to make cleanup, it will free indio_dev through iio_device_unregister but quite a bit later. While the work mentioned above will be used. The sequence of operations that may lead to a UAF bug is as follows:  CPU0                                      CPU1                                       | at91_adc_workq_handler at91_adc_remove                      | iio_device_unregister(indio_dev)     | //free indio_dev a bit later         |                                      | iio_push_to_buffers(indio_dev)                                      | //use indio_dev  Fix it by ensuring that the work is canceled before proceeding with the cleanup in at91_adc_remove.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23101",
                        "url": "https://ubuntu.com/security/CVE-2026-23101",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  leds: led-class: Only Add LED to leds_list when it is fully ready  Before this change the LED was added to leds_list before led_init_core() gets called adding it the list before led_classdev.set_brightness_work gets initialized.  This leaves a window where led_trigger_register() of a LED's default trigger will call led_trigger_set() which calls led_set_brightness() which in turn will end up queueing the *uninitialized* led_classdev.set_brightness_work.  This race gets hit by the lenovo-thinkpad-t14s EC driver which registers 2 LEDs with a default trigger provided by snd_ctl_led.ko in quick succession. The first led_classdev_register() causes an async modprobe of snd_ctl_led to run and that async modprobe manages to exactly hit the window where the second LED is on the leds_list without led_init_core() being called for it, resulting in:   ------------[ cut here ]------------  WARNING: CPU: 11 PID: 5608 at kernel/workqueue.c:4234 __flush_work+0x344/0x390  Hardware name: LENOVO 21N2S01F0B/21N2S01F0B, BIOS N42ET93W (2.23 ) 09/01/2025  ...  Call trace:   __flush_work+0x344/0x390 (P)   flush_work+0x2c/0x50   led_trigger_set+0x1c8/0x340   led_trigger_register+0x17c/0x1c0   led_trigger_register_simple+0x84/0xe8   snd_ctl_led_init+0x40/0xf88 [snd_ctl_led]   do_one_initcall+0x5c/0x318   do_init_module+0x9c/0x2b8   load_module+0x7e0/0x998  Close the race window by moving the adding of the LED to leds_list to after the led_init_core() call.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23064",
                        "url": "https://ubuntu.com/security/CVE-2026-23064",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: act_ife: avoid possible NULL deref  tcf_ife_encode() must make sure ife_encode() does not return NULL.  syzbot reported:  Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]  RIP: 0010:ife_tlv_meta_encode+0x41/0xa0 net/ife/ife.c:166 CPU: 3 UID: 0 PID: 8990 Comm: syz.0.696 Not tainted syzkaller #0 PREEMPT(full) Call Trace:  <TASK>   ife_encode_meta_u32+0x153/0x180 net/sched/act_ife.c:101   tcf_ife_encode net/sched/act_ife.c:841 [inline]   tcf_ife_act+0x1022/0x1de0 net/sched/act_ife.c:877   tc_act include/net/tc_wrapper.h:130 [inline]   tcf_action_exec+0x1c0/0xa20 net/sched/act_api.c:1152   tcf_exts_exec include/net/pkt_cls.h:349 [inline]   mall_classify+0x1a0/0x2a0 net/sched/cls_matchall.c:42   tc_classify include/net/tc_wrapper.h:197 [inline]   __tcf_classify net/sched/cls_api.c:1764 [inline]   tcf_classify+0x7f2/0x1380 net/sched/cls_api.c:1860   multiq_classify net/sched/sch_multiq.c:39 [inline]   multiq_enqueue+0xe0/0x510 net/sched/sch_multiq.c:66   dev_qdisc_enqueue+0x45/0x250 net/core/dev.c:4147   __dev_xmit_skb net/core/dev.c:4262 [inline]   __dev_queue_xmit+0x2998/0x46c0 net/core/dev.c:4798",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23086",
                        "url": "https://ubuntu.com/security/CVE-2026-23086",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: cap TX credit to local buffer size  The virtio transports derives its TX credit directly from peer_buf_alloc, which is set from the remote endpoint's SO_VM_SOCKETS_BUFFER_SIZE value.  On the host side this means that the amount of data we are willing to queue for a connection is scaled by a guest-chosen buffer size, rather than the host's own vsock configuration. A malicious guest can advertise a large buffer and read slowly, causing the host to allocate a correspondingly large amount of sk_buff memory. The same thing would happen in the guest with a malicious host, since virtio transports share the same code base.  Introduce a small helper, virtio_transport_tx_buf_size(), that returns min(peer_buf_alloc, buf_alloc), and use it wherever we consume peer_buf_alloc.  This ensures the effective TX window is bounded by both the peer's advertised buffer and our own buf_alloc (already clamped to buffer_max_size via SO_VM_SOCKETS_BUFFER_MAX_SIZE), so a remote peer cannot force the other to queue more data than allowed by its own vsock settings.  On an unpatched Ubuntu 22.04 host (~64 GiB RAM), running a PoC with 32 guest vsock connections advertising 2 GiB each and reading slowly drove Slab/SUnreclaim from ~0.5 GiB to ~57 GiB; the system only recovered after killing the QEMU process. That said, if QEMU memory is limited with cgroups, the maximum memory used will be limited.  With this patch applied:    Before:     MemFree:        ~61.6 GiB     Slab:           ~142 MiB     SUnreclaim:     ~117 MiB    After 32 high-credit connections:     MemFree:        ~61.5 GiB     Slab:           ~178 MiB     SUnreclaim:     ~152 MiB  Only ~35 MiB increase in Slab/SUnreclaim, no host OOM, and the guest remains responsive.  Compatibility with non-virtio transports:    - VMCI uses the AF_VSOCK buffer knobs to size its queue pairs per     socket based on the local vsk->buffer_* values; the remote side     cannot enlarge those queues beyond what the local endpoint     configured.    - Hyper-V's vsock transport uses fixed-size VMBus ring buffers and     an MTU bound; there is no peer-controlled credit field comparable     to peer_buf_alloc, and the remote endpoint cannot drive in-flight     kernel memory above those ring sizes.    - The loopback path reuses virtio_transport_common.c, so it     naturally follows the same semantics as the virtio transport.  This change is limited to virtio_transport_common.c and thus affects virtio-vsock, vhost-vsock, and loopback, bringing them in line with the \"remote window intersected with local policy\" behaviour that VMCI and Hyper-V already effectively have.  [Stefano: small adjustments after changing the previous patch] [Stefano: tweak the commit message]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23069",
                        "url": "https://ubuntu.com/security/CVE-2026-23069",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: fix potential underflow in virtio_transport_get_credit()  The credit calculation in virtio_transport_get_credit() uses unsigned arithmetic:    ret = vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt);  If the peer shrinks its advertised buffer (peer_buf_alloc) while bytes are in flight, the subtraction can underflow and produce a large positive value, potentially allowing more data to be queued than the peer can handle.  Reuse virtio_transport_has_space() which already handles this case and add a comment to make it clear why we are doing that.  [Stefano: use virtio_transport_has_space() instead of duplicating the code] [Stefano: tweak the commit message]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23119",
                        "url": "https://ubuntu.com/security/CVE-2026-23119",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: provide a net pointer to __skb_flow_dissect()  After 3cbf4ffba5ee (\"net: plumb network namespace into __skb_flow_dissect\") we have to provide a net pointer to __skb_flow_dissect(), either via skb->dev, skb->sk, or a user provided pointer.  In the following case, syzbot was able to cook a bare skb.  WARNING: net/core/flow_dissector.c:1131 at __skb_flow_dissect+0xb57/0x68b0 net/core/flow_dissector.c:1131, CPU#1: syz.2.1418/11053 Call Trace:  <TASK>   bond_flow_dissect drivers/net/bonding/bond_main.c:4093 [inline]   __bond_xmit_hash+0x2d7/0xba0 drivers/net/bonding/bond_main.c:4157   bond_xmit_hash_xdp drivers/net/bonding/bond_main.c:4208 [inline]   bond_xdp_xmit_3ad_xor_slave_get drivers/net/bonding/bond_main.c:5139 [inline]   bond_xdp_get_xmit_slave+0x1fd/0x710 drivers/net/bonding/bond_main.c:5515   xdp_master_redirect+0x13f/0x2c0 net/core/filter.c:4388   bpf_prog_run_xdp include/net/xdp.h:700 [inline]   bpf_test_run+0x6b2/0x7d0 net/bpf/test_run.c:421   bpf_prog_test_run_xdp+0x795/0x10e0 net/bpf/test_run.c:1390   bpf_prog_test_run+0x2c7/0x340 kernel/bpf/syscall.c:4703   __sys_bpf+0x562/0x860 kernel/bpf/syscall.c:6182   __do_sys_bpf kernel/bpf/syscall.c:6274 [inline]   __se_sys_bpf kernel/bpf/syscall.c:6272 [inline]   __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:6272   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xec/0xf80 arch/x86/entry/syscall_64.c:94",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23084",
                        "url": "https://ubuntu.com/security/CVE-2026-23084",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list  When the parameter pmac_id_valid argument of be_cmd_get_mac_from_list() is set to false, the driver may request the PMAC_ID from the firmware of the network card, and this function will store that PMAC_ID at the provided address pmac_id. This is the contract of this function.  However, there is a location within the driver where both pmac_id_valid == false and pmac_id == NULL are being passed. This could result in dereferencing a NULL pointer.  To resolve this issue, it is necessary to pass the address of a stub variable to the function.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23124",
                        "url": "https://ubuntu.com/security/CVE-2026-23124",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: annotate data-race in ndisc_router_discovery()  syzbot found that ndisc_router_discovery() could read and write in6_dev->ra_mtu without holding a lock [1]  This looks fine, IFLA_INET6_RA_MTU is best effort.  Add READ_ONCE()/WRITE_ONCE() to document the race.  Note that we might also reject illegal MTU values (mtu < IPV6_MIN_MTU || mtu > skb->dev->mtu) in a future patch.  [1] BUG: KCSAN: data-race in ndisc_router_discovery / ndisc_router_discovery  read to 0xffff888119809c20 of 4 bytes by task 25817 on cpu 1:   ndisc_router_discovery+0x151d/0x1c90 net/ipv6/ndisc.c:1558   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  write to 0xffff888119809c20 of 4 bytes by task 25816 on cpu 0:   ndisc_router_discovery+0x155a/0x1c90 net/ipv6/ndisc.c:1559   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  value changed: 0x00000000 -> 0xe5400659",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23121",
                        "url": "https://ubuntu.com/security/CVE-2026-23121",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mISDN: annotate data-race around dev->work  dev->work can re read locklessly in mISDN_read() and mISDN_poll(). Add READ_ONCE()/WRITE_ONCE() annotations.  BUG: KCSAN: data-race in mISDN_ioctl / mISDN_read  write to 0xffff88812d848280 of 4 bytes by task 10864 on cpu 1:   misdn_add_timer drivers/isdn/mISDN/timerdev.c:175 [inline]   mISDN_ioctl+0x2fb/0x550 drivers/isdn/mISDN/timerdev.c:233   vfs_ioctl fs/ioctl.c:51 [inline]   __do_sys_ioctl fs/ioctl.c:597 [inline]   __se_sys_ioctl+0xce/0x140 fs/ioctl.c:583   __x64_sys_ioctl+0x43/0x50 fs/ioctl.c:583   x64_sys_call+0x14b0/0x3000 arch/x86/include/generated/asm/syscalls_64.h:17   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88812d848280 of 4 bytes by task 10857 on cpu 0:   mISDN_read+0x1f2/0x470 drivers/isdn/mISDN/timerdev.c:112   do_loop_readv_writev fs/read_write.c:847 [inline]   vfs_readv+0x3fb/0x690 fs/read_write.c:1020   do_readv+0xe7/0x210 fs/read_write.c:1080   __do_sys_readv fs/read_write.c:1165 [inline]   __se_sys_readv fs/read_write.c:1162 [inline]   __x64_sys_readv+0x45/0x50 fs/read_write.c:1162   x64_sys_call+0x2831/0x3000 arch/x86/include/generated/asm/syscalls_64.h:20   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  value changed: 0x00000000 -> 0x00000001",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23126",
                        "url": "https://ubuntu.com/security/CVE-2026-23126",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netdevsim: fix a race issue related to the operation on bpf_bound_progs list  The netdevsim driver lacks a protection mechanism for operations on the bpf_bound_progs list. When the nsim_bpf_create_prog() performs list_add_tail, it is possible that nsim_bpf_destroy_prog() is simultaneously performs list_del. Concurrent operations on the list may lead to list corruption and trigger a kernel crash as follows:  [  417.290971] kernel BUG at lib/list_debug.c:62! [  417.290983] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI [  417.290992] CPU: 10 PID: 168 Comm: kworker/10:1 Kdump: loaded Not tainted 6.19.0-rc5 #1 [  417.291003] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [  417.291007] Workqueue: events bpf_prog_free_deferred [  417.291021] RIP: 0010:__list_del_entry_valid_or_report+0xa7/0xc0 [  417.291034] Code: a8 ff 0f 0b 48 89 fe 48 89 ca 48 c7 c7 48 a1 eb ae e8 ed fb a8 ff 0f 0b 48 89 fe 48 89 c2 48 c7 c7 80 a1 eb ae e8 d9 fb a8 ff <0f> 0b 48 89 d1 48 c7 c7 d0 a1 eb ae 48 89 f2 48 89 c6 e8 c2 fb a8 [  417.291040] RSP: 0018:ffffb16a40807df8 EFLAGS: 00010246 [  417.291046] RAX: 000000000000006d RBX: ffff8e589866f500 RCX: 0000000000000000 [  417.291051] RDX: 0000000000000000 RSI: ffff8e59f7b23180 RDI: ffff8e59f7b23180 [  417.291055] RBP: ffffb16a412c9000 R08: 0000000000000000 R09: 0000000000000003 [  417.291059] R10: ffffb16a40807c80 R11: ffffffffaf9edce8 R12: ffff8e594427ac20 [  417.291063] R13: ffff8e59f7b44780 R14: ffff8e58800b7a05 R15: 0000000000000000 [  417.291074] FS:  0000000000000000(0000) GS:ffff8e59f7b00000(0000) knlGS:0000000000000000 [  417.291079] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [  417.291083] CR2: 00007fc4083efe08 CR3: 00000001c3626006 CR4: 0000000000770ee0 [  417.291088] PKRU: 55555554 [  417.291091] Call Trace: [  417.291096]  <TASK> [  417.291103]  nsim_bpf_destroy_prog+0x31/0x80 [netdevsim] [  417.291154]  __bpf_prog_offload_destroy+0x2a/0x80 [  417.291163]  bpf_prog_dev_bound_destroy+0x6f/0xb0 [  417.291171]  bpf_prog_free_deferred+0x18e/0x1a0 [  417.291178]  process_one_work+0x18a/0x3a0 [  417.291188]  worker_thread+0x27b/0x3a0 [  417.291197]  ? __pfx_worker_thread+0x10/0x10 [  417.291207]  kthread+0xe5/0x120 [  417.291214]  ? __pfx_kthread+0x10/0x10 [  417.291221]  ret_from_fork+0x31/0x50 [  417.291230]  ? __pfx_kthread+0x10/0x10 [  417.291236]  ret_from_fork_asm+0x1a/0x30 [  417.291246]  </TASK>  Add a mutex lock, to prevent simultaneous addition and deletion operations on the list.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23059",
                        "url": "https://ubuntu.com/security/CVE-2026-23059",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Sanitize payload size to prevent member overflow  In qla27xx_copy_fpin_pkt() and qla27xx_copy_multiple_pkt(), the frame_size reported by firmware is used to calculate the copy length into item->iocb. However, the iocb member is defined as a fixed-size 64-byte array within struct purex_item.  If the reported frame_size exceeds 64 bytes, subsequent memcpy calls will overflow the iocb member boundary. While extra memory might be allocated, this cross-member write is unsafe and triggers warnings under CONFIG_FORTIFY_SOURCE.  Fix this by capping total_bytes to the size of the iocb member (64 bytes) before allocation and copying. This ensures all copies remain within the bounds of the destination structure member.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23110",
                        "url": "https://ubuntu.com/security/CVE-2026-23110",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: core: Wake up the error handler when final completions race against each other  The fragile ordering between marking commands completed or failed so that the error handler only wakes when the last running command completes or times out has race conditions. These race conditions can cause the SCSI layer to fail to wake the error handler, leaving I/O through the SCSI host stuck as the error state cannot advance.  First, there is an memory ordering issue within scsi_dec_host_busy(). The write which clears SCMD_STATE_INFLIGHT may be reordered with reads counting in scsi_host_busy(). While the local CPU will see its own write, reordering can allow other CPUs in scsi_dec_host_busy() or scsi_eh_inc_host_failed() to see a raised busy count, causing no CPU to see a host busy equal to the host_failed count.  This race condition can be prevented with a memory barrier on the error path to force the write to be visible before counting host busy commands.  Second, there is a general ordering issue with scsi_eh_inc_host_failed(). By counting busy commands before incrementing host_failed, it can race with a final command in scsi_dec_host_busy(), such that scsi_dec_host_busy() does not see host_failed incremented but scsi_eh_inc_host_failed() counts busy commands before SCMD_STATE_INFLIGHT is cleared by scsi_dec_host_busy(), resulting in neither waking the error handler task.  This needs the call to scsi_host_busy() to be moved after host_failed is incremented to close the race condition.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23071",
                        "url": "https://ubuntu.com/security/CVE-2026-23071",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: Fix race condition in hwspinlock irqsave routine  Previously, the address of the shared member '&map->spinlock_flags' was passed directly to 'hwspin_lock_timeout_irqsave'. This creates a race condition where multiple contexts contending for the lock could overwrite the shared flags variable, potentially corrupting the state for the current lock owner.  Fix this by using a local stack variable 'flags' to store the IRQ state temporarily.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23068",
                        "url": "https://ubuntu.com/security/CVE-2026-23068",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: spi-sprd-adi: Fix double free in probe error path  The driver currently uses spi_alloc_host() to allocate the controller but registers it using devm_spi_register_controller().  If devm_register_restart_handler() fails, the code jumps to the put_ctlr label and calls spi_controller_put(). However, since the controller was registered via a devm function, the device core will automatically call spi_controller_put() again when the probe fails. This results in a double-free of the spi_controller structure.  Fix this by switching to devm_spi_alloc_host() and removing the manual spi_controller_put() call.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23123",
                        "url": "https://ubuntu.com/security/CVE-2026-23123",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  interconnect: debugfs: initialize src_node and dst_node to empty strings  The debugfs_create_str() API assumes that the string pointer is either NULL or points to valid kmalloc() memory. Leaving the pointer uninitialized can cause problems.  Initialize src_node and dst_node to empty strings before creating the debugfs entries to guarantee that reads and writes are safe.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71198",
                        "url": "https://ubuntu.com/security/CVE-2025-71198",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event detection  The st_lsm6dsx_acc_channels array of struct iio_chan_spec has a non-NULL event_spec field, indicating support for IIO events. However, event detection is not supported for all sensors, and if userspace tries to configure accelerometer wakeup events on a sensor device that does not support them (e.g. LSM6DS0), st_lsm6dsx_write_event() dereferences a NULL pointer when trying to write to the wakeup register. Define an additional struct iio_chan_spec array whose members have a NULL event_spec field, and use this array instead of st_lsm6dsx_acc_channels for sensors without event detection capability.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23113",
                        "url": "https://ubuntu.com/security/CVE-2026-23113",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop  Currently this is checked before running the pending work. Normally this is quite fine, as work items either end up blocking (which will create a new worker for other items), or they complete fairly quickly. But syzbot reports an issue where io-wq takes seemingly forever to exit, and with a bit of debugging, this turns out to be because it queues a bunch of big (2GB - 4096b) reads with a /dev/msr* file. Since this file type doesn't support ->read_iter(), loop_rw_iter() ends up handling them. Each read returns 16MB of data read, which takes 20 (!!) seconds. With a bunch of these pending, processing the whole chain can take a long time. Easily longer than the syzbot uninterruptible sleep timeout of 140 seconds. This then triggers a complaint off the io-wq exit path:  INFO: task syz.4.135:6326 blocked for more than 143 seconds.       Not tainted syzkaller #0       Blocked by coredump. \"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\" disables this message. task:syz.4.135       state:D stack:26824 pid:6326  tgid:6324  ppid:5957  task_flags:0x400548 flags:0x00080000 Call Trace:  <TASK>  context_switch kernel/sched/core.c:5256 [inline]  __schedule+0x1139/0x6150 kernel/sched/core.c:6863  __schedule_loop kernel/sched/core.c:6945 [inline]  schedule+0xe7/0x3a0 kernel/sched/core.c:6960  schedule_timeout+0x257/0x290 kernel/time/sleep_timeout.c:75  do_wait_for_common kernel/sched/completion.c:100 [inline]  __wait_for_common+0x2fc/0x4e0 kernel/sched/completion.c:121  io_wq_exit_workers io_uring/io-wq.c:1328 [inline]  io_wq_put_and_exit+0x271/0x8a0 io_uring/io-wq.c:1356  io_uring_clean_tctx+0x10d/0x190 io_uring/tctx.c:203  io_uring_cancel_generic+0x69c/0x9a0 io_uring/cancel.c:651  io_uring_files_cancel include/linux/io_uring.h:19 [inline]  do_exit+0x2ce/0x2bd0 kernel/exit.c:911  do_group_exit+0xd3/0x2a0 kernel/exit.c:1112  get_signal+0x2671/0x26d0 kernel/signal.c:3034  arch_do_signal_or_restart+0x8f/0x7e0 arch/x86/kernel/signal.c:337  __exit_to_user_mode_loop kernel/entry/common.c:41 [inline]  exit_to_user_mode_loop+0x8c/0x540 kernel/entry/common.c:75  __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]  syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]  syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]  syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]  do_syscall_64+0x4ee/0xf80 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa02738f749 RSP: 002b:00007fa0281ae0e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca RAX: fffffffffffffe00 RBX: 00007fa0275e6098 RCX: 00007fa02738f749 RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007fa0275e6098 RBP: 00007fa0275e6090 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fa0275e6128 R14: 00007fff14e4fcb0 R15: 00007fff14e4fd98  There's really nothing wrong here, outside of processing these reads will take a LONG time. However, we can speed up the exit by checking the IO_WQ_BIT_EXIT inside the io_worker_handle_work() loop, as syzbot will exit the ring after queueing up all of these reads. Then once the first item is processed, io-wq will simply cancel the rest. That should avoid syzbot running into this complaint again.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23062",
                        "url": "https://ubuntu.com/security/CVE-2026-23062",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro  The GET_INSTANCE_ID macro that caused a kernel panic when accessing sysfs attributes:  1. Off-by-one error: The loop condition used '<=' instead of '<',    causing access beyond array bounds. Since array indices are 0-based    and go from 0 to instances_count-1, the loop should use '<'.  2. Missing NULL check: The code dereferenced attr_name_kobj->name    without checking if attr_name_kobj was NULL, causing a null pointer    dereference in min_length_show() and other attribute show functions.  The panic occurred when fwupd tried to read BIOS configuration attributes:    Oops: general protection fault [#1] SMP KASAN NOPTI   KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]   RIP: 0010:min_length_show+0xcf/0x1d0 [hp_bioscfg]  Add a NULL check for attr_name_kobj before dereferencing and corrects the loop boundary to match the pattern used elsewhere in the driver.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23131",
                        "url": "https://ubuntu.com/security/CVE-2026-23131",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kobject warnings for empty attribute names  The hp-bioscfg driver attempts to register kobjects with empty names when the HP BIOS returns attributes with empty name strings. This causes multiple kernel warnings:    kobject: (00000000135fb5e6): attempted to be registered with empty name!   WARNING: CPU: 14 PID: 3336 at lib/kobject.c:219 kobject_add_internal+0x2eb/0x310  Add validation in hp_init_bios_buffer_attribute() to check if the attribute name is empty after parsing it from the WMI buffer. If empty, log a debug message and skip registration of that attribute, allowing the module to continue processing other valid attributes.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23087",
                        "url": "https://ubuntu.com/security/CVE-2026-23087",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: xen: scsiback: Fix potential memory leak in scsiback_remove()  Memory allocated for struct vscsiblk_info in scsiback_probe() is not freed in scsiback_remove() leading to potential memory leaks on remove, as well as in the scsiback_probe() error paths. Fix that by freeing it in scsiback_remove().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71197",
                        "url": "https://ubuntu.com/security/CVE-2025-71197",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  w1: therm: Fix off-by-one buffer overflow in alarms_store  The sysfs buffer passed to alarms_store() is allocated with 'size + 1' bytes and a NUL terminator is appended. However, the 'size' argument does not account for this extra byte. The original code then allocated 'size' bytes and used strcpy() to copy 'buf', which always writes one byte past the allocated buffer since strcpy() copies until the NUL terminator at index 'size'.  Fix this by parsing the 'buf' parameter directly using simple_strtoll() without allocating any intermediate memory or string copying. This removes the overflow while simplifying the code.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23105",
                        "url": "https://ubuntu.com/security/CVE-2026-23105",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag  This is more of a preventive patch to make the code more consistent and to prevent possible exploits that employ child qlen manipulations on qfq. use cl_is_active instead of relying on the child qdisc's qlen to determine class activation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23103",
                        "url": "https://ubuntu.com/security/CVE-2026-23103",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvlan: Make the addrs_lock be per port  Make the addrs_lock be per port, not per ipvlan dev.  Initial code seems to be written in the assumption, that any address change must occur under RTNL. But it is not so for the case of IPv6. So  1) Introduce per-port addrs_lock.  2) It was needed to fix places where it was forgotten to take lock (ipvlan_open/ipvlan_close)  This appears to be a very minor problem though. Since it's highly unlikely that ipvlan_add_addr() will be called on 2 CPU simultaneously. But nevertheless, this could cause:  1) False-negative of ipvlan_addr_busy(): one interface iterated through all port->ipvlans + ipvlan->addrs under some ipvlan spinlock, and another added IP under its own lock. Though this is only possible for IPv6, since looks like only ipvlan_addr6_event() can be called without rtnl_lock.  2) Race since ipvlan_ht_addr_add(port) is called under different ipvlan->addrs_lock locks  This should not affect performance, since add/remove IP is a rare situation and spinlock is not taken on fast paths.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23120",
                        "url": "https://ubuntu.com/security/CVE-2026-23120",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  l2tp: avoid one data-race in l2tp_tunnel_del_work()  We should read sk->sk_socket only when dealing with kernel sockets.  syzbot reported the following data-race:  BUG: KCSAN: data-race in l2tp_tunnel_del_work / sk_common_release  write to 0xffff88811c182b20 of 8 bytes by task 5365 on cpu 0:   sk_set_socket include/net/sock.h:2092 [inline]   sock_orphan include/net/sock.h:2118 [inline]   sk_common_release+0xae/0x230 net/core/sock.c:4003   udp_lib_close+0x15/0x20 include/net/udp.h:325   inet_release+0xce/0xf0 net/ipv4/af_inet.c:437   __sock_release net/socket.c:662 [inline]   sock_close+0x6b/0x150 net/socket.c:1455   __fput+0x29b/0x650 fs/file_table.c:468   ____fput+0x1c/0x30 fs/file_table.c:496   task_work_run+0x131/0x1a0 kernel/task_work.c:233   resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]   __exit_to_user_mode_loop kernel/entry/common.c:44 [inline]   exit_to_user_mode_loop+0x1fe/0x740 kernel/entry/common.c:75   __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]   syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]   syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]   syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]   do_syscall_64+0x1e1/0x2b0 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88811c182b20 of 8 bytes by task 827 on cpu 1:   l2tp_tunnel_del_work+0x2f/0x1a0 net/l2tp/l2tp_core.c:1418   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0x4ce/0x9d0 kernel/workqueue.c:3340   worker_thread+0x582/0x770 kernel/workqueue.c:3421   kthread+0x489/0x510 kernel/kthread.c:463   ret_from_fork+0x149/0x290 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246  value changed: 0xffff88811b818000 -> 0x0000000000000000",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23083",
                        "url": "https://ubuntu.com/security/CVE-2026-23083",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fou: Don't allow 0 for FOU_ATTR_IPPROTO.  fou_udp_recv() has the same problem mentioned in the previous patch.  If FOU_ATTR_IPPROTO is set to 0, skb is not freed by fou_udp_recv() nor \"resubmit\"-ted in ip_protocol_deliver_rcu().  Let's forbid 0 for FOU_ATTR_IPPROTO.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23095",
                        "url": "https://ubuntu.com/security/CVE-2026-23095",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gue: Fix skb memleak with inner IP protocol 0.  syzbot reported skb memleak below. [0]  The repro generated a GUE packet with its inner protocol 0.  gue_udp_recv() returns -guehdr->proto_ctype for \"resubmit\" in ip_protocol_deliver_rcu(), but this only works with non-zero protocol number.  Let's drop such packets.  Note that 0 is a valid number (IPv6 Hop-by-Hop Option).  I think it is not practical to encap HOPOPT in GUE, so once someone starts to complain, we could pass down a resubmit flag pointer to distinguish two zeros from the upper layer:    * no error   * resubmit HOPOPT  [0] BUG: memory leak unreferenced object 0xffff888109695a00 (size 240):   comm \"syz.0.17\", pid 6088, jiffies 4294943096   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 40 c2 10 81 88 ff ff 00 00 00 00 00 00 00 00  .@..............   backtrace (crc a84b336f):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4958 [inline]     slab_alloc_node mm/slub.c:5263 [inline]     kmem_cache_alloc_noprof+0x3b4/0x590 mm/slub.c:5270     __build_skb+0x23/0x60 net/core/skbuff.c:474     build_skb+0x20/0x190 net/core/skbuff.c:490     __tun_build_skb drivers/net/tun.c:1541 [inline]     tun_build_skb+0x4a1/0xa40 drivers/net/tun.c:1636     tun_get_user+0xc12/0x2030 drivers/net/tun.c:1770     tun_chr_write_iter+0x71/0x120 drivers/net/tun.c:1999     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0xa7/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xf80 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23125",
                        "url": "https://ubuntu.com/security/CVE-2026-23125",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT  A null-ptr-deref was reported in the SCTP transmit path when SCTP-AUTH key initialization fails:    ==================================================================   KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]   CPU: 0 PID: 16 Comm: ksoftirqd/0 Tainted: G W 6.6.0 #2   RIP: 0010:sctp_packet_bundle_auth net/sctp/output.c:264 [inline]   RIP: 0010:sctp_packet_append_chunk+0xb36/0x1260 net/sctp/output.c:401   Call Trace:    sctp_packet_transmit_chunk+0x31/0x250 net/sctp/output.c:189   sctp_outq_flush_data+0xa29/0x26d0 net/sctp/outqueue.c:1111   sctp_outq_flush+0xc80/0x1240 net/sctp/outqueue.c:1217   sctp_cmd_interpreter.isra.0+0x19a5/0x62c0 net/sctp/sm_sideeffect.c:1787   sctp_side_effects net/sctp/sm_sideeffect.c:1198 [inline]   sctp_do_sm+0x1a3/0x670 net/sctp/sm_sideeffect.c:1169   sctp_assoc_bh_rcv+0x33e/0x640 net/sctp/associola.c:1052   sctp_inq_push+0x1dd/0x280 net/sctp/inqueue.c:88   sctp_rcv+0x11ae/0x3100 net/sctp/input.c:243   sctp6_rcv+0x3d/0x60 net/sctp/ipv6.c:1127  The issue is triggered when sctp_auth_asoc_init_active_key() fails in sctp_sf_do_5_1C_ack() while processing an INIT_ACK. In this case, the command sequence is currently:  - SCTP_CMD_PEER_INIT - SCTP_CMD_TIMER_STOP (T1_INIT) - SCTP_CMD_TIMER_START (T1_COOKIE) - SCTP_CMD_NEW_STATE (COOKIE_ECHOED) - SCTP_CMD_ASSOC_SHKEY - SCTP_CMD_GEN_COOKIE_ECHO  If SCTP_CMD_ASSOC_SHKEY fails, asoc->shkey remains NULL, while asoc->peer.auth_capable and asoc->peer.peer_chunks have already been set by SCTP_CMD_PEER_INIT. This allows a DATA chunk with auth = 1 and shkey = NULL to be queued by sctp_datamsg_from_user().  Since command interpretation stops on failure, no COOKIE_ECHO should been sent via SCTP_CMD_GEN_COOKIE_ECHO. However, the T1_COOKIE timer has already been started, and it may enqueue a COOKIE_ECHO into the outqueue later. As a result, the DATA chunk can be transmitted together with the COOKIE_ECHO in sctp_outq_flush_data(), leading to the observed issue.  Similar to the other places where it calls sctp_auth_asoc_init_active_key() right after sctp_process_init(), this patch moves the SCTP_CMD_ASSOC_SHKEY immediately after SCTP_CMD_PEER_INIT, before stopping T1_INIT and starting T1_COOKIE. This ensures that if shared key generation fails, authenticated DATA cannot be sent. It also allows the T1_INIT timer to retransmit INIT, giving the client another chance to process INIT_ACK and retry key setup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23099",
                        "url": "https://ubuntu.com/security/CVE-2026-23099",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: limit BOND_MODE_8023AD to Ethernet devices  BOND_MODE_8023AD makes sense for ARPHRD_ETHER only.  syzbot reported:   BUG: KASAN: global-out-of-bounds in __hw_addr_create net/core/dev_addr_lists.c:63 [inline]  BUG: KASAN: global-out-of-bounds in __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118 Read of size 16 at addr ffffffff8bf94040 by task syz.1.3580/19497  CPU: 1 UID: 0 PID: 19497 Comm: syz.1.3580 Tainted: G             L     syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>   dump_stack_lvl+0xe8/0x150 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  check_region_inline mm/kasan/generic.c:-1 [inline]   kasan_check_range+0x2b0/0x2c0 mm/kasan/generic.c:200   __asan_memcpy+0x29/0x70 mm/kasan/shadow.c:105   __hw_addr_create net/core/dev_addr_lists.c:63 [inline]   __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118   __dev_mc_add net/core/dev_addr_lists.c:868 [inline]   dev_mc_add+0xa1/0x120 net/core/dev_addr_lists.c:886   bond_enslave+0x2b8b/0x3ac0 drivers/net/bonding/bond_main.c:2180   do_set_master+0x533/0x6d0 net/core/rtnetlink.c:2963   do_setlink+0xcf0/0x41c0 net/core/rtnetlink.c:3165   rtnl_changelink net/core/rtnetlink.c:3776 [inline]   __rtnl_newlink net/core/rtnetlink.c:3935 [inline]   rtnl_newlink+0x161c/0x1c90 net/core/rtnetlink.c:4072   rtnetlink_rcv_msg+0x7cf/0xb70 net/core/rtnetlink.c:6958   netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2550   netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline]   netlink_unicast+0x82f/0x9e0 net/netlink/af_netlink.c:1344   netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1894   sock_sendmsg_nosec net/socket.c:727 [inline]   __sock_sendmsg+0x21c/0x270 net/socket.c:742   ____sys_sendmsg+0x505/0x820 net/socket.c:2592   ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2646   __sys_sendmsg+0x164/0x220 net/socket.c:2678   do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]   __do_fast_syscall_32+0x1dc/0x560 arch/x86/entry/syscall_32.c:307   do_fast_syscall_32+0x34/0x80 arch/x86/entry/syscall_32.c:332  entry_SYSENTER_compat_after_hwframe+0x84/0x8e  </TASK>  The buggy address belongs to the variable:  lacpdu_mcast_addr+0x0/0x40",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71194",
                        "url": "https://ubuntu.com/security/CVE-2025-71194",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix deadlock in wait_current_trans() due to ignored transaction type  When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans().  This can lead to a deadlock scenario involving two transactions and pending ordered extents:    1. Transaction A is in TRANS_STATE_COMMIT_DOING state    2. A worker processing an ordered extent calls start_transaction()      with TRANS_JOIN    3. join_transaction() returns -EBUSY because Transaction A is in      TRANS_STATE_COMMIT_DOING    4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes    5. A new Transaction B is created (TRANS_STATE_RUNNING)    6. The ordered extent from step 2 is added to Transaction B's      pending ordered extents    7. Transaction B immediately starts commit by another task and      enters TRANS_STATE_COMMIT_START    8. The worker finally reaches wait_current_trans(), sees Transaction B      in TRANS_STATE_COMMIT_START (a blocked state), and waits      unconditionally    9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START      according to btrfs_blocked_trans_types[]    10. Transaction B is waiting for pending ordered extents to complete    11. Deadlock: Transaction B waits for ordered extent, ordered extent       waits for Transaction B  This can be illustrated by the following call stacks:   CPU0                              CPU1                                     btrfs_finish_ordered_io()                                       start_transaction(TRANS_JOIN)                                         join_transaction()                                           # -EBUSY (Transaction A is                                           # TRANS_STATE_COMMIT_DOING)   # Transaction A completes   # Transaction B created   # ordered extent added to   # Transaction B's pending list   btrfs_commit_transaction()     # Transaction B enters     # TRANS_STATE_COMMIT_START     # waiting for pending ordered     # extents                                         wait_current_trans()                                           # waits for Transaction B                                           # (should not wait!)  Task bstore_kv_sync in btrfs_commit_transaction waiting for ordered extents:    __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   btrfs_commit_transaction+0xbf7/0xda0 [btrfs]   btrfs_sync_file+0x342/0x4d0 [btrfs]   __x64_sys_fdatasync+0x4b/0x80   do_syscall_64+0x33/0x40   entry_SYSCALL_64_after_hwframe+0x44/0xa9  Task kworker in wait_current_trans waiting for transaction commit:    Workqueue: btrfs-syno_nocow btrfs_work_helper [btrfs]   __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   wait_current_trans+0xb0/0x110 [btrfs]   start_transaction+0x346/0x5b0 [btrfs]   btrfs_finish_ordered_io.isra.0+0x49b/0x9c0 [btrfs]   btrfs_work_helper+0xe8/0x350 [btrfs]   process_one_work+0x1d3/0x3c0   worker_thread+0x4d/0x3e0   kthread+0x12d/0x150   ret_from_fork+0x1f/0x30  Fix this by passing the transaction type to wait_current_trans() and checking btrfs_blocked_trans_types[cur_trans->state] against the given type before deciding to wait. This ensures that transaction types which are allowed to join during certain blocked states will not unnecessarily wait and cause deadlocks.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71185",
                        "url": "https://ubuntu.com/security/CVE-2025-71185",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation  Make sure to drop the reference taken when looking up the crossbar platform device during am335x route allocation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23026",
                        "url": "https://ubuntu.com/security/CVE-2026-23026",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config()  Fix a memory leak in gpi_peripheral_config() where the original memory pointed to by gchan->config could be lost if krealloc() fails.  The issue occurs when: 1. gchan->config points to previously allocated memory 2. krealloc() fails and returns NULL 3. The function directly assigns NULL to gchan->config, losing the    reference to the original memory 4. The original memory becomes unreachable and cannot be freed  Fix this by using a temporary variable to hold the krealloc() result and only updating gchan->config when the allocation succeeds.  Found via static analysis and code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71188",
                        "url": "https://ubuntu.com/security/CVE-2025-71188",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: lpc18xx-dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71163",
                        "url": "https://ubuntu.com/security/CVE-2025-71163",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: idxd: fix device leaks on compat bind and unbind  Make sure to drop the reference taken when looking up the idxd device as part of the compat bind and unbind sysfs interface.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71189",
                        "url": "https://ubuntu.com/security/CVE-2025-71189",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: dw: dmamux: fix OF node leak on route allocation failure  Make sure to drop the reference taken to the DMA master OF node also on late route allocation failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71190",
                        "url": "https://ubuntu.com/security/CVE-2025-71190",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: bcm-sba-raid: fix device leak on probe  Make sure to drop the reference taken when looking up the mailbox device during probe on probe failures and on driver unbind.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71191",
                        "url": "https://ubuntu.com/security/CVE-2025-71191",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: at_hdmac: fix device leak on of_dma_xlate()  Make sure to drop the reference taken when looking up the DMA platform device during of_dma_xlate() when releasing channel resources.  Note that commit 3832b78b3ec2 (\"dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()\") fixed the leak in a couple of error paths but the reference is still leaking on successful allocation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23049",
                        "url": "https://ubuntu.com/security/CVE-2026-23049",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel  The connector type for the DataImage SCF0700C48GGU18 panel is missing and devm_drm_panel_bridge_add() requires connector type to be set. This leads to a warning and a backtrace in the kernel log and panel does not work: \" WARNING: CPU: 3 PID: 38 at drivers/gpu/drm/bridge/panel.c:379 devm_drm_of_get_bridge+0xac/0xb8 \" The warning is triggered by a check for valid connector type in devm_drm_panel_bridge_add(). If there is no valid connector type set for a panel, the warning is printed and panel is not added. Fill in the missing connector type to fix the warning and make the panel operational once again.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23144",
                        "url": "https://ubuntu.com/security/CVE-2026-23144",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure  When a context DAMON sysfs directory setup is failed after setup of attrs/ directory, subdirectories of attrs/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23145",
                        "url": "https://ubuntu.com/security/CVE-2026-23145",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref  The error branch for ext4_xattr_inode_update_ref forget to release the refcount for iloc.bh. Find this when review code.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22997",
                        "url": "https://ubuntu.com/security/CVE-2026-22997",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session upon receiving the second rts  Since j1939_session_deactivate_activate_next() in j1939_tp_rxtimer() is called only when the timer is enabled, we need to call j1939_session_deactivate_activate_next() if we cancelled the timer. Otherwise, refcount for j1939_session leaks, which will later appear as  | unregister_netdevice: waiting for vcan0 to become free. Usage count = 2.  problem.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23031",
                        "url": "https://ubuntu.com/security/CVE-2026-23031",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak  In gs_can_open(), the URBs for USB-in transfers are allocated, added to the parent->rx_submitted anchor and submitted. In the complete callback gs_usb_receive_bulk_callback(), the URB is processed and resubmitted. In gs_can_close() the URBs are freed by calling usb_kill_anchored_urbs(parent->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in gs_can_close().  Fix the memory leak by anchoring the URB in the gs_usb_receive_bulk_callback() to the parent->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23032",
                        "url": "https://ubuntu.com/security/CVE-2026-23032",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  null_blk: fix kmemleak by releasing references to fault configfs items  When CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is enabled, the null-blk driver sets up fault injection support by creating the timeout_inject, requeue_inject, and init_hctx_fault_inject configfs items as children of the top-level nullbX configfs group.  However, when the nullbX device is removed, the references taken to these fault-config configfs items are not released. As a result, kmemleak reports a memory leak, for example:  unreferenced object 0xc00000021ff25c40 (size 32):   comm \"mkdir\", pid 10665, jiffies 4322121578   hex dump (first 32 bytes):     69 6e 69 74 5f 68 63 74 78 5f 66 61 75 6c 74 5f  init_hctx_fault_     69 6e 6a 65 63 74 00 88 00 00 00 00 00 00 00 00  inject..........   backtrace (crc 1a018c86):     __kmalloc_node_track_caller_noprof+0x494/0xbd8     kvasprintf+0x74/0xf4     config_item_set_name+0xf0/0x104     config_group_init_type_name+0x48/0xfc     fault_config_init+0x48/0xf0     0xc0080000180559e4     configfs_mkdir+0x304/0x814     vfs_mkdir+0x49c/0x604     do_mkdirat+0x314/0x3d0     sys_mkdir+0xa0/0xd8     system_call_exception+0x1b0/0x4f0     system_call_vectored_common+0x15c/0x2ec  Fix this by explicitly releasing the references to the fault-config configfs items when dropping the reference to the top-level nullbX configfs group.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23033",
                        "url": "https://ubuntu.com/security/CVE-2026-23033",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: omap-dma: fix dma_pool resource leak in error paths  The dma_pool created by dma_pool_create() is not destroyed when dma_async_device_register() or of_dma_controller_register() fails, causing a resource leak in the probe error paths.  Add dma_pool_destroy() in both error paths to properly release the allocated dma_pool resource.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71196",
                        "url": "https://ubuntu.com/security/CVE-2025-71196",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: stm32-usphyc: Fix off by one in probe()  The \"index\" variable is used as an index into the usbphyc->phys[] array which has usbphyc->nphys elements.  So if it is equal to usbphyc->nphys then it is one element out of bounds.  The \"index\" comes from the device tree so it's data that we trust and it's unlikely to be wrong, however it's obviously still worth fixing the bug.  Change the > to >=.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71193",
                        "url": "https://ubuntu.com/security/CVE-2025-71193",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: qcom-qusb2: Fix NULL pointer dereference on early suspend  Enabling runtime PM before attaching the QPHY instance as driver data can lead to a NULL pointer dereference in runtime PM callbacks that expect valid driver data. There is a small window where the suspend callback may run after PM runtime enabling and before runtime forbid. This causes a sporadic crash during boot:  ``` Unable to handle kernel NULL pointer dereference at virtual address 00000000000000a1 [...] CPU: 0 UID: 0 PID: 11 Comm: kworker/0:1 Not tainted 6.16.7+ #116 PREEMPT Workqueue: pm pm_runtime_work pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : qusb2_phy_runtime_suspend+0x14/0x1e0 [phy_qcom_qusb2] lr : pm_generic_runtime_suspend+0x2c/0x44 [...] ```  Attach the QPHY instance as driver data before enabling runtime PM to prevent NULL pointer dereference in runtime PM callbacks.  Reorder pm_runtime_enable() and pm_runtime_forbid() to prevent a short window where an unnecessary runtime suspend can occur.  Use the devres-managed version to ensure PM runtime is symmetrically disabled during driver removal for proper cleanup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71162",
                        "url": "https://ubuntu.com/security/CVE-2025-71162",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: tegra-adma: Fix use-after-free  A use-after-free bug exists in the Tegra ADMA driver when audio streams are terminated, particularly during XRUN conditions. The issue occurs when the DMA buffer is freed by tegra_adma_terminate_all() before the vchan completion tasklet finishes accessing it.  The race condition follows this sequence:    1. DMA transfer completes, triggering an interrupt that schedules the      completion tasklet (tasklet has not executed yet)   2. Audio playback stops, calling tegra_adma_terminate_all() which      frees the DMA buffer memory via kfree()   3. The scheduled tasklet finally executes, calling vchan_complete()      which attempts to access the already-freed memory  Since tasklets can execute at any time after being scheduled, there is no guarantee that the buffer will remain valid when vchan_complete() runs.  Fix this by properly synchronizing the virtual channel completion:  - Calling vchan_terminate_vdesc() in tegra_adma_stop() to mark the    descriptors as terminated instead of freeing the descriptor.  - Add the callback tegra_adma_synchronize() that calls    vchan_synchronize() which kills any pending tasklets and frees any    terminated descriptors.  Crash logs: [  337.427523] BUG: KASAN: use-after-free in vchan_complete+0x124/0x3b0 [  337.427544] Read of size 8 at addr ffff000132055428 by task swapper/0/0  [  337.427562] Call trace: [  337.427564]  dump_backtrace+0x0/0x320 [  337.427571]  show_stack+0x20/0x30 [  337.427575]  dump_stack_lvl+0x68/0x84 [  337.427584]  print_address_description.constprop.0+0x74/0x2b8 [  337.427590]  kasan_report+0x1f4/0x210 [  337.427598]  __asan_load8+0xa0/0xd0 [  337.427603]  vchan_complete+0x124/0x3b0 [  337.427609]  tasklet_action_common.constprop.0+0x190/0x1d0 [  337.427617]  tasklet_action+0x30/0x40 [  337.427623]  __do_softirq+0x1a0/0x5c4 [  337.427628]  irq_exit+0x110/0x140 [  337.427633]  handle_domain_irq+0xa4/0xe0 [  337.427640]  gic_handle_irq+0x64/0x160 [  337.427644]  call_on_irq_stack+0x20/0x4c [  337.427649]  do_interrupt_handler+0x7c/0x90 [  337.427654]  el1_interrupt+0x30/0x80 [  337.427659]  el1h_64_irq_handler+0x18/0x30 [  337.427663]  el1h_64_irq+0x7c/0x80 [  337.427667]  cpuidle_enter_state+0xe4/0x540 [  337.427674]  cpuidle_enter+0x54/0x80 [  337.427679]  do_idle+0x2e0/0x380 [  337.427685]  cpu_startup_entry+0x2c/0x70 [  337.427690]  rest_init+0x114/0x130 [  337.427695]  arch_call_rest_init+0x18/0x24 [  337.427702]  start_kernel+0x380/0x3b4 [  337.427706]  __primary_switched+0xc0/0xc8",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71195",
                        "url": "https://ubuntu.com/security/CVE-2025-71195",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: xilinx: xdma: Fix regmap max_register  The max_register field is assigned the size of the register memory region instead of the offset of the last register. The result is that reading from the regmap via debugfs can cause a segmentation fault:  tail /sys/kernel/debug/regmap/xdma.1.auto/registers Unable to handle kernel paging request at virtual address ffff800082f70000 Mem abort info:   ESR = 0x0000000096000007   EC = 0x25: DABT (current EL), IL = 32 bits   SET = 0, FnV = 0   EA = 0, S1PTW = 0   FSC = 0x07: level 3 translation fault [...] Call trace:  regmap_mmio_read32le+0x10/0x30  _regmap_bus_reg_read+0x74/0xc0  _regmap_read+0x68/0x198  regmap_read+0x54/0x88  regmap_read_debugfs+0x140/0x380  regmap_map_read_file+0x30/0x48  full_proxy_read+0x68/0xc8  vfs_read+0xcc/0x310  ksys_read+0x7c/0x120  __arm64_sys_read+0x24/0x40  invoke_syscall.constprop.0+0x64/0x108  do_el0_svc+0xb0/0xd8  el0_svc+0x38/0x130  el0t_64_sync_handler+0x120/0x138  el0t_64_sync+0x194/0x198 Code: aa1e03e9 d503201f f9400000 8b214000 (b9400000) ---[ end trace 0000000000000000 ]--- note: tail[1217] exited with irqs disabled note: tail[1217] exited with preempt_count 1 Segmentation fault",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23006",
                        "url": "https://ubuntu.com/security/CVE-2026-23006",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: tlv320adcx140: fix null pointer  The \"snd_soc_component\" in \"adcx140_priv\" was only used once but never set. It was only used for reaching \"dev\" which is already present in \"adcx140_priv\".",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22999",
                        "url": "https://ubuntu.com/security/CVE-2026-22999",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: do not free existing class in qfq_change_class()  Fixes qfq_change_class() error case.  cl->qdisc and cl should only be freed if a new class and qdisc were allocated, or we risk various UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23010",
                        "url": "https://ubuntu.com/security/CVE-2026-23010",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix use-after-free in inet6_addr_del().  syzbot reported use-after-free of inet6_ifaddr in inet6_addr_del(). [0]  The cited commit accidentally moved ipv6_del_addr() for mngtmpaddr before reading its ifp->flags for temporary addresses in inet6_addr_del().  Let's move ipv6_del_addr() down to fix the UAF.  [0]: BUG: KASAN: slab-use-after-free in inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117 Read of size 4 at addr ffff88807b89c86c by task syz.3.1618/9593  CPU: 0 UID: 0 PID: 9593 Comm: syz.3.1618 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>  __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:378 [inline]  print_report+0xcd/0x630 mm/kasan/report.c:482  kasan_report+0xe0/0x110 mm/kasan/report.c:595  inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117  addrconf_del_ifaddr+0x11e/0x190 net/ipv6/addrconf.c:3181  inet6_ioctl+0x1e5/0x2b0 net/ipv6/af_inet6.c:582  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f164cf8f749 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f164de64038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007f164d1e5fa0 RCX: 00007f164cf8f749 RDX: 0000200000000000 RSI: 0000000000008936 RDI: 0000000000000003 RBP: 00007f164d013f91 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f164d1e6038 R14: 00007f164d1e5fa0 R15: 00007ffde15c8288  </TASK>  Allocated by task 9593:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  poison_kmalloc_redzone mm/kasan/common.c:397 [inline]  __kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:414  kmalloc_noprof include/linux/slab.h:957 [inline]  kzalloc_noprof include/linux/slab.h:1094 [inline]  ipv6_add_addr+0x4e3/0x2010 net/ipv6/addrconf.c:1120  inet6_addr_add+0x256/0x9b0 net/ipv6/addrconf.c:3050  addrconf_add_ifaddr+0x1fc/0x450 net/ipv6/addrconf.c:3160  inet6_ioctl+0x103/0x2b0 net/ipv6/af_inet6.c:580  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 6099:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  kasan_save_free_info+0x3b/0x60 mm/kasan/generic.c:584  poison_slab_object mm/kasan/common.c:252 [inline]  __kasan_slab_free+0x5f/0x80 mm/kasan/common.c:284  kasan_slab_free include/linux/kasan.h:234 [inline]  slab_free_hook mm/slub.c:2540 [inline]  slab_free_freelist_hook mm/slub.c:2569 [inline]  slab_free_bulk mm/slub.c:6696 [inline]  kmem_cache_free_bulk mm/slub.c:7383 [inline]  kmem_cache_free_bulk+0x2bf/0x680 mm/slub.c:7362  kfree_bulk include/linux/slab.h:830 [inline]  kvfree_rcu_bulk+0x1b7/0x1e0 mm/slab_common.c:1523  kvfree_rcu_drain_ready mm/slab_common.c:1728 [inline]  kfree_rcu_monitor+0x1d0/0x2f0 mm/slab_common.c:1801  process_one_work+0x9ba/0x1b20 kernel/workqueue.c:3257  process_scheduled_works kernel/workqu ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23054",
                        "url": "https://ubuntu.com/security/CVE-2026-23054",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hv_netvsc: reject RSS hash key programming without RX indirection table  RSS configuration requires a valid RX indirection table. When the device reports a single receive queue, rndis_filter_device_add() does not allocate an indirection table, accepting RSS hash key updates in this state leads to a hang.  Fix this by gating netvsc_set_rxfh() on ndc->rx_table_sz and return -EOPNOTSUPP when the table is absent. This aligns set_rxfh with the device capabilities and prevents incorrect behavior.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23011",
                        "url": "https://ubuntu.com/security/CVE-2026-23011",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: ip_gre: make ipgre_header() robust  Analog to commit db5b4e39c4e6 (\"ip6_gre: make ip6gre_header() robust\")  Over the years, syzbot found many ways to crash the kernel in ipgre_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 ipgre device.  [1] skbuff: skb_under_panic: text:ffffffff89ea3cb7 len:2030915468 put:2030915372 head:ffff888058b43000 data:ffff887fdfa6e194 tail:0x120 end:0x6c0 dev:team0  kernel BUG at net/core/skbuff.c:213 ! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 1 UID: 0 PID: 1322 Comm: kworker/1:9 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Workqueue: mld mld_ifc_work  RIP: 0010:skb_panic+0x157/0x160 net/core/skbuff.c:213 Call Trace:  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ipgre_header+0x67/0x290 net/ipv4/ip_gre.c:897   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   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   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0xad1/0x1770 kernel/workqueue.c:3340   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23001",
                        "url": "https://ubuntu.com/security/CVE-2026-23001",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix possible UAF in macvlan_forward_source()  Add RCU protection on (struct macvlan_source_entry)->vlan.  Whenever macvlan_hash_del_source() is called, we must clear entry->vlan pointer before RCU grace period starts.  This allows macvlan_forward_source() to skip over entries queued for freeing.  Note that macvlan_dev are already RCU protected, as they are embedded in a standard netdev (netdev_priv(ndev)).  https: //lore.kernel.org/netdev/695fb1e8.050a0220.1c677c.039f.GAE@google.com/T/#u",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23003",
                        "url": "https://ubuntu.com/security/CVE-2026-23003",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv()  Blamed commit did not take care of VLAN encapsulations as spotted by syzbot [1].  Use skb_vlan_inet_prepare() instead of pskb_inet_may_pull().  [1]  BUG: KMSAN: uninit-value in __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]  BUG: KMSAN: uninit-value in INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]  BUG: KMSAN: uninit-value in IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]   INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]   IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   ip6ip6_dscp_ecn_decapsulate+0x16f/0x1b0 net/ipv6/ip6_tunnel.c:729   __ip6_tnl_rcv+0xed9/0x1b50 net/ipv6/ip6_tunnel.c:860   ip6_tnl_rcv+0xc3/0x100 net/ipv6/ip6_tunnel.c:903  gre_rcv+0x1529/0x1b90 net/ipv6/ip6_gre.c:-1   ip6_protocol_deliver_rcu+0x1c89/0x2c60 net/ipv6/ip6_input.c:438   ip6_input_finish+0x1f4/0x4a0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x9c/0x330 net/ipv6/ip6_input.c:500   ip6_mc_input+0x7ca/0xc10 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x958/0x990 net/ipv6/ip6_input.c:79   NF_HOOK include/linux/netfilter.h:318 [inline]   ipv6_rcv+0xf1/0x3c0 net/ipv6/ip6_input.c:311   __netif_receive_skb_one_core net/core/dev.c:6139 [inline]   __netif_receive_skb+0x1df/0xac0 net/core/dev.c:6252   netif_receive_skb_internal net/core/dev.c:6338 [inline]   netif_receive_skb+0x57/0x630 net/core/dev.c:6397   tun_rx_batched+0x1df/0x980 drivers/net/tun.c:1485   tun_get_user+0x5c0e/0x6c60 drivers/net/tun.c:1953   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Uninit was created at:   slab_post_alloc_hook mm/slub.c:4960 [inline]   slab_alloc_node mm/slub.c:5263 [inline]   kmem_cache_alloc_node_noprof+0x9e7/0x17a0 mm/slub.c:5315   kmalloc_reserve+0x13c/0x4b0 net/core/skbuff.c:586   __alloc_skb+0x805/0x1040 net/core/skbuff.c:690   alloc_skb include/linux/skbuff.h:1383 [inline]   alloc_skb_with_frags+0xc5/0xa60 net/core/skbuff.c:6712   sock_alloc_send_pskb+0xacc/0xc60 net/core/sock.c:2995   tun_alloc_skb drivers/net/tun.c:1461 [inline]   tun_get_user+0x1142/0x6c60 drivers/net/tun.c:1794   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  CPU: 0 UID: 0 PID: 6465 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(none) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23141",
                        "url": "https://ubuntu.com/security/CVE-2026-23141",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: send: check for inline extents in range_is_hole_in_parent()  Before accessing the disk_bytenr field of a file extent item we need to check if we are dealing with an inline extent. This is because for inline extents their data starts at the offset of the disk_bytenr field. So accessing the disk_bytenr means we are accessing inline data or in case the inline data is less than 8 bytes we can actually cause an invalid memory access if this inline extent item is the first item in the leaf or access metadata from other items.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22998",
                        "url": "https://ubuntu.com/security/CVE-2026-22998",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec  Commit efa56305908b (\"nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length\") added ttag bounds checking and data_offset validation in nvmet_tcp_handle_h2c_data_pdu(), but it did not validate whether the command's data structures (cmd->req.sg and cmd->iov) have been properly initialized before processing H2C_DATA PDUs.  The nvmet_tcp_build_pdu_iovec() function dereferences these pointers without NULL checks. This can be triggered by sending H2C_DATA PDU immediately after the ICREQ/ICRESP handshake, before sending a CONNECT command or NVMe write command.  Attack vectors that trigger NULL pointer dereferences: 1. H2C_DATA PDU sent before CONNECT → both pointers NULL 2. H2C_DATA PDU for READ command → cmd->req.sg allocated, cmd->iov NULL 3. H2C_DATA PDU for uninitialized command slot → both pointers NULL  The fix validates both cmd->req.sg and cmd->iov before calling nvmet_tcp_build_pdu_iovec(). Both checks are required because: - Uninitialized commands: both NULL - READ commands: cmd->req.sg allocated, cmd->iov NULL - WRITE commands: both allocated",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23037",
                        "url": "https://ubuntu.com/security/CVE-2026-23037",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: etas_es58x: allow partial RX URB allocation to succeed  When es58x_alloc_rx_urbs() fails to allocate the requested number of URBs but succeeds in allocating some, it returns an error code. This causes es58x_open() to return early, skipping the cleanup label 'free_urbs', which leads to the anchored URBs being leaked.  As pointed out by maintainer Vincent Mailhol, the driver is designed to handle partial URB allocation gracefully. Therefore, partial allocation should not be treated as a fatal error.  Modify es58x_alloc_rx_urbs() to return 0 if at least one URB has been allocated, restoring the intended behavior and preventing the leak in es58x_open().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23038",
                        "url": "https://ubuntu.com/security/CVE-2026-23038",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node()  In nfs4_ff_alloc_deviceid_node(), if the allocation for ds_versions fails, the function jumps to the out_scratch label without freeing the already allocated dsaddrs list, leading to a memory leak.  Fix this by jumping to the out_err_drain_dsaddrs label, which properly frees the dsaddrs list before cleaning up other resources.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71184",
                        "url": "https://ubuntu.com/security/CVE-2025-71184",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix NULL dereference on root when tracing inode eviction  When evicting an inode the first thing we do is to setup tracing for it, which implies fetching the root's id. But in btrfs_evict_inode() the root might be NULL, as implied in the next check that we do in btrfs_evict_inode().  Hence, we either should set the ->root_objectid to 0 in case the root is NULL, or we move tracing setup after checking that the root is not NULL. Setting the rootid to 0 at least gives us the possibility to trace this call even in the case when the root is NULL, so that's the solution taken here.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "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-2025-71160",
                        "url": "https://ubuntu.com/security/CVE-2025-71160",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: avoid chain re-validation if possible  Hamza Mahfooz reports cpu soft lock-ups in nft_chain_validate():   watchdog: BUG: soft lockup - CPU#1 stuck for 27s! [iptables-nft-re:37547] [..]  RIP: 0010:nft_chain_validate+0xcb/0x110 [nf_tables] [..]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_table_validate+0x6b/0xb0 [nf_tables]   nf_tables_validate+0x8b/0xa0 [nf_tables]   nf_tables_commit+0x1df/0x1eb0 [nf_tables] [..]  Currently nf_tables will traverse the entire table (chain graph), starting from the entry points (base chains), exploring all possible paths (chain jumps).  But there are cases where we could avoid revalidation.  Consider: 1  input -> j2 -> j3 2  input -> j2 -> j3 3  input -> j1 -> j2 -> j3  Then the second rule does not need to revalidate j2, and, by extension j3, because this was already checked during validation of the first rule. We need to validate it only for rule 3.  This is needed because chain loop detection also ensures we do not exceed the jump stack: Just because we know that j2 is cycle free, its last jump might now exceed the allowed stack size.  We also need to update all reachable chains with the new largest observed call depth.  Care has to be taken to revalidate even if the chain depth won't be an issue: chain validation also ensures that expressions are not called from invalid base chains.  For example, the masquerade expression can only be called from NAT postrouting base chains.  Therefore we also need to keep record of the base chain context (type, hooknum) and revalidate if the chain becomes reachable from a different hook location.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22994",
                        "url": "https://ubuntu.com/security/CVE-2026-22994",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix reference count leak in bpf_prog_test_run_xdp()  syzbot is reporting    unregister_netdevice: waiting for sit0 to become free. Usage count = 2  problem. A debug printk() patch found that a refcount is obtained at xdp_convert_md_to_buff() from bpf_prog_test_run_xdp().  According to commit ec94670fcb3b (\"bpf: Support specifying ingress via xdp_md context in BPF_PROG_TEST_RUN\"), the refcount obtained by xdp_convert_md_to_buff() will be released by xdp_convert_buff_to_md().  Therefore, we can consider that the error handling path introduced by commit 1c1949982524 (\"bpf: introduce frags support to bpf_prog_test_run_xdp()\") forgot to call xdp_convert_buff_to_md().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23140",
                        "url": "https://ubuntu.com/security/CVE-2026-23140",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf, test_run: Subtract size of xdp_frame from allowed metadata size  The xdp_frame structure takes up part of the XDP frame headroom, limiting the size of the metadata. However, in bpf_test_run, we don't take this into account, which makes it possible for userspace to supply a metadata size that is too large (taking up the entire headroom).  If userspace supplies such a large metadata size in live packet mode, the xdp_update_frame_from_buff() call in xdp_test_run_init_page() call will fail, after which packet transmission proceeds with an uninitialised frame structure, leading to the usual Bad Stuff.  The commit in the Fixes tag fixed a related bug where the second check in xdp_update_frame_from_buff() could fail, but did not add any additional constraints on the metadata size. Complete the fix by adding an additional check on the metadata size. Reorder the checks slightly to make the logic clearer and add a comment.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71192",
                        "url": "https://ubuntu.com/security/CVE-2025-71192",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ac97: fix a double free in snd_ac97_controller_register()  If ac97_add_adapter() fails, put_device() is the correct way to drop the device reference. kfree() is not required. Add kfree() if idr_alloc() fails and in ac97_adapter_release() to do the cleanup.  Found by code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 16:16: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-22979",
                        "url": "https://ubuntu.com/security/CVE-2026-22979",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix memory leak in skb_segment_list for GRO packets  When skb_segment_list() is called during packet forwarding, it handles packets that were aggregated by the GRO engine.  Historically, the segmentation logic in skb_segment_list assumes that individual segments are split from a parent SKB and may need to carry their own socket memory accounting. Accordingly, the code transfers truesize from the parent to the newly created segments.  Prior to commit ed4cccef64c1 (\"gro: fix ownership transfer\"), this truesize subtraction in skb_segment_list() was valid because fragments still carry a reference to the original socket.  However, commit ed4cccef64c1 (\"gro: fix ownership transfer\") changed this behavior by ensuring that fraglist entries are explicitly orphaned (skb->sk = NULL) to prevent illegal orphaning later in the stack. This change meant that the entire socket memory charge remained with the head SKB, but the corresponding accounting logic in skb_segment_list() was never updated.  As a result, the current code unconditionally adds each fragment's truesize to delta_truesize and subtracts it from the parent SKB. Since the fragments are no longer charged to the socket, this subtraction results in an effective under-count of memory when the head is freed. This causes sk_wmem_alloc to remain non-zero, preventing socket destruction and leading to a persistent memory leak.  The leak can be observed via KMEMLEAK when tearing down the networking environment:  unreferenced object 0xffff8881e6eb9100 (size 2048):   comm \"ping\", pid 6720, jiffies 4295492526   backtrace:     kmem_cache_alloc_noprof+0x5c6/0x800     sk_prot_alloc+0x5b/0x220     sk_alloc+0x35/0xa00     inet6_create.part.0+0x303/0x10d0     __sock_create+0x248/0x640     __sys_socket+0x11b/0x1d0  Since skb_segment_list() is exclusively used for SKB_GSO_FRAGLIST packets constructed by GRO, the truesize adjustment is removed.  The call to skb_release_head_state() must be preserved. As documented in commit cf673ed0e057 (\"net: fix fraglist segmentation reference count leak\"), it is still required to correctly drop references to SKB extensions that may be overwritten during __copy_skb_header().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15: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-2026-23139",
                        "url": "https://ubuntu.com/security/CVE-2026-23139",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_conncount: update last_gc only when GC has been performed  Currently last_gc is being updated everytime a new connection is tracked, that means that it is updated even if a GC wasn't performed. With a sufficiently high packet rate, it is possible to always bypass the GC, causing the list to grow infinitely.  Update the last_gc value only when a GC has been actually performed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40149",
                        "url": "https://ubuntu.com/security/CVE-2025-40149",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock().  get_netdev_for_sock() is called during setsockopt(), so not under RCU.  Using sk_dst_get(sk)->dev could trigger UAF.  Let's use __sk_dst_get() and dst_dev_rcu().  Note that the only ->ndo_sk_get_lower_dev() user is bond_sk_get_lower_dev(), which uses RCU.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-12 11:15: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-2026-23047",
                        "url": "https://ubuntu.com/security/CVE-2026-23047",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make calc_target() set t->paused, not just clear it  Currently calc_target() clears t->paused if the request shouldn't be paused anymore, but doesn't ever set t->paused even though it's able to determine when the request should be paused.  Setting t->paused is left to __submit_request() which is fine for regular requests but doesn't work for linger requests -- since __submit_request() doesn't operate on linger requests, there is nowhere for lreq->t.paused to be set. One consequence of this is that watches don't get reestablished on paused -> unpaused transitions in cases where requests have been paused long enough for the (paused) unwatch request to time out and for the subsequent (re)watch request to enter the paused state.  On top of the watch not getting reestablished, rbd_reregister_watch() gets stuck with rbd_dev->watch_mutex held:    rbd_register_watch     __rbd_register_watch       ceph_osdc_watch         linger_reg_commit_wait  It's waiting for lreq->reg_commit_wait to be completed, but for that to happen the respective request needs to end up on need_resend_linger list and be kicked when requests are unpaused.  There is no chance for that if the request in question is never marked paused in the first place.  The fact that rbd_dev->watch_mutex remains taken out forever then prevents the image from getting unmapped -- \"rbd unmap\" would inevitably hang in D state on an attempt to grab the mutex.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23136",
                        "url": "https://ubuntu.com/security/CVE-2026-23136",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: reset sparse-read state in osd_fault()  When a fault occurs, the connection is abandoned, reestablished, and any pending operations are retried. The OSD client tracks the progress of a sparse-read reply using a separate state machine, largely independent of the messenger's state.  If a connection is lost mid-payload or the sparse-read state machine returns an error, the sparse-read state is not reset. The OSD client will then interpret the beginning of a new reply as the continuation of the old one. If this makes the sparse-read machinery enter a failure state, it may never recover, producing loops like:    libceph:  [0] got 0 extents   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read  Therefore, reset the sparse-read state in osd_fault(), ensuring retries start from a clean state.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15: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": "high",
                        "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-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-2025-71183",
                        "url": "https://ubuntu.com/security/CVE-2025-71183",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: always detect conflicting inodes when logging inode refs  After rename exchanging (either with the rename exchange operation or regular renames in multiple non-atomic steps) two inodes and at least one of them is a directory, we can end up with a log tree that contains only of the inodes and after a power failure that can result in an attempt to delete the other inode when it should not because it was not deleted before the power failure. In some case that delete attempt fails when the target inode is a directory that contains a subvolume inside it, since the log replay code is not prepared to deal with directory entries that point to root items (only inode items).  1) We have directories \"dir1\" (inode A) and \"dir2\" (inode B) under the    same parent directory;  2) We have a file (inode C) under directory \"dir1\" (inode A);  3) We have a subvolume inside directory \"dir2\" (inode B);  4) All these inodes were persisted in a past transaction and we are    currently at transaction N;  5) We rename the file (inode C), so at btrfs_log_new_name() we update    inode C's last_unlink_trans to N;  6) We get a rename exchange for \"dir1\" (inode A) and \"dir2\" (inode B),    so after the exchange \"dir1\" is inode B and \"dir2\" is inode A.    During the rename exchange we call btrfs_log_new_name() for inodes    A and B, but because they are directories, we don't update their    last_unlink_trans to N;  7) An fsync against the file (inode C) is done, and because its inode    has a last_unlink_trans with a value of N we log its parent directory    (inode A) (through btrfs_log_all_parents(), called from    btrfs_log_inode_parent()).  8) So we end up with inode B not logged, which now has the old name    of inode A. At copy_inode_items_to_log(), when logging inode A, we    did not check if we had any conflicting inode to log because inode    A has a generation lower than the current transaction (created in    a past transaction);  9) After a power failure, when replaying the log tree, since we find that    inode A has a new name that conflicts with the name of inode B in the    fs tree, we attempt to delete inode B... this is wrong since that    directory was never deleted before the power failure, and because there    is a subvolume inside that directory, attempting to delete it will fail    since replay_dir_deletes() and btrfs_unlink_inode() are not prepared    to deal with dir items that point to roots instead of inodes.     When that happens the mount fails and we get a stack trace like the    following:     [87.2314] BTRFS info (device dm-0): start tree-log replay    [87.2318] BTRFS critical (device dm-0): failed to delete reference to subvol, root 5 inode 256 parent 259    [87.2332] ------------[ cut here ]------------    [87.2338] BTRFS: Transaction aborted (error -2)    [87.2346] WARNING: CPU: 1 PID: 638968 at fs/btrfs/inode.c:4345 __btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2368] Modules linked in: btrfs loop dm_thin_pool (...)    [87.2470] CPU: 1 UID: 0 PID: 638968 Comm: mount Tainted: G        W          6.18.0-rc7-btrfs-next-218+ #2 PREEMPT(full)    [87.2489] Tainted: [W]=WARN    [87.2494] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014    [87.2514] RIP: 0010:__btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2538] Code: c0 89 04 24 (...)    [87.2568] RSP: 0018:ffffc0e741f4b9b8 EFLAGS: 00010286    [87.2574] RAX: 0000000000000000 RBX: ffff9d3ec8a6cf60 RCX: 0000000000000000    [87.2582] RDX: 0000000000000002 RSI: ffffffff84ab45a1 RDI: 00000000ffffffff    [87.2591] RBP: ffff9d3ec8a6ef20 R08: 0000000000000000 R09: ffffc0e741f4b840    [87.2599] R10: ffff9d45dc1fffa8 R11: 0000000000000003 R12: ffff9d3ee26d77e0    [87.2608] R13: ffffc0e741f4ba98 R14: ffff9d4458040800 R15: ffff9d44b6b7ca10    [87.2618] FS:  00007f7b9603a840(0000) GS:ffff9d4658982000(0000) knlGS:0000000000000000    [87. ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16: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-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-2024-50004",
                        "url": "https://ubuntu.com/security/CVE-2024-50004",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: update DML2 policy EnhancedPrefetchScheduleAccelerationFinal DCN35  [WHY & HOW] Mismatch in DCN35 DML2 cause bw validation failed to acquire unexpected DPP pipe to cause grey screen and system hang. Remove EnhancedPrefetchScheduleAccelerationFinal value override to match HW spec.  (cherry picked from commit 9dad21f910fcea2bdcff4af46159101d7f9cd8ba)",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-10-21 19:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23274",
                        "url": "https://ubuntu.com/security/CVE-2026-23274",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels  IDLETIMER revision 0 rules reuse existing timers by label and always call mod_timer() on timer->timer.  If the label was created first by revision 1 with XT_IDLETIMER_ALARM, the object uses alarm timer semantics and timer->timer is never initialized. Reusing that object from revision 0 causes mod_timer() on an uninitialized timer_list, triggering debugobjects warnings and possible panic when panic_on_warn=1.  Fix this by rejecting revision 0 rule insertion when an existing timer with the same label is of ALARM type.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-20 09:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23351",
                        "url": "https://ubuntu.com/security/CVE-2026-23351",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: split gc into unlink and reclaim phase  Yiming Qian reports Use-after-free in the pipapo set type:   Under a large number of expired elements, commit-time GC can run for a very   long time in a non-preemptible context, triggering soft lockup warnings and   RCU stall reports (local denial of service).  We must split GC in an unlink and a reclaim phase.  We cannot queue elements for freeing until pointers have been swapped. Expired elements are still exposed to both the packet path and userspace dumpers via the live copy of the data structure.  call_rcu() does not protect us: dump operations or element lookups starting after call_rcu has fired can still observe the free'd element, unless the commit phase has made enough progress to swap the clone and live pointers before any new reader has picked up the old version.  This a similar approach as done recently for the rbtree backend in commit 35f83a75529a (\"netfilter: nft_set_rbtree: don't gc elements on insert\").",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-25 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23231",
                        "url": "https://ubuntu.com/security/CVE-2026-23231",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-03-04 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23209",
                        "url": "https://ubuntu.com/security/CVE-2026-23209",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23112",
                        "url": "https://ubuntu.com/security/CVE-2026-23112",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23231",
                        "url": "https://ubuntu.com/security/CVE-2026-23231",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-03-04 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23209",
                        "url": "https://ubuntu.com/security/CVE-2026-23209",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23112",
                        "url": "https://ubuntu.com/security/CVE-2026-23112",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-36347",
                        "url": "https://ubuntu.com/security/CVE-2024-36347",
                        "cve_description": "Improper signature verification in AMD CPU ROM microcode patch loader may allow an attacker with local administrator privilege to load malicious microcode, potentially resulting in loss of integrity of x86 instruction execution, loss of confidentiality and integrity of data in x86 CPU privileged context and compromise of SMM execution environment.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-06-27 23:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40164",
                        "url": "https://ubuntu.com/security/CVE-2025-40164",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Fix using smp_processor_id() in preemptible code warnings  Syzbot reported the following warning:  BUG: using smp_processor_id() in preemptible [00000000] code: dhcpcd/2879 caller is usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331 CPU: 1 UID: 0 PID: 2879 Comm: dhcpcd Not tainted 6.15.0-rc4-syzkaller-00098-g615dca38c2ea #0 PREEMPT(voluntary) Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120  check_preemption_disabled+0xd0/0xe0 lib/smp_processor_id.c:49  usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331  usbnet_resume_rx+0x4b/0x170 drivers/net/usb/usbnet.c:708  usbnet_change_mtu+0x1be/0x220 drivers/net/usb/usbnet.c:417  __dev_set_mtu net/core/dev.c:9443 [inline]  netif_set_mtu_ext+0x369/0x5c0 net/core/dev.c:9496  netif_set_mtu+0xb0/0x160 net/core/dev.c:9520  dev_set_mtu+0xae/0x170 net/core/dev_api.c:247  dev_ifsioc+0xa31/0x18d0 net/core/dev_ioctl.c:572  dev_ioctl+0x223/0x10e0 net/core/dev_ioctl.c:821  sock_do_ioctl+0x19d/0x280 net/socket.c:1204  sock_ioctl+0x42f/0x6a0 net/socket.c:1311  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+0x190/0x200 fs/ioctl.c:892  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  For historical and portability reasons, the netif_rx() is usually run in the softirq or interrupt context, this commit therefore add local_bh_disable/enable() protection in the usbnet_resume_rx().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-12 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40325",
                        "url": "https://ubuntu.com/security/CVE-2025-40325",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid10: wait barrier before returning discard request with REQ_NOWAIT  raid10_handle_discard should wait barrier before returning a discard bio which has REQ_NOWAIT. And there is no need to print warning calltrace if a discard bio has REQ_NOWAIT flag. Quality engineer usually checks dmesg and reports error if dmesg has warning/error calltrace.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-18 07:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68206",
                        "url": "https://ubuntu.com/security/CVE-2025-68206",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_ct: add seqadj extension for natted connections  Sequence adjustment may be required for FTP traffic with PASV/EPSV modes. due to need to re-write packet payload (IP, port) on the ftp control connection. This can require changes to the TCP length and expected seq / ack_seq.  The easiest way to reproduce this issue is with PASV mode. Example ruleset: table inet ftp_nat {         ct helper ftp_helper {                 type \"ftp\" protocol tcp                 l3proto inet         }          chain prerouting {                 type filter hook prerouting priority 0; policy accept;                 tcp dport 21 ct state new ct helper set \"ftp_helper\"         } } table ip nat {         chain prerouting {                 type nat hook prerouting priority -100; policy accept;                 tcp dport 21 dnat ip prefix to ip daddr map { \t\t\t192.168.100.1 : 192.168.13.2/32 }         }          chain postrouting {                 type nat hook postrouting priority 100 ; policy accept;                 tcp sport 21 snat ip prefix to ip saddr map { \t\t\t192.168.13.2 : 192.168.100.1/32 }         } }  Note that the ftp helper gets assigned *after* the dnat setup.  The inverse (nat after helper assign) is handled by an existing check in nf_nat_setup_info() and will not show the problem.  Topoloy:   +-------------------+     +----------------------------------+  | FTP: 192.168.13.2 | <-> | NAT: 192.168.13.3, 192.168.100.1 |  +-------------------+     +----------------------------------+                                       |                          +-----------------------+                          | Client: 192.168.100.2 |                          +-----------------------+  ftp nat changes do not work as expected in this case: Connected to 192.168.100.1. [..] ftp> epsv EPSV/EPRT on IPv4 off. ftp> ls 227 Entering passive mode (192,168,100,1,209,129). 421 Service not available, remote server has closed connection.  Kernel logs: Missing nfct_seqadj_ext_add() setup call WARNING: CPU: 1 PID: 0 at net/netfilter/nf_conntrack_seqadj.c:41 [..]  __nf_nat_mangle_tcp_packet+0x100/0x160 [nf_nat]  nf_nat_ftp+0x142/0x280 [nf_nat_ftp]  help+0x4d1/0x880 [nf_conntrack_ftp]  nf_confirm+0x122/0x2e0 [nf_conntrack]  nf_hook_slow+0x3c/0xb0  ..  Fix this by adding the required extension when a conntrack helper is assigned to a connection that has a nat binding.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15: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-71135",
                        "url": "https://ubuntu.com/security/CVE-2025-71135",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid5: fix possible null-pointer dereferences in raid5_store_group_thread_cnt()  The variable mddev->private is first assigned to conf and then checked:    conf = mddev->private;   if (!conf) ...  If conf is NULL, then mddev->private is also NULL. In this case, null-pointer dereferences can occur when calling raid5_quiesce():    raid5_quiesce(mddev, true);   raid5_quiesce(mddev, false);  since mddev->private is assigned to conf again in raid5_quiesce(), and conf is dereferenced in several places, for example:    conf->quiesce = 0;   wake_up(&conf->wait_for_quiescent);  To fix this issue, the function should unlock mddev and return before invoking raid5_quiesce() when conf is NULL, following the existing pattern in raid5_change_consistency_policy().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38234",
                        "url": "https://ubuntu.com/security/CVE-2025-38234",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/rt: Fix race in push_rt_task  Overview ======== When a CPU chooses to call push_rt_task and picks a task to push to another CPU's runqueue then it will call find_lock_lowest_rq method which would take a double lock on both CPUs' runqueues. If one of the locks aren't readily available, it may lead to dropping the current runqueue lock and reacquiring both the locks at once. During this window it is possible that the task is already migrated and is running on some other CPU. These cases are already handled. However, if the task is migrated and has already been executed and another CPU is now trying to wake it up (ttwu) such that it is queued again on the runqeue (on_rq is 1) and also if the task was run by the same CPU, then the current checks will pass even though the task was migrated out and is no longer in the pushable tasks list.  Crashes ======= This bug resulted in quite a few flavors of crashes triggering kernel panics with various crash signatures such as assert failures, page faults, null pointer dereferences, and queue corruption errors all coming from scheduler itself.  Some of the crashes: -> kernel BUG at kernel/sched/rt.c:1616! BUG_ON(idx >= MAX_RT_PRIO)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? pick_next_task_rt+0x6e/0x1d0    ? do_error_trap+0x64/0xa0    ? pick_next_task_rt+0x6e/0x1d0    ? exc_invalid_op+0x4c/0x60    ? pick_next_task_rt+0x6e/0x1d0    ? asm_exc_invalid_op+0x12/0x20    ? pick_next_task_rt+0x6e/0x1d0    __schedule+0x5cb/0x790    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: kernel NULL pointer dereference, address: 00000000000000c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? __warn+0x8a/0xe0    ? exc_page_fault+0x3d6/0x520    ? asm_exc_page_fault+0x1e/0x30    ? pick_next_task_rt+0xb5/0x1d0    ? pick_next_task_rt+0x8c/0x1d0    __schedule+0x583/0x7e0    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: unable to handle page fault for address: ffff9464daea5900    kernel BUG at kernel/sched/rt.c:1861! BUG_ON(rq->cpu != task_cpu(p))  -> kernel BUG at kernel/sched/rt.c:1055! BUG_ON(!rq->nr_running)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? dequeue_top_rt_rq+0xa2/0xb0    ? do_error_trap+0x64/0xa0    ? dequeue_top_rt_rq+0xa2/0xb0    ? exc_invalid_op+0x4c/0x60    ? dequeue_top_rt_rq+0xa2/0xb0    ? asm_exc_invalid_op+0x12/0x20    ? dequeue_top_rt_rq+0xa2/0xb0    dequeue_rt_entity+0x1f/0x70    dequeue_task_rt+0x2d/0x70    __schedule+0x1a8/0x7e0    ? blk_finish_plug+0x25/0x40    schedule+0x3c/0xb0    futex_wait_queue_me+0xb6/0x120    futex_wait+0xd9/0x240    do_futex+0x344/0xa90    ? get_mm_exe_file+0x30/0x60    ? audit_exe_compare+0x58/0x70    ? audit_filter_rules.constprop.26+0x65e/0x1220    __x64_sys_futex+0x148/0x1f0    do_syscall_64+0x30/0x80    entry_SYSCALL_64_after_hwframe+0x62/0xc7  -> BUG: unable to handle page fault for address: ffff8cf3608bc2c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? spurious_kernel_fault+0x171/0x1c0    ? exc_page_fault+0x3b6/0x520    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? asm_exc_page_fault+0x1e/0x30    ? _cond_resched+0x15/0x30    ? futex_wait_queue_me+0xc8/0x120    ? futex_wait+0xd9/0x240    ? try_to_wake_up+0x1b8/0x490    ? futex_wake+0x78/0x160    ? do_futex+0xcd/0xa90    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? plist_del+0x6a/0xd0    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? dequeue_pushable_task+0x20/0x70    ? __schedule+0x382/0x7e0    ? asm_sysvec_reschedule_i ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-07-04 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68811",
                        "url": "https://ubuntu.com/security/CVE-2025-68811",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: use rc_pageoff for memcpy byte offset  svc_rdma_copy_inline_range added rc_curpage (page index) to the page base instead of the byte offset rc_pageoff. Use rc_pageoff so copies land within the current page.  Found by ZeroPath (https://zeropath.com)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68810",
                        "url": "https://ubuntu.com/security/CVE-2025-68810",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot  Reject attempts to disable KVM_MEM_GUEST_MEMFD on a memslot that was initially created with a guest_memfd binding, as KVM doesn't support toggling KVM_MEM_GUEST_MEMFD on existing memslots.  KVM prevents enabling KVM_MEM_GUEST_MEMFD, but doesn't prevent clearing the flag.  Failure to reject the new memslot results in a use-after-free due to KVM not unbinding from the guest_memfd instance.  Unbinding on a FLAGS_ONLY change is easy enough, and can/will be done as a hardening measure (in anticipation of KVM supporting dirty logging on guest_memfd at some point), but fixing the use-after-free would only address the immediate symptom.    ==================================================================   BUG: KASAN: slab-use-after-free in kvm_gmem_release+0x362/0x400 [kvm]   Write of size 8 at addr ffff8881111ae908 by task repro/745    CPU: 7 UID: 1000 PID: 745 Comm: repro Not tainted 6.18.0-rc6-115d5de2eef3-next-kasan #3 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   Call Trace:    <TASK>    dump_stack_lvl+0x51/0x60    print_report+0xcb/0x5c0    kasan_report+0xb4/0xe0    kvm_gmem_release+0x362/0x400 [kvm]    __fput+0x2fa/0x9d0    task_work_run+0x12c/0x200    do_exit+0x6ae/0x2100    do_group_exit+0xa8/0x230    __x64_sys_exit_group+0x3a/0x50    x64_sys_call+0x737/0x740    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f581f2eac31    </TASK>    Allocated by task 745 on cpu 6 at 9.746971s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_kmalloc+0x77/0x90    kvm_set_memory_region.part.0+0x652/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53    Freed by task 745 on cpu 6 at 9.747467s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_save_free_info+0x37/0x50    __kasan_slab_free+0x3b/0x60    kfree+0xf5/0x440    kvm_set_memslot+0x3c2/0x1160 [kvm]    kvm_set_memory_region.part.0+0x86a/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71109",
                        "url": "https://ubuntu.com/security/CVE-2025-71109",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  MIPS: ftrace: Fix memory corruption when kernel is located beyond 32 bits  Since commit e424054000878 (\"MIPS: Tracing: Reduce the overhead of dynamic Function Tracer\"), the macro UASM_i_LA_mostly has been used, and this macro can generate more than 2 instructions. At the same time, the code in ftrace assumes that no more than 2 instructions can be generated, which is why it stores them in an int[2] array. However, as previously noted, the macro UASM_i_LA_mostly (and now UASM_i_LA) causes a buffer overflow when _mcount is beyond 32 bits. This leads to corruption of the variables located in the __read_mostly section.  This corruption was observed because the variable __cpu_primary_thread_mask was corrupted, causing a hang very early during boot.  This fix prevents the corruption by avoiding the generation of instructions if they could exceed 2 instructions in length. Fortunately, insn_la_mcount is only used if the instrumented code is located outside the kernel code section, so dynamic ftrace can still be used, albeit in a more limited scope. This is still preferable to corrupting memory and/or crashing the kernel.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68770",
                        "url": "https://ubuntu.com/security/CVE-2025-68770",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bnxt_en: Fix XDP_TX path  For XDP_TX action in bnxt_rx_xdp(), clearing of the event flags is not correct.  __bnxt_poll_work() -> bnxt_rx_pkt() -> bnxt_rx_xdp() may be looping within NAPI and some event flags may be set in earlier iterations.  In particular, if BNXT_TX_EVENT is set earlier indicating some XDP_TX packets are ready and pending, it will be cleared if it is XDP_TX action again.  Normally, we will set BNXT_TX_EVENT again when we successfully call __bnxt_xmit_xdp().  But if the TX ring has no more room, the flag will not be set.  This will cause the TX producer to be ahead but the driver will not hit the TX doorbell.  For multi-buf XDP_TX, there is no need to clear the event flags and set BNXT_AGG_EVENT.  The BNXT_AGG_EVENT flag should have been set earlier in bnxt_rx_pkt().  The visible symptom of this is that the RX ring associated with the TX XDP ring will eventually become empty and all packets will be dropped. Because this condition will cause the driver to not refill the RX ring seeing that the TX ring has forever pending XDP_TX packets.  The fix is to only clear BNXT_RX_EVENT when we have successfully called __bnxt_xmit_xdp().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71072",
                        "url": "https://ubuntu.com/security/CVE-2025-71072",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  shmem: fix recovery on rename failures  maple_tree insertions can fail if we are seriously short on memory; simple_offset_rename() does not recover well if it runs into that. The same goes for simple_offset_rename_exchange().  Moreover, shmem_whiteout() expects that if it succeeds, the caller will progress to d_move(), i.e. that shmem_rename2() won't fail past the successful call of shmem_whiteout().  Not hard to fix, fortunately - mtree_store() can't fail if the index we are trying to store into is already present in the tree as a singleton.  For simple_offset_rename_exchange() that's enough - we just need to be careful about the order of operations.  For simple_offset_rename() solution is to preinsert the target into the tree for new_dir; the rest can be done without any potentially failing operations.  That preinsertion has to be done in shmem_rename2() rather than in simple_offset_rename() itself - otherwise we'd need to deal with the possibility of failure after successful shmem_whiteout().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68374",
                        "url": "https://ubuntu.com/security/CVE-2025-68374",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: fix rcu protection in md_wakeup_thread  We attempted to use RCU to protect the pointer 'thread', but directly passed the value when calling md_wakeup_thread(). This means that the RCU pointer has been acquired before rcu_read_lock(), which renders rcu_read_lock() ineffective and could lead to a use-after-free.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68378",
                        "url": "https://ubuntu.com/security/CVE-2025-68378",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix stackmap overflow check in __bpf_get_stackid()  Syzkaller reported a KASAN slab-out-of-bounds write in __bpf_get_stackid() when copying stack trace data. The issue occurs when the perf trace  contains more stack entries than the stack map bucket can hold,  leading to an out-of-bounds write in the bucket's data array.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-57795",
                        "url": "https://ubuntu.com/security/CVE-2024-57795",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Remove the direct link to net_device  The similar patch in siw is in the link: https://git.kernel.org/rdma/rdma/c/16b87037b48889  This problem also occurred in RXE. The following analyze this problem. In the following Call Traces: \" BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 net/core/dev.c:8782 Read of size 4 at addr ffff8880554640b0 by task kworker/1:4/5295  CPU: 1 UID: 0 PID: 5295 Comm: kworker/1:4 Not tainted 6.12.0-rc3-syzkaller-00399-g9197b73fd7bb #0 Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: infiniband ib_cache_event_task 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:377 [inline]  print_report+0x169/0x550 mm/kasan/report.c:488  kasan_report+0x143/0x180 mm/kasan/report.c:601  dev_get_flags+0x188/0x1d0 net/core/dev.c:8782  rxe_query_port+0x12d/0x260 drivers/infiniband/sw/rxe/rxe_verbs.c:60  __ib_query_port drivers/infiniband/core/device.c:2111 [inline]  ib_query_port+0x168/0x7d0 drivers/infiniband/core/device.c:2143  ib_cache_update+0x1a9/0xb80 drivers/infiniband/core/cache.c:1494  ib_cache_event_task+0xf3/0x1e0 drivers/infiniband/core/cache.c:1568  process_one_work kernel/workqueue.c:3229 [inline]  process_scheduled_works+0xa65/0x1850 kernel/workqueue.c:3310  worker_thread+0x870/0xd30 kernel/workqueue.c:3391  kthread+0x2f2/0x390 kernel/kthread.c:389  ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:147  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244  </TASK> \"  1). In the link [1],  \"  infiniband syz2: set down \"  This means that on 839.350575, the event ib_cache_event_task was sent andi queued in ib_wq.  2). In the link [1],  \"  team0 (unregistering): Port device team_slave_0 removed \"  It indicates that before 843.251853, the net device should be freed.  3). In the link [1],  \"  BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 \"  This means that on 850.559070, this slab-use-after-free problem occurred.  In all, on 839.350575, the event ib_cache_event_task was sent and queued in ib_wq,  before 843.251853, the net device veth was freed.  on 850.559070, this event was executed, and the mentioned freed net device was called. Thus, the above call trace occurred.  [1] https://syzkaller.appspot.com/x/log.txt?x=12e7025f980000",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-01-15 13: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-71140",
                        "url": "https://ubuntu.com/security/CVE-2025-71140",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: mediatek: vcodec: Use spinlock for context list protection lock  Previously a mutex was added to protect the encoder and decoder context lists from unexpected changes originating from the SCP IP block, causing the context pointer to go invalid, resulting in a NULL pointer dereference in the IPI handler.  Turns out on the MT8173, the VPU IPI handler is called from hard IRQ context. This causes a big warning from the scheduler. This was first reported downstream on the ChromeOS kernels, but is also reproducible on mainline using Fluster with the FFmpeg v4l2m2m decoders. Even though the actual capture format is not supported, the affected code paths are triggered.  Since this lock just protects the context list and operations on it are very fast, it should be OK to switch to a spinlock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-68772",
                        "url": "https://ubuntu.com/security/CVE-2025-68772",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating compression context during writeback  Bai, Shuangpeng <sjb7183@psu.edu> reported a bug as below:  Oops: divide error: 0000 [#1] SMP KASAN PTI CPU: 0 UID: 0 PID: 11441 Comm: syz.0.46 Not tainted 6.17.0 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP: 0010:f2fs_all_cluster_page_ready+0x106/0x550 fs/f2fs/compress.c:857 Call Trace:  <TASK>  f2fs_write_cache_pages fs/f2fs/data.c:3078 [inline]  __f2fs_write_data_pages fs/f2fs/data.c:3290 [inline]  f2fs_write_data_pages+0x1c19/0x3600 fs/f2fs/data.c:3317  do_writepages+0x38e/0x640 mm/page-writeback.c:2634  filemap_fdatawrite_wbc mm/filemap.c:386 [inline]  __filemap_fdatawrite_range mm/filemap.c:419 [inline]  file_write_and_wait_range+0x2ba/0x3e0 mm/filemap.c:794  f2fs_do_sync_file+0x6e6/0x1b00 fs/f2fs/file.c:294  generic_write_sync include/linux/fs.h:3043 [inline]  f2fs_file_write_iter+0x76e/0x2700 fs/f2fs/file.c:5259  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x7e9/0xe00 fs/read_write.c:686  ksys_write+0x19d/0x2d0 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xf7/0x470 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The bug was triggered w/ below race condition:  fsync\t\t\t\tsetattr\t\t\tioctl - f2fs_do_sync_file  - file_write_and_wait_range   - f2fs_write_cache_pages   : inode is non-compressed   : cc.cluster_size =     F2FS_I(inode)->i_cluster_size = 0    - tag_pages_for_writeback \t\t\t\t- f2fs_setattr \t\t\t\t - truncate_setsize \t\t\t\t - f2fs_truncate \t\t\t\t\t\t\t- f2fs_fileattr_set \t\t\t\t\t\t\t - f2fs_setflags_common \t\t\t\t\t\t\t  - set_compress_context \t\t\t\t\t\t\t  : F2FS_I(inode)->i_cluster_size = 4 \t\t\t\t\t\t\t  : set_inode_flag(inode, FI_COMPRESSED_FILE)    - f2fs_compressed_file    : return true    - f2fs_all_cluster_page_ready    : \"pgidx % cc->cluster_size\" trigger dividing 0 issue  Let's change as below to fix this issue: - introduce a new atomic type variable .writeback in structure f2fs_inode_info to track the number of threads which calling f2fs_write_cache_pages(). - use .i_sem lock to protect .writeback update. - check .writeback before update compression context in f2fs_setflags_common() to avoid race w/ ->writepages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15: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-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-71141",
                        "url": "https://ubuntu.com/security/CVE-2025-71141",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/tilcdc: Fix removal actions in case of failed probe  The drm_kms_helper_poll_fini() and drm_atomic_helper_shutdown() helpers should only be called when the device has been successfully registered. Currently, these functions are called unconditionally in tilcdc_fini(), which causes warnings during probe deferral scenarios.  [    7.972317] WARNING: CPU: 0 PID: 23 at drivers/gpu/drm/drm_atomic_state_helper.c:175 drm_atomic_helper_crtc_duplicate_state+0x60/0x68 ... [    8.005820]  drm_atomic_helper_crtc_duplicate_state from drm_atomic_get_crtc_state+0x68/0x108 [    8.005858]  drm_atomic_get_crtc_state from drm_atomic_helper_disable_all+0x90/0x1c8 [    8.005885]  drm_atomic_helper_disable_all from drm_atomic_helper_shutdown+0x90/0x144 [    8.005911]  drm_atomic_helper_shutdown from tilcdc_fini+0x68/0xf8 [tilcdc] [    8.005957]  tilcdc_fini [tilcdc] from tilcdc_pdev_probe+0xb0/0x6d4 [tilcdc]  Fix this by rewriting the failed probe cleanup path using the standard goto error handling pattern, which ensures that cleanup functions are only called on successfully initialized resources. Additionally, remove the now-unnecessary is_registered flag.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 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-71088",
                        "url": "https://ubuntu.com/security/CVE-2025-71088",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fallback earlier on simult connection  Syzkaller reports a simult-connect race leading to inconsistent fallback status:    WARNING: CPU: 3 PID: 33 at net/mptcp/subflow.c:1515 subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Modules linked in:   CPU: 3 UID: 0 PID: 33 Comm: ksoftirqd/3 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:subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Code: 89 ee e8 78 61 3c f6 40 84 ed 75 21 e8 8e 66 3c f6 44 89 fe bf 07 00 00 00 e8 c1 61 3c f6 41 83 ff 07 74 09 e8 76 66 3c f6 90 <0f> 0b 90 e8 6d 66 3c f6 48 89 df e8 e5 ad ff ff 31 ff 89 c5 89 c6   RSP: 0018:ffffc900006cf338 EFLAGS: 00010246   RAX: 0000000000000000 RBX: ffff888031acd100 RCX: ffffffff8b7f2abf   RDX: ffff88801e6ea440 RSI: ffffffff8b7f2aca RDI: 0000000000000005   RBP: 0000000000000000 R08: 0000000000000005 R09: 0000000000000007   R10: 0000000000000004 R11: 0000000000002c10 R12: ffff88802ba69900   R13: 1ffff920000d9e67 R14: ffff888046f81800 R15: 0000000000000004   FS:  0000000000000000(0000) GS:ffff8880d69bc000(0000) knlGS:0000000000000000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 0000560fc0ca1670 CR3: 0000000032c3a000 CR4: 0000000000352ef0   Call Trace:    <TASK>    tcp_data_queue+0x13b0/0x4f90 net/ipv4/tcp_input.c:5197    tcp_rcv_state_process+0xfdf/0x4ec0 net/ipv4/tcp_input.c:6922    tcp_v6_do_rcv+0x492/0x1740 net/ipv6/tcp_ipv6.c:1672    tcp_v6_rcv+0x2976/0x41e0 net/ipv6/tcp_ipv6.c:1918    ip6_protocol_deliver_rcu+0x188/0x1520 net/ipv6/ip6_input.c:438    ip6_input_finish+0x1e4/0x4b0 net/ipv6/ip6_input.c:489    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ip6_input+0x105/0x2f0 net/ipv6/ip6_input.c:500    dst_input include/net/dst.h:471 [inline]    ip6_rcv_finish net/ipv6/ip6_input.c:79 [inline]    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ipv6_rcv+0x264/0x650 net/ipv6/ip6_input.c:311    __netif_receive_skb_one_core+0x12d/0x1e0 net/core/dev.c:5979    __netif_receive_skb+0x1d/0x160 net/core/dev.c:6092    process_backlog+0x442/0x15e0 net/core/dev.c:6444    __napi_poll.constprop.0+0xba/0x550 net/core/dev.c:7494    napi_poll net/core/dev.c:7557 [inline]    net_rx_action+0xa9f/0xfe0 net/core/dev.c:7684    handle_softirqs+0x216/0x8e0 kernel/softirq.c:579    run_ksoftirqd kernel/softirq.c:968 [inline]    run_ksoftirqd+0x3a/0x60 kernel/softirq.c:960    smpboot_thread_fn+0x3f7/0xae0 kernel/smpboot.c:160    kthread+0x3c2/0x780 kernel/kthread.c:463    ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148    ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245    </TASK>  The TCP subflow can process the simult-connect syn-ack packet after transitioning to TCP_FIN1 state, bypassing the MPTCP fallback check, as the sk_state_change() callback is not invoked for * -> FIN_WAIT1 transitions.  That will move the msk socket to an inconsistent status and the next incoming data will hit the reported splat.  Close the race moving the simult-fallback check at the earliest possible stage - that is at syn-ack generation time.  About the fixes tags: [2] was supposed to also fix this issue introduced by [3]. [1] is required as a dependence: it was not explicitly marked as a fix, but it is one and it has already been backported before [3]. In other words, this commit should be backported up to [3], including [2] and [1] if that's not already there.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71065",
                        "url": "https://ubuntu.com/security/CVE-2025-71065",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid potential deadlock  As Jiaming Zhang and syzbot reported, there is potential deadlock in f2fs as below:  Chain exists of:   &sbi->cp_rwsem --> fs_reclaim --> sb_internal#2   Possible unsafe locking scenario:         CPU0                    CPU1        ----                    ----   rlock(sb_internal#2);                                lock(fs_reclaim);                                lock(sb_internal#2);   rlock(&sbi->cp_rwsem);   *** DEADLOCK ***  3 locks held by kswapd0/73:  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat mm/vmscan.c:7015 [inline]  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0x951/0x2800 mm/vmscan.c:7389  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_trylock_shared fs/super.c:562 [inline]  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_cache_scan+0x91/0x4b0 fs/super.c:197  #2: ffff888011840610 (sb_internal#2){.+.+}-{0:0}, at: f2fs_evict_inode+0x8d9/0x1b60 fs/f2fs/inode.c:890  stack backtrace: CPU: 0 UID: 0 PID: 73 Comm: kswapd0 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 Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_circular_bug+0x2ee/0x310 kernel/locking/lockdep.c:2043  check_noncircular+0x134/0x160 kernel/locking/lockdep.c:2175  check_prev_add kernel/locking/lockdep.c:3165 [inline]  check_prevs_add kernel/locking/lockdep.c:3284 [inline]  validate_chain+0xb9b/0x2140 kernel/locking/lockdep.c:3908  __lock_acquire+0xab9/0xd20 kernel/locking/lockdep.c:5237  lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5868  down_read+0x46/0x2e0 kernel/locking/rwsem.c:1537  f2fs_down_read fs/f2fs/f2fs.h:2278 [inline]  f2fs_lock_op fs/f2fs/f2fs.h:2357 [inline]  f2fs_do_truncate_blocks+0x21c/0x10c0 fs/f2fs/file.c:791  f2fs_truncate_blocks+0x10a/0x300 fs/f2fs/file.c:867  f2fs_truncate+0x489/0x7c0 fs/f2fs/file.c:925  f2fs_evict_inode+0x9f2/0x1b60 fs/f2fs/inode.c:897  evict+0x504/0x9c0 fs/inode.c:810  f2fs_evict_inode+0x1dc/0x1b60 fs/f2fs/inode.c:853  evict+0x504/0x9c0 fs/inode.c:810  dispose_list fs/inode.c:852 [inline]  prune_icache_sb+0x21b/0x2c0 fs/inode.c:1000  super_cache_scan+0x39b/0x4b0 fs/super.c:224  do_shrink_slab+0x6ef/0x1110 mm/shrinker.c:437  shrink_slab_memcg mm/shrinker.c:550 [inline]  shrink_slab+0x7ef/0x10d0 mm/shrinker.c:628  shrink_one+0x28a/0x7c0 mm/vmscan.c:4955  shrink_many mm/vmscan.c:5016 [inline]  lru_gen_shrink_node mm/vmscan.c:5094 [inline]  shrink_node+0x315d/0x3780 mm/vmscan.c:6081  kswapd_shrink_node mm/vmscan.c:6941 [inline]  balance_pgdat mm/vmscan.c:7124 [inline]  kswapd+0x147c/0x2800 mm/vmscan.c:7389  kthread+0x70e/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>  The root cause is deadlock among four locks as below:  kswapd - fs_reclaim\t\t\t\t--- Lock A  - shrink_one   - evict    - f2fs_evict_inode     - sb_start_intwrite\t\t\t--- Lock B  - iput  - evict   - f2fs_evict_inode    - sb_start_intwrite\t\t\t--- Lock B    - f2fs_truncate     - f2fs_truncate_blocks      - f2fs_do_truncate_blocks       - f2fs_lock_op\t\t\t--- Lock C  ioctl - f2fs_ioc_commit_atomic_write  - f2fs_lock_op\t\t\t\t--- Lock C   - __f2fs_commit_atomic_write    - __replace_atomic_write_block     - f2fs_get_dnode_of_data      - __get_node_folio       - f2fs_check_nid_range        - f2fs_handle_error         - f2fs_record_errors          - f2fs_down_write\t\t--- Lock D  open - do_open  - do_truncate   - security_inode_need_killpriv    - f2fs_getxattr     - lookup_all_xattrs      - f2fs_handle_error       - f2fs_record_errors        - f2fs_down_write\t\t--- Lock D         - f2fs_commit_super          - read_mapping_folio           - filemap_alloc_folio_noprof            - prepare_alloc_pages             - fs_reclaim_acquire\t--- Lock A  In order to a ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68345",
                        "url": "https://ubuntu.com/security/CVE-2025-68345",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: hda: cs35l41: Fix NULL pointer dereference in cs35l41_hda_read_acpi()  The acpi_get_first_physical_node() function can return NULL, in which case the get_device() function also returns NULL, but this value is then dereferenced without checking,so add a check to prevent a crash.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11: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-71130",
                        "url": "https://ubuntu.com/security/CVE-2025-71130",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/gem: Zero-initialize the eb.vma array in i915_gem_do_execbuffer  Initialize the eb.vma array with values of 0 when the eb structure is first set up. In particular, this sets the eb->vma[i].vma pointers to NULL, simplifying cleanup and getting rid of the bug described below.  During the execution of eb_lookup_vmas(), the eb->vma array is successively filled up with struct eb_vma objects. This process includes calling eb_add_vma(), which might fail; however, even in the event of failure, eb->vma[i].vma is set for the currently processed buffer.  If eb_add_vma() fails, eb_lookup_vmas() returns with an error, which prompts a call to eb_release_vmas() to clean up the mess. Since eb_lookup_vmas() might fail during processing any (possibly not first) buffer, eb_release_vmas() checks whether a buffer's vma is NULL to know at what point did the lookup function fail.  In eb_lookup_vmas(), eb->vma[i].vma is set to NULL if either the helper function eb_lookup_vma() or eb_validate_vma() fails. eb->vma[i+1].vma is set to NULL in case i915_gem_object_userptr_submit_init() fails; the current one needs to be cleaned up by eb_release_vmas() at this point, so the next one is set. If eb_add_vma() fails, neither the current nor the next vma is set to NULL, which is a source of a NULL deref bug described in the issue linked in the Closes tag.  When entering eb_lookup_vmas(), the vma pointers are set to the slab poison value, instead of NULL. This doesn't matter for the actual lookup, since it gets overwritten anyway, however the eb_release_vmas() function only recognizes NULL as the stopping value, hence the pointers are being set to NULL as they go in case of intermediate failure. This patch changes the approach to filling them all with NULL at the start instead, rather than handling that manually during failure.  (cherry picked from commit 08889b706d4f0b8d2352b7ca29c2d8df4d0787cd)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71138",
                        "url": "https://ubuntu.com/security/CVE-2025-71138",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/msm/dpu: Add missing NULL pointer check for pingpong interface  It is checked almost always in dpu_encoder_phys_wb_setup_ctl(), but in a single place the check is missing. Also use convenient locals instead of phys_enc->* where available.  Patchwork: https://patchwork.freedesktop.org/patch/693860/",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16: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-71129",
                        "url": "https://ubuntu.com/security/CVE-2025-71129",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: BPF: Sign extend kfunc call arguments  The kfunc calls are native calls so they should follow LoongArch calling conventions. Sign extend its arguments properly to avoid kernel panic. This is done by adding a new emit_abi_ext() helper. The emit_abi_ext() helper performs extension in place meaning a value already store in the target register (Note: this is different from the existing sign_extend() helper and thus we can't reuse it).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-71143",
                        "url": "https://ubuntu.com/security/CVE-2025-71143",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  clk: samsung: exynos-clkout: Assign .num before accessing .hws  Commit f316cdff8d67 (\"clk: Annotate struct clk_hw_onecell_data with __counted_by\") annotated the hws member of 'struct clk_hw_onecell_data' with __counted_by, which informs the bounds sanitizer (UBSAN_BOUNDS) about the number of elements in .hws[], so that it can warn when .hws[] is accessed out of bounds. As noted in that change, the __counted_by member must be initialized with the number of elements before the first array access happens, otherwise there will be a warning from each access prior to the initialization because the number of elements is zero. This occurs in exynos_clkout_probe() due to .num being assigned after .hws[] has been accessed:    UBSAN: array-index-out-of-bounds in drivers/clk/samsung/clk-exynos-clkout.c:178:18   index 0 is out of range for type 'clk_hw *[*]'  Move the .num initialization to before the first access of .hws[], clearing up the warning.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-71089",
                        "url": "https://ubuntu.com/security/CVE-2025-71089",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu: disable SVA when CONFIG_X86 is set  Patch series \"Fix stale IOTLB entries for kernel address space\", v7.  This proposes a fix for a security vulnerability related to IOMMU Shared Virtual Addressing (SVA).  In an SVA context, an IOMMU can cache kernel page table entries.  When a kernel page table page is freed and reallocated for another purpose, the IOMMU might still hold stale, incorrect entries.  This can be exploited to cause a use-after-free or write-after-free condition, potentially leading to privilege escalation or data corruption.  This solution introduces a deferred freeing mechanism for kernel page table pages, which provides a safe window to notify the IOMMU to invalidate its caches before the page is reused.   This patch (of 8):  In the IOMMU Shared Virtual Addressing (SVA) context, the IOMMU hardware shares and walks the CPU's page tables.  The x86 architecture maps the kernel's virtual address space into the upper portion of every process's page table.  Consequently, in an SVA context, the IOMMU hardware can walk and cache kernel page table entries.  The Linux kernel currently lacks a notification mechanism for kernel page table changes, specifically when page table pages are freed and reused. The IOMMU driver is only notified of changes to user virtual address mappings.  This can cause the IOMMU's internal caches to retain stale entries for kernel VA.  Use-After-Free (UAF) and Write-After-Free (WAF) conditions arise when kernel page table pages are freed and later reallocated.  The IOMMU could misinterpret the new data as valid page table entries.  The IOMMU might then walk into attacker-controlled memory, leading to arbitrary physical memory DMA access or privilege escalation.  This is also a Write-After-Free issue, as the IOMMU will potentially continue to write Accessed and Dirty bits to the freed memory while attempting to walk the stale page tables.  Currently, SVA contexts are unprivileged and cannot access kernel mappings.  However, the IOMMU will still walk kernel-only page tables all the way down to the leaf entries, where it realizes the mapping is for the kernel and errors out.  This means the IOMMU still caches these intermediate page table entries, making the described vulnerability a real concern.  Disable SVA on x86 architecture until the IOMMU can receive notification to flush the paging cache before freeing the CPU kernel page table pages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16: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-71153",
                        "url": "https://ubuntu.com/security/CVE-2025-71153",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix memory leak in get_file_all_info()  In get_file_all_info(), if vfs_getattr() fails, the function returns immediately without freeing the allocated filename, leading to a memory leak.  Fix this by freeing the filename before returning in this error case.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 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-71095",
                        "url": "https://ubuntu.com/security/CVE-2025-71095",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: stmmac: fix the crash issue for zero copy XDP_TX action  There is a crash issue when running zero copy XDP_TX action, the crash log is shown below.  [  216.122464] Unable to handle kernel paging request at virtual address fffeffff80000000 [  216.187524] Internal error: Oops: 0000000096000144 [#1]  SMP [  216.301694] Call trace: [  216.304130]  dcache_clean_poc+0x20/0x38 (P) [  216.308308]  __dma_sync_single_for_device+0x1bc/0x1e0 [  216.313351]  stmmac_xdp_xmit_xdpf+0x354/0x400 [  216.317701]  __stmmac_xdp_run_prog+0x164/0x368 [  216.322139]  stmmac_napi_poll_rxtx+0xba8/0xf00 [  216.326576]  __napi_poll+0x40/0x218 [  216.408054] Kernel panic - not syncing: Oops: Fatal exception in interrupt  For XDP_TX action, the xdp_buff is converted to xdp_frame by xdp_convert_buff_to_frame(). The memory type of the resulting xdp_frame depends on the memory type of the xdp_buff. For page pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_POOL. For zero copy XSK pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_ORDER0. However, stmmac_xdp_xmit_back() does not check the memory type and always uses the page pool type, this leads to invalid mappings and causes the crash. Therefore, check the xdp_buff memory type in stmmac_xdp_xmit_back() to fix this issue.",
                        "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-71101",
                        "url": "https://ubuntu.com/security/CVE-2025-71101",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix out-of-bounds array access in ACPI package parsing  The hp_populate_*_elements_from_package() functions in the hp-bioscfg driver contain out-of-bounds array access vulnerabilities.  These functions parse ACPI packages into internal data structures using a for loop with index variable 'elem' that iterates through enum_obj/integer_obj/order_obj/password_obj/string_obj arrays.  When processing multi-element fields like PREREQUISITES and ENUM_POSSIBLE_VALUES, these functions read multiple consecutive array elements using expressions like 'enum_obj[elem + reqs]' and 'enum_obj[elem + pos_values]' within nested loops.  The bug is that the bounds check only validated elem, but did not consider the additional offset when accessing elem + reqs or elem + pos_values.  The fix changes the bounds check to validate the actual accessed index.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16: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-71071",
                        "url": "https://ubuntu.com/security/CVE-2025-71071",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu/mediatek: fix use-after-free on probe deferral  The driver is dropping the references taken to the larb devices during probe after successful lookup as well as on errors. This can potentially lead to a use-after-free in case a larb device has not yet been bound to its driver so that the iommu driver probe defers.  Fix this by keeping the references as expected while the iommu driver is bound.",
                        "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-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-71149",
                        "url": "https://ubuntu.com/security/CVE-2025-71149",
                        "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68778",
                        "url": "https://ubuntu.com/security/CVE-2025-68778",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: don't log conflicting inode if it's a dir moved in the current transaction  We can't log a conflicting inode if it's a directory and it was moved from one parent directory to another parent directory in the current transaction, as this can result an attempt to have a directory with two hard links during log replay, one for the old parent directory and another for the new parent directory.  The following scenario triggers that issue:  1) We have directories \"dir1\" and \"dir2\" created in a past transaction.    Directory \"dir1\" has inode A as its parent directory;  2) We move \"dir1\" to some other directory;  3) We create a file with the name \"dir1\" in directory inode A;  4) We fsync the new file. This results in logging the inode of the new file    and the inode for the directory \"dir1\" that was previously moved in the    current transaction. So the log tree has the INODE_REF item for the    new location of \"dir1\";  5) We move the new file to some other directory. This results in updating    the log tree to included the new INODE_REF for the new location of the    file and removes the INODE_REF for the old location. This happens    during the rename when we call btrfs_log_new_name();  6) We fsync the file, and that persists the log tree changes done in the    previous step (btrfs_log_new_name() only updates the log tree in    memory);  7) We have a power failure;  8) Next time the fs is mounted, log replay happens and when processing    the inode for directory \"dir1\" we find a new INODE_REF and add that    link, but we don't remove the old link of the inode since we have    not logged the old parent directory of the directory inode \"dir1\".  As a result after log replay finishes when we trigger writeback of the subvolume tree's extent buffers, the tree check will detect that we have a directory a hard link count of 2 and we get a mount failure. The errors and stack traces reported in dmesg/syslog are like this:     [ 3845.729764] BTRFS info (device dm-0): start tree-log replay    [ 3845.730304] page: refcount:3 mapcount:0 mapping:000000005c8a3027 index:0x1d00 pfn:0x11510c    [ 3845.731236] memcg:ffff9264c02f4e00    [ 3845.731751] aops:btree_aops [btrfs] ino:1    [ 3845.732300] flags: 0x17fffc00000400a(uptodate|private|writeback|node=0|zone=2|lastcpupid=0x1ffff)    [ 3845.733346] raw: 017fffc00000400a 0000000000000000 dead000000000122 ffff9264d978aea8    [ 3845.734265] raw: 0000000000001d00 ffff92650e6d4738 00000003ffffffff ffff9264c02f4e00    [ 3845.735305] page dumped because: eb page dump    [ 3845.735981] BTRFS critical (device dm-0): corrupt leaf: root=5 block=30408704 slot=6 ino=257, invalid nlink: has 2 expect no more than 1 for dir    [ 3845.737786] BTRFS info (device dm-0): leaf 30408704 gen 10 total ptrs 17 free space 14881 owner 5    [ 3845.737789] BTRFS info (device dm-0): refs 4 lock_owner 0 current 30701    [ 3845.737792] \titem 0 key (256 INODE_ITEM 0) itemoff 16123 itemsize 160    [ 3845.737794] \t\tinode generation 3 transid 9 size 16 nbytes 16384    [ 3845.737795] \t\tblock group 0 mode 40755 links 1 uid 0 gid 0    [ 3845.737797] \t\trdev 0 sequence 2 flags 0x0    [ 3845.737798] \t\tatime 1764259517.0    [ 3845.737800] \t\tctime 1764259517.572889464    [ 3845.737801] \t\tmtime 1764259517.572889464    [ 3845.737802] \t\totime 1764259517.0    [ 3845.737803] \titem 1 key (256 INODE_REF 256) itemoff 16111 itemsize 12    [ 3845.737805] \t\tindex 0 name_len 2    [ 3845.737807] \titem 2 key (256 DIR_ITEM 2363071922) itemoff 16077 itemsize 34    [ 3845.737808] \t\tlocation key (257 1 0) type 2    [ 3845.737810] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737811] \titem 3 key (256 DIR_ITEM 2676584006) itemoff 16043 itemsize 34    [ 3845.737813] \t\tlocation key (258 1 0) type 2    [ 3845.737814] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737815] \titem 4 key (256 DIR_INDEX 2) itemoff 16009 itemsize 34    [ 3845.737816] \t\tlocation key (257 1 0) type 2    [ ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71119",
                        "url": "https://ubuntu.com/security/CVE-2025-71119",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/kexec: Enable SMT before waking offline CPUs  If SMT is disabled or a partial SMT state is enabled, when a new kernel image is loaded for kexec, on reboot the following warning is observed:  kexec: Waking offline cpu 228. WARNING: CPU: 0 PID: 9062 at arch/powerpc/kexec/core_64.c:223 kexec_prepare_cpus+0x1b0/0x1bc [snip]  NIP kexec_prepare_cpus+0x1b0/0x1bc  LR  kexec_prepare_cpus+0x1a0/0x1bc  Call Trace:   kexec_prepare_cpus+0x1a0/0x1bc (unreliable)   default_machine_kexec+0x160/0x19c   machine_kexec+0x80/0x88   kernel_kexec+0xd0/0x118   __do_sys_reboot+0x210/0x2c4   system_call_exception+0x124/0x320   system_call_vectored_common+0x15c/0x2ec  This occurs as add_cpu() fails due to cpu_bootable() returning false for CPUs that fail the cpu_smt_thread_allowed() check or non primary threads if SMT is disabled.  Fix the issue by enabling SMT and resetting the number of SMT threads to the number of threads per core, before attempting to wake up all present CPUs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-71148",
                        "url": "https://ubuntu.com/security/CVE-2025-71148",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: restore destructor on submit failure  handshake_req_submit() replaces sk->sk_destruct but never restores it when submission fails before the request is hashed. handshake_sk_destruct() then returns early and the original destructor never runs, leaking the socket. Restore sk_destruct on the error path.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15: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-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-71107",
                        "url": "https://ubuntu.com/security/CVE-2025-71107",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: ensure node page reads complete before f2fs_put_super() finishes  Xfstests generic/335, generic/336 sometimes crash with the following message:  F2FS-fs (dm-0): detect filesystem reference count leak during umount, type: 9, count: 1 ------------[ cut here ]------------ kernel BUG at fs/f2fs/super.c:1939! Oops: invalid opcode: 0000 [#1] SMP NOPTI CPU: 1 UID: 0 PID: 609351 Comm: umount Tainted: G        W          6.17.0-rc5-xfstests-g9dd1835ecda5 #1 PREEMPT(none) Tainted: [W]=WARN Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:f2fs_put_super+0x3b3/0x3c0 Call Trace:  <TASK>  generic_shutdown_super+0x7e/0x190  kill_block_super+0x1a/0x40  kill_f2fs_super+0x9d/0x190  deactivate_locked_super+0x30/0xb0  cleanup_mnt+0xba/0x150  task_work_run+0x5c/0xa0  exit_to_user_mode_loop+0xb7/0xc0  do_syscall_64+0x1ae/0x1c0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  </TASK> ---[ end trace 0000000000000000 ]---  It appears that sometimes it is possible that f2fs_put_super() is called before all node page reads are completed. Adding a call to f2fs_wait_on_all_pages() for F2FS_RD_NODE fixes the problem.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15: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-71126",
                        "url": "https://ubuntu.com/security/CVE-2025-71126",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: avoid deadlock on fallback while reinjecting  Jakub reported an MPTCP deadlock at fallback time:   WARNING: possible recursive locking detected  6.18.0-rc7-virtme #1 Not tainted  --------------------------------------------  mptcp_connect/20858 is trying to acquire lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_try_fallback+0xd8/0x280   but task is already holding lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   other info that might help us debug this:   Possible unsafe locking scenario:          CPU0         ----    lock(&msk->fallback_lock);    lock(&msk->fallback_lock);    *** DEADLOCK ***    May be due to missing lock nesting notation   3 locks held by mptcp_connect/20858:   #0: ff1100001da18290 (sk_lock-AF_INET){+.+.}-{0:0}, at: mptcp_sendmsg+0x114/0x1bc0   #1: ff1100001db40fd0 (k-sk_lock-AF_INET#2){+.+.}-{0:0}, at: __mptcp_retrans+0x2cb/0xaa0   #2: ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   stack backtrace:  CPU: 0 UID: 0 PID: 20858 Comm: mptcp_connect Not tainted 6.18.0-rc7-virtme #1 PREEMPT(full)  Hardware name: Bochs, BIOS Bochs 01/01/2011  Call Trace:   <TASK>   dump_stack_lvl+0x6f/0xa0   print_deadlock_bug.cold+0xc0/0xcd   validate_chain+0x2ff/0x5f0   __lock_acquire+0x34c/0x740   lock_acquire.part.0+0xbc/0x260   _raw_spin_lock_bh+0x38/0x50   __mptcp_try_fallback+0xd8/0x280   mptcp_sendmsg_frag+0x16c2/0x3050   __mptcp_retrans+0x421/0xaa0   mptcp_release_cb+0x5aa/0xa70   release_sock+0xab/0x1d0   mptcp_sendmsg+0xd5b/0x1bc0   sock_write_iter+0x281/0x4d0   new_sync_write+0x3c5/0x6f0   vfs_write+0x65e/0xbb0   ksys_write+0x17e/0x200   do_syscall_64+0xbb/0xfd0   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7fa5627cbc5e  Code: 4d 89 d8 e8 14 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa  RSP: 002b:00007fff1fe14700 EFLAGS: 00000202 ORIG_RAX: 0000000000000001  RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00007fa5627cbc5e  RDX: 0000000000001f9c RSI: 00007fff1fe16984 RDI: 0000000000000005  RBP: 00007fff1fe14710 R08: 0000000000000000 R09: 0000000000000000  R10: 0000000000000000 R11: 0000000000000202 R12: 00007fff1fe16920  R13: 0000000000002000 R14: 0000000000001f9c R15: 0000000000001f9c  The packet scheduler could attempt a reinjection after receiving an MP_FAIL and before the infinite map has been transmitted, causing a deadlock since MPTCP needs to do the reinjection atomically from WRT fallback.  Address the issue explicitly avoiding the reinjection in the critical scenario. Note that this is the only fallback critical section that could potentially send packets and hit the double-lock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-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-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-71151",
                        "url": "https://ubuntu.com/security/CVE-2025-71151",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cifs: Fix memory and information leak in smb3_reconfigure()  In smb3_reconfigure(), if smb3_sync_session_ctx_passwords() fails, the function returns immediately without freeing and erasing the newly allocated new_password and new_password2. This causes both a memory leak and a potential information leak.  Fix this by calling kfree_sensitive() on both password buffers before returning in this error case.",
                        "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-68773",
                        "url": "https://ubuntu.com/security/CVE-2025-68773",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: fsl-cpm: Check length parity before switching to 16 bit mode  Commit fc96ec826bce (\"spi: fsl-cpm: Use 16 bit mode for large transfers with even size\") failed to make sure that the size is really even before switching to 16 bit mode. Until recently the problem went unnoticed because kernfs uses a pre-allocated bounce buffer of size PAGE_SIZE for reading EEPROM.  But commit 8ad6249c51d0 (\"eeprom: at25: convert to spi-mem API\") introduced an additional dynamically allocated bounce buffer whose size is exactly the size of the transfer, leading to a buffer overrun in the fsl-cpm driver when that size is odd.  Add the missing length parity verification and remain in 8 bit mode when the length is not even.",
                        "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-68806",
                        "url": "https://ubuntu.com/security/CVE-2025-68806",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix buffer validation by including null terminator size in EA length  The smb2_set_ea function, which handles Extended Attributes (EA), was performing buffer validation checks that incorrectly omitted the size of the null terminating character (+1 byte) for EA Name. This patch fixes the issue by explicitly adding '+ 1' to EaNameLength where the null terminator is expected to be present in the buffer, ensuring the validation accurately reflects the total required buffer size.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71150",
                        "url": "https://ubuntu.com/security/CVE-2025-71150",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix refcount leak when invalid session is found on session lookup  When a session is found but its state is not SMB2_SESSION_VALID, It indicates that no valid session was found, but it is missing to decrement the reference count acquired by the session lookup, which results in a reference count leak. This patch fixes the issue by explicitly calling ksmbd_user_session_put to release the reference to the session.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68786",
                        "url": "https://ubuntu.com/security/CVE-2025-68786",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: skip lock-range check on equal size to avoid size==0 underflow  When size equals the current i_size (including 0), the code used to call check_lock_range(filp, i_size, size - 1, WRITE), which computes `size - 1` and can underflow for size==0. Skip the equal case.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68789",
                        "url": "https://ubuntu.com/security/CVE-2025-68789",
                        "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                        "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-68775",
                        "url": "https://ubuntu.com/security/CVE-2025-68775",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: duplicate handshake cancellations leak socket  When a handshake request is cancelled it is removed from the handshake_net->hn_requests list, but it is still present in the handshake_rhashtbl until it is destroyed.  If a second cancellation request arrives for the same handshake request, then remove_pending() will return false... and assuming HANDSHAKE_F_REQ_COMPLETED isn't set in req->hr_flags, we'll continue processing through the out_true label, where we put another reference on the sock and a refcount underflow occurs.  This can happen for example if a handshake times out - particularly if the SUNRPC client sends the AUTH_TLS probe to the server but doesn't follow it up with the ClientHello due to a problem with tlshd.  When the timeout is hit on the server, the server will send a FIN, which triggers a cancellation request via xs_reset_transport().  When the timeout is hit on the client, another cancellation request happens via xs_tls_handshake_sync().  Add a test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED) in the pending cancel path so duplicate cancels can be detected.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15: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-71122",
                        "url": "https://ubuntu.com/security/CVE-2025-71122",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommufd/selftest: Check for overflow in IOMMU_TEST_OP_ADD_RESERVED  syzkaller found it could overflow math in the test infrastructure and cause a WARN_ON by corrupting the reserved interval tree. This only effects test kernels with CONFIG_IOMMUFD_TEST.  Validate the user input length in the test ioctl.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-68809",
                        "url": "https://ubuntu.com/security/CVE-2025-68809",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: vfs: fix race on m_flags in vfs_cache  ksmbd maintains delete-on-close and pending-delete state in ksmbd_inode->m_flags. In vfs_cache.c this field is accessed under inconsistent locking: some paths read and modify m_flags under ci->m_lock while others do so without taking the lock at all.  Examples:   - ksmbd_query_inode_status() and __ksmbd_inode_close() use    ci->m_lock when checking or updating m_flags.  - ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete() and ksmbd_fd_set_delete_on_close()    used to read and modify m_flags without ci->m_lock.  This creates a potential data race on m_flags when multiple threads open, close and delete the same file concurrently. In the worst case delete-on-close and pending-delete bits can be lost or observed in an inconsistent state, leading to confusing delete semantics (files that stay on disk after delete-on-close, or files that disappear while still in use).  Fix it by:   - Making ksmbd_query_inode_status() look at m_flags under ci->m_lock    after dropping inode_hash_lock.  - Adding ci->m_lock protection to all helpers that read or modify    m_flags (ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete(), ksmbd_fd_set_delete_on_close()).  - Keeping the existing ci->m_lock protection in __ksmbd_inode_close(),    and moving the actual unlink/xattr removal outside the lock.  This unifies the locking around m_flags and removes the data race while preserving the existing delete-on-close behaviour.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68817",
                        "url": "https://ubuntu.com/security/CVE-2025-68817",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency  Under high concurrency, A tree-connection object (tcon) is freed on a disconnect path while another path still holds a reference and later executes *_put()/write on it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16: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-71067",
                        "url": "https://ubuntu.com/security/CVE-2025-71067",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs: set dummy blocksize to read boot_block when mounting  When mounting, sb->s_blocksize is used to read the boot_block without being defined or validated. Set a dummy blocksize before attempting to read the boot_block.  The issue can be triggered with the following syz reproducer:    mkdirat(0xffffffffffffff9c, &(0x7f0000000080)='./file1\\x00', 0x0)   r4 = openat$nullb(0xffffffffffffff9c, &(0x7f0000000040), 0x121403, 0x0)   ioctl$FS_IOC_SETFLAGS(r4, 0x40081271, &(0x7f0000000980)=0x4000)   mount(&(0x7f0000000140)=@nullb, &(0x7f0000000040)='./cgroup\\x00',         &(0x7f0000000000)='ntfs3\\x00', 0x2208004, 0x0)   syz_clone(0x88200200, 0x0, 0x0, 0x0, 0x0, 0x0)  Here, the ioctl sets the bdev block size to 16384. During mount, get_tree_bdev_flags() calls sb_set_blocksize(sb, block_size(bdev)), but since block_size(bdev) > PAGE_SIZE, sb_set_blocksize() leaves sb->s_blocksize at zero.  Later, ntfs_init_from_boot() attempts to read the boot_block while sb->s_blocksize is still zero, which triggers the bug.  [almaz.alexandrovich@paragon-software.com: changed comment style, added return value handling]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16: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-68798",
                        "url": "https://ubuntu.com/security/CVE-2025-68798",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf/x86/amd: Check event before enable to avoid GPF  On AMD machines cpuc->events[idx] can become NULL in a subtle race condition with NMI->throttle->x86_pmu_stop().  Check event for NULL in amd_pmu_enable_all() before enable to avoid a GPF. This appears to be an AMD only issue.  Syzkaller reported a GPF in amd_pmu_enable_all.  INFO: NMI handler (perf_event_nmi_handler) took too long to run: 13.143     msecs Oops: general protection fault, probably for non-canonical address     0xdffffc0000000034: 0000  PREEMPT SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x00000000000001a0-0x00000000000001a7] CPU: 0 UID: 0 PID: 328415 Comm: repro_36674776 Not tainted 6.12.0-rc1-syzk RIP: 0010:x86_pmu_enable_event (arch/x86/events/perf_event.h:1195     arch/x86/events/core.c:1430) RSP: 0018:ffff888118009d60 EFLAGS: 00010012 RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000000034 RSI: 0000000000000000 RDI: 00000000000001a0 RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000002 R13: ffff88811802a440 R14: ffff88811802a240 R15: ffff8881132d8601 FS:  00007f097dfaa700(0000) GS:ffff888118000000(0000) GS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000200001c0 CR3: 0000000103d56000 CR4: 00000000000006f0 Call Trace:  <IRQ> amd_pmu_enable_all (arch/x86/events/amd/core.c:760 (discriminator 2)) x86_pmu_enable (arch/x86/events/core.c:1360) event_sched_out (kernel/events/core.c:1191 kernel/events/core.c:1186     kernel/events/core.c:2346) __perf_remove_from_context (kernel/events/core.c:2435) event_function (kernel/events/core.c:259) remote_function (kernel/events/core.c:92 (discriminator 1)     kernel/events/core.c:72 (discriminator 1)) __flush_smp_call_function_queue (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207 ./include/trace/events/csd.h:64     kernel/smp.c:135 kernel/smp.c:540) __sysvec_call_function_single (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207     ./arch/x86/include/asm/trace/irq_vectors.h:99 arch/x86/kernel/smp.c:272) sysvec_call_function_single (arch/x86/kernel/smp.c:266 (discriminator 47)     arch/x86/kernel/smp.c:266 (discriminator 47))  </IRQ>",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68794",
                        "url": "https://ubuntu.com/security/CVE-2025-68794",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iomap: adjust read range correctly for non-block-aligned positions  iomap_adjust_read_range() assumes that the position and length passed in are block-aligned. This is not always the case however, as shown in the syzbot generated case for erofs. This causes too many bytes to be skipped for uptodate blocks, which results in returning the incorrect position and length to read in. If all the blocks are uptodate, this underflows length and returns a position beyond the folio.  Fix the calculation to also take into account the block offset when calculating how many bytes can be skipped for uptodate blocks.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16: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-68766",
                        "url": "https://ubuntu.com/security/CVE-2025-68766",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()  If irq_domain_translate_twocell() sets \"hwirq\" to >= MCHP_EIC_NIRQ (2) then it results in an out of bounds access.  The code checks for invalid values, but doesn't set the error code.  Return -EINVAL in that case, instead of returning success.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68756",
                        "url": "https://ubuntu.com/security/CVE-2025-68756",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  block: Use RCU in blk_mq_[un]quiesce_tagset() instead of set->tag_list_lock  blk_mq_{add,del}_queue_tag_set() functions add and remove queues from tagset, the functions make sure that tagset and queues are marked as shared when two or more queues are attached to the same tagset. Initially a tagset starts as unshared and when the number of added queues reaches two, blk_mq_add_queue_tag_set() marks it as shared along with all the queues attached to it. When the number of attached queues drops to 1 blk_mq_del_queue_tag_set() need to mark both the tagset and the remaining queues as unshared.  Both functions need to freeze current queues in tagset before setting on unsetting BLK_MQ_F_TAG_QUEUE_SHARED flag. While doing so, both functions hold set->tag_list_lock mutex, which makes sense as we do not want queues to be added or deleted in the process. This used to work fine until commit 98d81f0df70c (\"nvme: use blk_mq_[un]quiesce_tagset\") made the nvme driver quiesce tagset instead of quiscing individual queues. blk_mq_quiesce_tagset() does the job and quiesce the queues in set->tag_list while holding set->tag_list_lock also.  This results in deadlock between two threads with these stacktraces:    __schedule+0x47c/0xbb0   ? timerqueue_add+0x66/0xb0   schedule+0x1c/0xa0   schedule_preempt_disabled+0xa/0x10   __mutex_lock.constprop.0+0x271/0x600   blk_mq_quiesce_tagset+0x25/0xc0   nvme_dev_disable+0x9c/0x250   nvme_timeout+0x1fc/0x520   blk_mq_handle_expired+0x5c/0x90   bt_iter+0x7e/0x90   blk_mq_queue_tag_busy_iter+0x27e/0x550   ? __blk_mq_complete_request_remote+0x10/0x10   ? __blk_mq_complete_request_remote+0x10/0x10   ? __call_rcu_common.constprop.0+0x1c0/0x210   blk_mq_timeout_work+0x12d/0x170   process_one_work+0x12e/0x2d0   worker_thread+0x288/0x3a0   ? rescuer_thread+0x480/0x480   kthread+0xb8/0xe0   ? kthread_park+0x80/0x80   ret_from_fork+0x2d/0x50   ? kthread_park+0x80/0x80   ret_from_fork_asm+0x11/0x20    __schedule+0x47c/0xbb0   ? xas_find+0x161/0x1a0   schedule+0x1c/0xa0   blk_mq_freeze_queue_wait+0x3d/0x70   ? destroy_sched_domains_rcu+0x30/0x30   blk_mq_update_tag_set_shared+0x44/0x80   blk_mq_exit_queue+0x141/0x150   del_gendisk+0x25a/0x2d0   nvme_ns_remove+0xc9/0x170   nvme_remove_namespaces+0xc7/0x100   nvme_remove+0x62/0x150   pci_device_remove+0x23/0x60   device_release_driver_internal+0x159/0x200   unbind_store+0x99/0xa0   kernfs_fop_write_iter+0x112/0x1e0   vfs_write+0x2b1/0x3d0   ksys_write+0x4e/0xb0   do_syscall_64+0x5b/0x160   entry_SYSCALL_64_after_hwframe+0x4b/0x53  The top stacktrace is showing nvme_timeout() called to handle nvme command timeout. timeout handler is trying to disable the controller and as a first step, it needs to blk_mq_quiesce_tagset() to tell blk-mq not to call queue callback handlers. The thread is stuck waiting for set->tag_list_lock as it tries to walk the queues in set->tag_list.  The lock is held by the second thread in the bottom stack which is waiting for one of queues to be frozen. The queue usage counter will drop to zero after nvme_timeout() finishes, and this will not happen because the thread will wait for this mutex forever.  Given that [un]quiescing queue is an operation that does not need to sleep, update blk_mq_[un]quiesce_tagset() to use RCU instead of taking set->tag_list_lock, update blk_mq_{add,del}_queue_tag_set() to use RCU safe list operations. Also, delete INIT_LIST_HEAD(&q->tag_set_list) in blk_mq_del_queue_tag_set() because we can not re-initialize it while the list is being traversed under RCU. The deleted queue will not be added/deleted to/from a tagset and it will be freed in blk_free_queue() after the end of RCU grace period.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68753",
                        "url": "https://ubuntu.com/security/CVE-2025-68753",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: add bounds check in put_user loop for DSP events  In the DSP event handling code, a put_user() loop copies event data. When the user buffer size is not aligned to 4 bytes, it could overwrite beyond the buffer boundary.  Fix by adding a bounds check before put_user().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68347",
                        "url": "https://ubuntu.com/security/CVE-2025-68347",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: fix buffer overflow in hwdep read for DSP events  The DSP event handling code in hwdep_read() could write more bytes to the user buffer than requested, when a user provides a buffer smaller than the event header size (8 bytes).  Fix by using min_t() to clamp the copy size, This ensures we never copy more than the user requested.",
                        "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-68763",
                        "url": "https://ubuntu.com/security/CVE-2025-68763",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: starfive - Correctly handle return of sg_nents_for_len  The return value of sg_nents_for_len was assigned to an unsigned long in starfive_hash_digest, causing negative error codes to be converted to large positive integers.  Add error checking for sg_nents_for_len and return immediately on failure to prevent potential buffer overflows.",
                        "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-68741",
                        "url": "https://ubuntu.com/security/CVE-2025-68741",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Fix improper freeing of purex item  In qla2xxx_process_purls_iocb(), an item is allocated via qla27xx_copy_multiple_pkt(), which internally calls qla24xx_alloc_purex_item().  The qla24xx_alloc_purex_item() function may return a pre-allocated item from a per-adapter pool for small allocations, instead of dynamically allocating memory with kzalloc().  An error handling path in qla2xxx_process_purls_iocb() incorrectly uses kfree() to release the item. If the item was from the pre-allocated pool, calling kfree() on it is a bug that can lead to memory corruption.  Fix this by using the correct deallocation function, qla24xx_free_purex_item(), which properly handles both dynamically allocated and pre-allocated items.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68742",
                        "url": "https://ubuntu.com/security/CVE-2025-68742",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix invalid prog->stats access when update_effective_progs fails  Syzkaller triggers an invalid memory access issue following fault injection in update_effective_progs. The issue can be described as follows:  __cgroup_bpf_detach   update_effective_progs     compute_effective_progs       bpf_prog_array_alloc <-- fault inject   purge_effective_progs     /* change to dummy_bpf_prog */     array->items[index] = &dummy_bpf_prog.prog  ---softirq start--- __do_softirq   ...     __cgroup_bpf_run_filter_skb       __bpf_prog_run_save_cb         bpf_prog_run           stats = this_cpu_ptr(prog->stats)           /* invalid memory access */           flags = u64_stats_update_begin_irqsave(&stats->syncp) ---softirq end---    static_branch_dec(&cgroup_bpf_enabled_key[atype])  The reason is that fault injection caused update_effective_progs to fail and then changed the original prog into dummy_bpf_prog.prog in purge_effective_progs. Then a softirq came, and accessing the members of dummy_bpf_prog.prog in the softirq triggers invalid mem access.  To fix it, skip updating stats when stats is NULL.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16: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-68363",
                        "url": "https://ubuntu.com/security/CVE-2025-68363",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Check skb->transport_header is set in bpf_skb_check_mtu  The bpf_skb_check_mtu helper needs to use skb->transport_header when the BPF_MTU_CHK_SEGS flag is used:  \tbpf_skb_check_mtu(skb, ifindex, &mtu_len, 0, BPF_MTU_CHK_SEGS)  The transport_header is not always set. There is a WARN_ON_ONCE report when CONFIG_DEBUG_NET is enabled + skb->gso_size is set + bpf_prog_test_run is used:  WARNING: CPU: 1 PID: 2216 at ./include/linux/skbuff.h:3071  skb_gso_validate_network_len  bpf_skb_check_mtu  bpf_prog_3920e25740a41171_tc_chk_segs_flag # A test in the next patch  bpf_test_run  bpf_prog_test_run_skb  For a normal ingress skb (not test_run), skb_reset_transport_header is performed but there is plan to avoid setting it as described in commit 2170a1f09148 (\"net: no longer reset transport_header in __netif_receive_skb_core()\").  This patch fixes the bpf helper by checking skb_transport_header_was_set(). The check is done just before skb->transport_header is used, to avoid breaking the existing bpf prog. The WARN_ON_ONCE is limited to bpf_prog_test_run, so targeting bpf-next.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68744",
                        "url": "https://ubuntu.com/security/CVE-2025-68744",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Free special fields when update [lru_,]percpu_hash maps  As [lru_,]percpu_hash maps support BPF_KPTR_{REF,PERCPU}, missing calls to 'bpf_obj_free_fields()' in 'pcpu_copy_value()' could cause the memory referenced by BPF_KPTR_{REF,PERCPU} fields to be held until the map gets freed.  Fix this by calling 'bpf_obj_free_fields()' after 'copy_map_value[,_long]()' in 'pcpu_copy_value()'.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16: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-68755",
                        "url": "https://ubuntu.com/security/CVE-2025-68755",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: most: remove broken i2c driver  The MOST I2C driver has been completely broken for five years without anyone noticing so remove the driver from staging.  Specifically, commit 723de0f9171e (\"staging: most: remove device from interface structure\") started requiring drivers to set the interface device pointer before registration, but the I2C driver was never updated which results in a NULL pointer dereference if anyone ever tries to probe it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68371",
                        "url": "https://ubuntu.com/security/CVE-2025-68371",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: smartpqi: Fix device resources accessed after device removal  Correct possible race conditions during device removal.  Previously, a scheduled work item to reset a LUN could still execute after the device was removed, leading to use-after-free and other resource access issues.  This race condition occurs because the abort handler may schedule a LUN reset concurrently with device removal via sdev_destroy(), leading to use-after-free and improper access to freed resources.    - Check in the device reset handler if the device is still present in     the controller's SCSI device list before running; if not, the reset     is skipped.    - Cancel any pending TMF work that has not started in sdev_destroy().    - Ensure device freeing in sdev_destroy() is done while holding the     LUN reset mutex to avoid races with ongoing resets.",
                        "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-68379",
                        "url": "https://ubuntu.com/security/CVE-2025-68379",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Fix null deref on srq->rq.queue after resize failure  A NULL pointer dereference can occur in rxe_srq_chk_attr() when ibv_modify_srq() is invoked twice in succession under certain error conditions. The first call may fail in rxe_queue_resize(), which leads rxe_srq_from_attr() to set srq->rq.queue = NULL. The second call then triggers a crash (null deref) when accessing srq->rq.queue->buf->index_mask.  Call Trace: <TASK> rxe_modify_srq+0x170/0x480 [rdma_rxe] ? __pfx_rxe_modify_srq+0x10/0x10 [rdma_rxe] ? uverbs_try_lock_object+0x4f/0xa0 [ib_uverbs] ? rdma_lookup_get_uobject+0x1f0/0x380 [ib_uverbs] ib_uverbs_modify_srq+0x204/0x290 [ib_uverbs] ? __pfx_ib_uverbs_modify_srq+0x10/0x10 [ib_uverbs] ? tryinc_node_nr_active+0xe6/0x150 ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x2c0/0x470 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_run_method+0x55a/0x6e0 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ib_uverbs_cmd_verbs+0x54d/0x800 [ib_uverbs] ? __pfx_ib_uverbs_cmd_verbs+0x10/0x10 [ib_uverbs] ? __pfx___raw_spin_lock_irqsave+0x10/0x10 ? __pfx_do_vfs_ioctl+0x10/0x10 ? ioctl_has_perm.constprop.0.isra.0+0x2c7/0x4c0 ? __pfx_ioctl_has_perm.constprop.0.isra.0+0x10/0x10 ib_uverbs_ioctl+0x13e/0x220 [ib_uverbs] ? __pfx_ib_uverbs_ioctl+0x10/0x10 [ib_uverbs] __x64_sys_ioctl+0x138/0x1c0 do_syscall_64+0x82/0x250 ? fdget_pos+0x58/0x4c0 ? ksys_write+0xf3/0x1c0 ? __pfx_ksys_write+0x10/0x10 ? do_syscall_64+0xc8/0x250 ? __pfx_vm_mmap_pgoff+0x10/0x10 ? fget+0x173/0x230 ? fput+0x2a/0x80 ? ksys_mmap_pgoff+0x224/0x4c0 ? do_syscall_64+0xc8/0x250 ? do_user_addr_fault+0x37b/0xfe0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 entry_SYSCALL_64_after_hwframe+0x76/0x7e",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68380",
                        "url": "https://ubuntu.com/security/CVE-2025-68380",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix peer HE MCS assignment  In ath11k_wmi_send_peer_assoc_cmd(), peer's transmit MCS is sent to firmware as receive MCS while peer's receive MCS sent as transmit MCS, which goes against firmwire's definition.  While connecting to a misbehaved AP that advertises 0xffff (meaning not supported) for 160 MHz transmit MCS map, firmware crashes due to 0xffff is assigned to he_mcs->rx_mcs_set field.  \tExt Tag: HE Capabilities \t    [...] \t    Supported HE-MCS and NSS Set \t\t[...] \t        Rx and Tx MCS Maps 160 MHz \t\t    [...] \t            Tx HE-MCS Map 160 MHz: 0xffff  Swap the assignment to fix this issue.  As the HE rate control mask is meant to limit our own transmit MCS, it needs to go via he_mcs->rx_mcs_set field. With the aforementioned swapping done, change is needed as well to apply it to the peer's receive MCS.  Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41 Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11: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-68256",
                        "url": "https://ubuntu.com/security/CVE-2025-68256",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in rtw_get_ie() parser  The Information Element (IE) parser rtw_get_ie() trusted the length byte of each IE without validating that the IE body (len bytes after the 2-byte header) fits inside the remaining frame buffer. A malformed frame can advertise an IE length larger than the available data, causing the parser to increment its pointer beyond the buffer end. This results in out-of-bounds reads or, depending on the pattern, an infinite loop.  Fix by validating that (offset + 2 + len) does not exceed the limit before accepting the IE or advancing to the next element.  This prevents OOB reads and ensures the parser terminates safely on malformed frames.",
                        "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-68265",
                        "url": "https://ubuntu.com/security/CVE-2025-68265",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: fix admin request_queue lifetime  The namespaces can access the controller's admin request_queue, and stale references on the namespaces may exist after tearing down the controller. Ensure the admin request_queue is active by moving the controller's 'put' to after all controller references have been released to ensure no one is can access the request_queue. This fixes a reported use-after-free bug:    BUG: KASAN: slab-use-after-free in blk_queue_enter+0x41c/0x4a0   Read of size 8 at addr ffff88c0a53819f8 by task nvme/3287   CPU: 67 UID: 0 PID: 3287 Comm: nvme Tainted: G            E      6.13.2-ga1582f1a031e #15   Tainted: [E]=UNSIGNED_MODULE   Hardware name: Jabil /EGS 2S MB1, BIOS 1.00 06/18/2025   Call Trace:    <TASK>    dump_stack_lvl+0x4f/0x60    print_report+0xc4/0x620    ? _raw_spin_lock_irqsave+0x70/0xb0    ? _raw_read_unlock_irqrestore+0x30/0x30    ? blk_queue_enter+0x41c/0x4a0    kasan_report+0xab/0xe0    ? blk_queue_enter+0x41c/0x4a0    blk_queue_enter+0x41c/0x4a0    ? __irq_work_queue_local+0x75/0x1d0    ? blk_queue_start_drain+0x70/0x70    ? irq_work_queue+0x18/0x20    ? vprintk_emit.part.0+0x1cc/0x350    ? wake_up_klogd_work_func+0x60/0x60    blk_mq_alloc_request+0x2b7/0x6b0    ? __blk_mq_alloc_requests+0x1060/0x1060    ? __switch_to+0x5b7/0x1060    nvme_submit_user_cmd+0xa9/0x330    nvme_user_cmd.isra.0+0x240/0x3f0    ? force_sigsegv+0xe0/0xe0    ? nvme_user_cmd64+0x400/0x400    ? vfs_fileattr_set+0x9b0/0x9b0    ? cgroup_update_frozen_flag+0x24/0x1c0    ? cgroup_leave_frozen+0x204/0x330    ? nvme_ioctl+0x7c/0x2c0    blkdev_ioctl+0x1a8/0x4d0    ? blkdev_common_ioctl+0x1930/0x1930    ? fdget+0x54/0x380    __x64_sys_ioctl+0x129/0x190    do_syscall_64+0x5b/0x160    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f765f703b0b   Code: ff ff ff 85 c0 79 9b 49 c7 c4 ff ff ff ff 5b 5d 4c 89 e0 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d dd 52 0f 00 f7 d8 64 89 01 48   RSP: 002b:00007ffe2cefe808 EFLAGS: 00000202 ORIG_RAX: 0000000000000010   RAX: ffffffffffffffda RBX: 00007ffe2cefe860 RCX: 00007f765f703b0b   RDX: 00007ffe2cefe860 RSI: 00000000c0484e41 RDI: 0000000000000003   RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000000   R10: 00007f765f611d50 R11: 0000000000000202 R12: 0000000000000003   R13: 00000000c0484e41 R14: 0000000000000001 R15: 00007ffe2cefea60    </TASK>",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15: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-68259",
                        "url": "https://ubuntu.com/security/CVE-2025-68259",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: SVM: Don't skip unrelated instruction if INT3/INTO is replaced  When re-injecting a soft interrupt from an INT3, INT0, or (select) INTn instruction, discard the exception and retry the instruction if the code stream is changed (e.g. by a different vCPU) between when the CPU executes the instruction and when KVM decodes the instruction to get the next RIP.  As effectively predicted by commit 6ef88d6e36c2 (\"KVM: SVM: Re-inject INT3/INTO instead of retrying the instruction\"), failure to verify that the correct INTn instruction was decoded can effectively clobber guest state due to decoding the wrong instruction and thus specifying the wrong next RIP.  The bug most often manifests as \"Oops: int3\" panics on static branch checks in Linux guests.  Enabling or disabling a static branch in Linux uses the kernel's \"text poke\" code patching mechanism.  To modify code while other CPUs may be executing that code, Linux (temporarily) replaces the first byte of the original instruction with an int3 (opcode 0xcc), then patches in the new code stream except for the first byte, and finally replaces the int3 with the first byte of the new code stream.  If a CPU hits the int3, i.e. executes the code while it's being modified, then the guest kernel must look up the RIP to determine how to handle the #BP, e.g. by emulating the new instruction.  If the RIP is incorrect, then this lookup fails and the guest kernel panics.  The bug reproduces almost instantly by hacking the guest kernel to repeatedly check a static branch[1] while running a drgn script[2] on the host to constantly swap out the memory containing the guest's TSS.  [1]: https://gist.github.com/osandov/44d17c51c28c0ac998ea0334edf90b5a [2]: https://gist.github.com/osandov/10e45e45afa29b11e0c7209247afc00b",
                        "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-68263",
                        "url": "https://ubuntu.com/security/CVE-2025-68263",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: ipc: fix use-after-free in ipc_msg_send_request  ipc_msg_send_request() waits for a generic netlink reply using an ipc_msg_table_entry on the stack. The generic netlink handler (handle_generic_event()/handle_response()) fills entry->response under ipc_msg_table_lock, but ipc_msg_send_request() used to validate and free entry->response without holding the same lock.  Under high concurrency this allows a race where handle_response() is copying data into entry->response while ipc_msg_send_request() has just freed it, leading to a slab-use-after-free reported by KASAN in handle_generic_event():    BUG: KASAN: slab-use-after-free in handle_generic_event+0x3c4/0x5f0 [ksmbd]   Write of size 12 at addr ffff888198ee6e20 by task pool/109349   ...   Freed by task:     kvfree     ipc_msg_send_request [ksmbd]     ksmbd_rpc_open -> ksmbd_session_rpc_open [ksmbd]  Fix by: - Taking ipc_msg_table_lock in ipc_msg_send_request() while validating   entry->response, freeing it when invalid, and removing the entry from   ipc_msg_table. - Returning the final entry->response pointer to the caller only after   the hash entry is removed under the lock. - Returning NULL in the error path, preserving the original API   semantics.  This makes all accesses to entry->response consistent with handle_response(), which already updates and fills the response buffer under ipc_msg_table_lock, and closes the race that allowed the UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15: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-2026-23111",
                        "url": "https://ubuntu.com/security/CVE-2026-23111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23209",
                        "url": "https://ubuntu.com/security/CVE-2026-23209",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23074",
                        "url": "https://ubuntu.com/security/CVE-2026-23074",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23060",
                        "url": "https://ubuntu.com/security/CVE-2026-23060",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23074",
                        "url": "https://ubuntu.com/security/CVE-2026-23074",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23060",
                        "url": "https://ubuntu.com/security/CVE-2026-23060",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23111",
                        "url": "https://ubuntu.com/security/CVE-2026-23111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2151069,
                    2151070,
                    2150047,
                    2150048,
                    2149766,
                    2149762,
                    2147981,
                    2148397,
                    2146465,
                    2147982,
                    2147447,
                    2147400,
                    2147065,
                    2144577,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2145171,
                    2144060,
                    2144006,
                    2144914,
                    2143152,
                    2143083,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144380,
                    2147889,
                    2147890,
                    2144380,
                    2143477,
                    2144887,
                    2144730,
                    2143478,
                    2142235,
                    2143033,
                    2142337,
                    2141276,
                    2139322,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2144266,
                    2144267
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-31419",
                                "url": "https://ubuntu.com/security/CVE-2026-31419",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: bonding: fix use-after-free in bond_xmit_broadcast()  bond_xmit_broadcast() reuses the original skb for the last slave (determined by bond_is_last_slave()) and clones it for others. Concurrent slave enslave/release can mutate the slave list during RCU-protected iteration, changing which slave is \"last\" mid-loop. This causes the original skb to be double-consumed (double-freed).  Replace the racy bond_is_last_slave() check with a simple index comparison (i + 1 == slaves_count) against the pre-snapshot slave count taken via READ_ONCE() before the loop.  This preserves the zero-copy optimization for the last slave while making the \"last\" determination stable against concurrent list mutations.  The UAF can trigger the following crash:  ================================================================== BUG: KASAN: slab-use-after-free in skb_clone Read of size 8 at addr ffff888100ef8d40 by task exploit/147  CPU: 1 UID: 0 PID: 147 Comm: exploit Not tainted 7.0.0-rc3+ #4 PREEMPTLAZY Call Trace:  <TASK>  dump_stack_lvl (lib/dump_stack.c:123)  print_report (mm/kasan/report.c:379 mm/kasan/report.c:482)  kasan_report (mm/kasan/report.c:597)  skb_clone (include/linux/skbuff.h:1724 include/linux/skbuff.h:1792 include/linux/skbuff.h:3396 net/core/skbuff.c:2108)  bond_xmit_broadcast (drivers/net/bonding/bond_main.c:5334)  bond_start_xmit (drivers/net/bonding/bond_main.c:5567 drivers/net/bonding/bond_main.c:5593)  dev_hard_start_xmit (include/linux/netdevice.h:5325 include/linux/netdevice.h:5334 net/core/dev.c:3871 net/core/dev.c:3887)  __dev_queue_xmit (include/linux/netdevice.h:3601 net/core/dev.c:4838)  ip6_finish_output2 (include/net/neighbour.h:540 include/net/neighbour.h:554 net/ipv6/ip6_output.c:136)  ip6_finish_output (net/ipv6/ip6_output.c:208 net/ipv6/ip6_output.c:219)  ip6_output (net/ipv6/ip6_output.c:250)  ip6_send_skb (net/ipv6/ip6_output.c:1985)  udp_v6_send_skb (net/ipv6/udp.c:1442)  udpv6_sendmsg (net/ipv6/udp.c:1733)  __sys_sendto (net/socket.c:730 net/socket.c:742 net/socket.c:2206)  __x64_sys_sendto (net/socket.c:2209)  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)  </TASK>  Allocated by task 147:  Freed by task 147:  The buggy address belongs to the object at ffff888100ef8c80  which belongs to the cache skbuff_head_cache of size 224 The buggy address is located 192 bytes inside of  freed 224-byte region [ffff888100ef8c80, ffff888100ef8d60)  Memory state around the buggy address:  ffff888100ef8c00: fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc  ffff888100ef8c80: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff888100ef8d00: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc                                                     ^  ffff888100ef8d80: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb  ffff888100ef8e00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-13 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31431",
                                "url": "https://ubuntu.com/security/CVE-2026-31431",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: algif_aead - Revert to operating out-of-place  This mostly reverts commit 72548b093ee3 except for the copying of the associated data.  There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings.  Get rid of all the complexity added for in-place operation and just copy the AD directly.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-04-22 09:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31533",
                                "url": "https://ubuntu.com/security/CVE-2026-31533",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption  The -EBUSY handling in tls_do_encryption(), introduced by commit 859054147318 (\"net: tls: handle backlogging of crypto requests\"), has a use-after-free due to double cleanup of encrypt_pending and the scatterlist entry.  When crypto_aead_encrypt() returns -EBUSY, the request is enqueued to the cryptd backlog and the async callback tls_encrypt_done() will be invoked upon completion. That callback unconditionally restores the scatterlist entry (sge->offset, sge->length) and decrements ctx->encrypt_pending. However, if tls_encrypt_async_wait() returns an error, the synchronous error path in tls_do_encryption() performs the same cleanup again, double-decrementing encrypt_pending and double-restoring the scatterlist.  The double-decrement corrupts the encrypt_pending sentinel (initialized to 1), making tls_encrypt_async_wait() permanently skip the wait for pending async callbacks. A subsequent sendmsg can then free the tls_rec via bpf_exec_tx_verdict() while a cryptd callback is still pending, resulting in a use-after-free when the callback fires on the freed record.  Fix this by skipping the synchronous cleanup when the -EBUSY async wait returns an error, since the callback has already handled encrypt_pending and sge restoration.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-23 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31504",
                                "url": "https://ubuntu.com/security/CVE-2026-31504",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix fanout UAF in packet_release() via NETDEV_UP race  `packet_release()` has a race window where `NETDEV_UP` can re-register a socket into a fanout group's `arr[]` array. The re-registration is not cleaned up by `fanout_release()`, leaving a dangling pointer in the fanout array. `packet_release()` does NOT zero `po->num` in its `bind_lock` section. After releasing `bind_lock`, `po->num` is still non-zero and `po->ifindex` still matches the bound device. A concurrent `packet_notifier(NETDEV_UP)` that already found the socket in `sklist` can re-register the hook. For fanout sockets, this re-registration calls `__fanout_link(sk, po)` which adds the socket back into `f->arr[]` and increments `f->num_members`, but does NOT increment `f->sk_ref`.  The fix sets `po->num` to zero in `packet_release` while `bind_lock` is held to prevent NETDEV_UP from linking, preventing the race window.  This bug was found following an additional audit with Claude Code based on CVE-2025-38617.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-22 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-117.117~22.04.1 -proposed tracker (LP: #2151069)",
                            "",
                            "  [ Ubuntu: 6.8.0-117.117 ]",
                            "",
                            "  * noble/linux: 6.8.0-117.117 -proposed tracker (LP: #2151070)",
                            "  * CVE-2026-31419",
                            "    - net: bonding: fix use-after-free in bond_xmit_broadcast()",
                            "  * CVE-2026-31431",
                            "    - crypto: scatterwalk - Backport memcpy_sglist()",
                            "    - crypto: algif_aead - use memcpy_sglist() instead of null skcipher",
                            "    - crypto: algif_aead - Revert to operating out-of-place",
                            "    - crypto: algif_aead - snapshot IV for async AEAD requests",
                            "    - crypto: authenc - use memcpy_sglist() instead of null skcipher",
                            "    - crypto: authencesn - Do not place hiseq at end of dst for out-of-place",
                            "      decryption",
                            "    - crypto: authencesn - Fix src offset when decrypting in-place",
                            "    - crypto: af_alg - Fix page reassignment overflow in af_alg_pull_tsgl",
                            "    - crypto: algif_aead - Fix minimum RX size check for decryption",
                            "  * CVE-2026-31533",
                            "    - net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption",
                            "  * CVE-2026-31504",
                            "    - net: fix fanout UAF in packet_release() via NETDEV_UP race",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-117.117~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2151069,
                            2151070
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Thu, 07 May 2026 23:11:56 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-116.116~22.04.1 -proposed tracker (LP: #2150047)",
                            "",
                            "  [ Ubuntu: 6.8.0-116.116 ]",
                            "",
                            "  * noble/linux: 6.8.0-116.116 -proposed tracker (LP: #2150048)",
                            "  * Linux kernel  6.17.0-22.22  breaks amdxdna (LP: #2149766)",
                            "    - Revert \"iommu: disable SVA when CONFIG_X86 is set\"",
                            "  * Revert \"netfilter: conntrack: fix erronous removal of offload bit\"",
                            "    (LP: #2149762)",
                            "    - Revert \"netfilter: conntrack: fix erronous removal of offload bit\"",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-116.116~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2150047,
                            2150048,
                            2149766,
                            2149762
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 24 Apr 2026 13:42:45 +0200"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23214",
                                "url": "https://ubuntu.com/security/CVE-2026-23214",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: reject new transactions if the fs is fully read-only  [BUG] There is a bug report where a heavily fuzzed fs is mounted with all rescue mount options, which leads to the following warnings during unmount:    BTRFS: Transaction aborted (error -22)   Modules linked in:   CPU: 0 UID: 0 PID: 9758 Comm: repro.out Not tainted   6.19.0-rc5-00002-gb71e635feefc #7 PREEMPT(full)   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014   RIP: 0010:find_free_extent_update_loop fs/btrfs/extent-tree.c:4208 [inline]   RIP: 0010:find_free_extent+0x52f0/0x5d20 fs/btrfs/extent-tree.c:4611   Call Trace:    <TASK>    btrfs_reserve_extent+0x2cd/0x790 fs/btrfs/extent-tree.c:4705    btrfs_alloc_tree_block+0x1e1/0x10e0 fs/btrfs/extent-tree.c:5157    btrfs_force_cow_block+0x578/0x2410 fs/btrfs/ctree.c:517    btrfs_cow_block+0x3c4/0xa80 fs/btrfs/ctree.c:708    btrfs_search_slot+0xcad/0x2b50 fs/btrfs/ctree.c:2130    btrfs_truncate_inode_items+0x45d/0x2350 fs/btrfs/inode-item.c:499    btrfs_evict_inode+0x923/0xe70 fs/btrfs/inode.c:5628    evict+0x5f4/0xae0 fs/inode.c:837    __dentry_kill+0x209/0x660 fs/dcache.c:670    finish_dput+0xc9/0x480 fs/dcache.c:879    shrink_dcache_for_umount+0xa0/0x170 fs/dcache.c:1661    generic_shutdown_super+0x67/0x2c0 fs/super.c:621    kill_anon_super+0x3b/0x70 fs/super.c:1289    btrfs_kill_super+0x41/0x50 fs/btrfs/super.c:2127    deactivate_locked_super+0xbc/0x130 fs/super.c:474    cleanup_mnt+0x425/0x4c0 fs/namespace.c:1318    task_work_run+0x1d4/0x260 kernel/task_work.c:233    exit_task_work include/linux/task_work.h:40 [inline]    do_exit+0x694/0x22f0 kernel/exit.c:971    do_group_exit+0x21c/0x2d0 kernel/exit.c:1112    __do_sys_exit_group kernel/exit.c:1123 [inline]    __se_sys_exit_group kernel/exit.c:1121 [inline]    __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1121    x64_sys_call+0x2210/0x2210 arch/x86/include/generated/asm/syscalls_64.h:232    do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]    do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94    entry_SYSCALL_64_after_hwframe+0x77/0x7f   RIP: 0033:0x44f639   Code: Unable to access opcode bytes at 0x44f60f.   RSP: 002b:00007ffc15c4e088 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7   RAX: ffffffffffffffda RBX: 00000000004c32f0 RCX: 000000000044f639   RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001   RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 0000000000000000   R10: 0000000000000000 R11: 0000000000000246 R12: 00000000004c32f0   R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001    </TASK>  Since rescue mount options will mark the full fs read-only, there should be no new transaction triggered.  But during unmount we will evict all inodes, which can trigger a new transaction, and triggers warnings on a heavily corrupted fs.  [CAUSE] Btrfs allows new transaction even on a read-only fs, this is to allow log replay happen even on read-only mounts, just like what ext4/xfs do.  However with rescue mount options, the fs is fully read-only and cannot be remounted read-write, thus in that case we should also reject any new transactions.  [FIX] If we find the fs has rescue mount options, we should treat the fs as error, so that no new transaction can be started.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23213",
                                "url": "https://ubuntu.com/security/CVE-2026-23213",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/pm: Disable MMIO access during SMU Mode 1 reset  During Mode 1 reset, the ASIC undergoes a reset cycle and becomes temporarily inaccessible via PCIe. Any attempt to access MMIO registers during this window (e.g., from interrupt handlers or other driver threads) can result in uncompleted PCIe transactions, leading to NMI panics or system hangs.  To prevent this, set the `no_hw_access` flag to true immediately after triggering the reset. This signals other driver components to skip register accesses while the device is offline.  A memory barrier `smp_mb()` is added to ensure the flag update is globally visible to all cores before the driver enters the sleep/wait state.  (cherry picked from commit 7edb503fe4b6d67f47d8bb0dfafb8e699bb0f8a4)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71225",
                                "url": "https://ubuntu.com/security/CVE-2025-71225",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: suspend array while updating raid_disks via sysfs  In raid1_reshape(), freeze_array() is called before modifying the r1bio memory pool (conf->r1bio_pool) and conf->raid_disks, and unfreeze_array() is called after the update is completed.  However, freeze_array() only waits until nr_sync_pending and (nr_pending - nr_queued) of all buckets reaches zero. When an I/O error occurs, nr_queued is increased and the corresponding r1bio is queued to either retry_list or bio_end_io_list. As a result, freeze_array() may unblock before these r1bios are released.  This can lead to a situation where conf->raid_disks and the mempool have already been updated while queued r1bios, allocated with the old raid_disks value, are later released. Consequently, free_r1bio() may access memory out of bounds in put_all_bios() and release r1bios of the wrong size to the new mempool, potentially causing issues with the mempool as well.  Since only normal I/O might increase nr_queued while an I/O error occurs, suspending the array avoids this issue.  Note: Updating raid_disks via ioctl SET_ARRAY_INFO already suspends the array. Therefore, we suspend the array when updating raid_disks via sysfs to avoid this issue too.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68823",
                                "url": "https://ubuntu.com/security/CVE-2025-68823",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ublk: fix deadlock when reading partition table  When one process(such as udev) opens ublk block device (e.g., to read the partition table via bdev_open()), a deadlock[1] can occur:  1. bdev_open() grabs disk->open_mutex 2. The process issues read I/O to ublk backend to read partition table 3. In __ublk_complete_rq(), blk_update_request() or blk_mq_end_request()    runs bio->bi_end_io() callbacks 4. If this triggers fput() on file descriptor of ublk block device, the    work may be deferred to current task's task work (see fput() implementation) 5. This eventually calls blkdev_release() from the same context 6. blkdev_release() tries to grab disk->open_mutex again 7. Deadlock: same task waiting for a mutex it already holds  The fix is to run blk_update_request() and blk_mq_end_request() with bottom halves disabled. This forces blkdev_release() to run in kernel work-queue context instead of current task work context, and allows ublk server to make forward progress, and avoids the deadlock.  [axboe: rewrite comment in ublk]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23191",
                                "url": "https://ubuntu.com/security/CVE-2026-23191",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: aloop: Fix racy access at PCM trigger  The PCM trigger callback of aloop driver tries to check the PCM state and stop the stream of the tied substream in the corresponding cable. Since both check and stop operations are performed outside the cable lock, this may result in UAF when a program attempts to trigger frequently while opening/closing the tied stream, as spotted by fuzzers.  For addressing the UAF, this patch changes two things: - It covers the most of code in loopback_check_format() with   cable->lock spinlock, and add the proper NULL checks.  This avoids   already some racy accesses. - In addition, now we try to check the state of the capture PCM stream   that may be stopped in this function, which was the major pain point   leading to UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23215",
                                "url": "https://ubuntu.com/security/CVE-2026-23215",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/vmware: Fix hypercall clobbers  Fedora QA reported the following panic:    BUG: unable to handle page fault for address: 0000000040003e54   #PF: supervisor write access in kernel mode   #PF: error_code(0x0002) - not-present page   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20251119-3.fc43 11/19/2025   RIP: 0010:vmware_hypercall4.constprop.0+0x52/0x90   ..   Call Trace:    vmmouse_report_events+0x13e/0x1b0    psmouse_handle_byte+0x15/0x60    ps2_interrupt+0x8a/0xd0    ...  because the QEMU VMware mouse emulation is buggy, and clears the top 32 bits of %rdi that the kernel kept a pointer in.  The QEMU vmmouse driver saves and restores the register state in a \"uint32_t data[6];\" and as a result restores the state with the high bits all cleared.  RDI originally contained the value of a valid kernel stack address (0xff5eeb3240003e54).  After the vmware hypercall it now contains 0x40003e54, and we get a page fault as a result when it is dereferenced.  The proper fix would be in QEMU, but this works around the issue in the kernel to keep old setups working, when old kernels had not happened to keep any state in %rdi over the hypercall.  In theory this same issue exists for all the hypercalls in the vmmouse driver; in practice it has only been seen with vmware_hypercall3() and vmware_hypercall4().  For now, just mark RDI/RSI as clobbered for those two calls.  This should have a minimal effect on code generation overall as it should be rare for the compiler to want to make RDI/RSI live across hypercalls.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23182",
                                "url": "https://ubuntu.com/security/CVE-2026-23182",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra: Fix a memory leak in tegra_slink_probe()  In tegra_slink_probe(), when platform_get_irq() fails, it directly returns from the function with an error code, which causes a memory leak.  Replace it with a goto label to ensure proper cleanup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23190",
                                "url": "https://ubuntu.com/security/CVE-2026-23190",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: amd: fix memory leak in acp3x pdm dma ops",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23254",
                                "url": "https://ubuntu.com/security/CVE-2026-23254",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: gro: fix outer network offset  The udp GRO complete stage assumes that all the packets inserted the RX have the `encapsulation` flag zeroed. Such assumption is not true, as a few H/W NICs can set such flag when H/W offloading the checksum for an UDP encapsulated traffic, the tun driver can inject GSO packets with UDP encapsulation and the problematic layout can also be created via a veth based setup.  Due to the above, in the problematic scenarios, udp4_gro_complete() uses the wrong network offset (inner instead of outer) to compute the outer UDP header pseudo checksum, leading to csum validation errors later on in packet processing.  Address the issue always clearing the encapsulation flag at GRO completion time. Such flag will be set again as needed for encapsulated packets by udp_gro_complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23180",
                                "url": "https://ubuntu.com/security/CVE-2026-23180",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: add bounds check for if_id in IRQ handler  The IRQ handler extracts if_id from the upper 16 bits of the hardware status register and uses it to index into ethsw->ports[] without validation. Since if_id can be any 16-bit value (0-65535) but the ports array is only allocated with sw_attr.num_ifs elements, this can lead to an out-of-bounds read potentially.  Add a bounds check before accessing the array, consistent with the existing validation in dpaa2_switch_rx().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23256",
                                "url": "https://ubuntu.com/security/CVE-2026-23256",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in VF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Compile tested only. Issue found using code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23257",
                                "url": "https://ubuntu.com/security/CVE-2026-23257",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in PF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Also, decrement i in the devlink_alloc failure path to point to the last successfully allocated index.  Compile tested only. Issue found using code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23258",
                                "url": "https://ubuntu.com/security/CVE-2026-23258",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Initialize netdev pointer before queue setup  In setup_nic_devices(), the netdev is allocated using alloc_etherdev_mq(). However, the pointer to this structure is stored in oct->props[i].netdev only after the calls to netif_set_real_num_rx_queues() and netif_set_real_num_tx_queues().  If either of these functions fails, setup_nic_devices() returns an error without freeing the allocated netdev. Since oct->props[i].netdev is still NULL at this point, the cleanup function liquidio_destroy_nic_device() will fail to find and free the netdev, resulting in a memory leak.  Fix this by initializing oct->props[i].netdev before calling the queue setup functions. This ensures that the netdev is properly accessible for cleanup in case of errors.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23206",
                                "url": "https://ubuntu.com/security/CVE-2026-23206",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: prevent ZERO_SIZE_PTR dereference when num_ifs is zero  The driver allocates arrays for ports, FDBs, and filter blocks using kcalloc() with ethsw->sw_attr.num_ifs as the element count. When the device reports zero interfaces (either due to hardware configuration or firmware issues), kcalloc(0, ...) returns ZERO_SIZE_PTR (0x10) instead of NULL.  Later in dpaa2_switch_probe(), the NAPI initialization unconditionally accesses ethsw->ports[0]->netdev, which attempts to dereference ZERO_SIZE_PTR (address 0x10), resulting in a kernel panic.  Add a check to ensure num_ifs is greater than zero after retrieving device attributes. This prevents the zero-sized allocations and subsequent invalid pointer dereference.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23204",
                                "url": "https://ubuntu.com/security/CVE-2026-23204",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: cls_u32: use skb_header_pointer_careful()  skb_header_pointer() does not fully validate negative @offset values.  Use skb_header_pointer_careful() instead.  GangMin Kim provided a report and a repro fooling u32_classify():  BUG: KASAN: slab-out-of-bounds in u32_classify+0x1180/0x11b0 net/sched/cls_u32.c:221",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23205",
                                "url": "https://ubuntu.com/security/CVE-2026-23205",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/client: fix memory leak in smb2_open_file()  Reproducer:    1. server: directories are exported read-only   2. client: mount -t cifs //${server_ip}/export /mnt   3. client: dd if=/dev/zero of=/mnt/file bs=512 count=1000 oflag=direct   4. client: umount /mnt   5. client: sleep 1   6. client: modprobe -r cifs  The error message is as follows:   =============================================================================   BUG cifs_small_rq (Not tainted): Objects remaining on __kmem_cache_shutdown()  -----------------------------------------------------------------------------    Object 0x00000000d47521be @offset=14336   ...   WARNING: mm/slub.c:1251 at __kmem_cache_shutdown+0x34e/0x440, CPU#0: modprobe/1577   ...   Call Trace:    <TASK>    kmem_cache_destroy+0x94/0x190    cifs_destroy_request_bufs+0x3e/0x50 [cifs]    cleanup_module+0x4e/0x540 [cifs]    __se_sys_delete_module+0x278/0x400    __x64_sys_delete_module+0x5f/0x70    x64_sys_call+0x2299/0x2ff0    do_syscall_64+0x89/0x350    entry_SYSCALL_64_after_hwframe+0x76/0x7e   ...   kmem_cache_destroy cifs_small_rq: Slab cache still has objects when called from cifs_destroy_request_bufs+0x3e/0x50 [cifs]   WARNING: mm/slab_common.c:532 at kmem_cache_destroy+0x16b/0x190, CPU#0: modprobe/1577",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23176",
                                "url": "https://ubuntu.com/security/CVE-2026-23176",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: toshiba_haps: Fix memory leaks in add/remove routines  toshiba_haps_add() leaks the haps object allocated by it if it returns an error after allocating that object successfully.  toshiba_haps_remove() does not free the object pointed to by toshiba_haps before clearing that pointer, so it becomes unreachable allocated memory.  Address these memory leaks by using devm_kzalloc() for allocating the memory in question.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23216",
                                "url": "https://ubuntu.com/security/CVE-2026-23216",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_conn_usage_count()  In iscsit_dec_conn_usage_count(), the function calls complete() while holding the conn->conn_usage_lock. As soon as complete() is invoked, the waiter (such as iscsit_close_connection()) may wake up and proceed to free the iscsit_conn structure.  If the waiter frees the memory before the current thread reaches spin_unlock_bh(), it results in a KASAN slab-use-after-free as the function attempts to release a lock within the already-freed connection structure.  Fix this by releasing the spinlock before calling complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23193",
                                "url": "https://ubuntu.com/security/CVE-2026-23193",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_session_usage_count()  In iscsit_dec_session_usage_count(), the function calls complete() while holding the sess->session_usage_lock. Similar to the connection usage count logic, the waiter signaled by complete() (e.g., in the session release path) may wake up and free the iscsit_session structure immediately.  This creates a race condition where the current thread may attempt to execute spin_unlock_bh() on a session structure that has already been deallocated, resulting in a KASAN slab-use-after-free.  To resolve this, release the session_usage_lock before calling complete() to ensure all dereferences of the sess pointer are finished before the waiter is allowed to proceed with deallocation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23260",
                                "url": "https://ubuntu.com/security/CVE-2026-23260",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: maple: free entry on mas_store_gfp() failure  regcache_maple_write() allocates a new block ('entry') to merge adjacent ranges and then stores it with mas_store_gfp(). When mas_store_gfp() fails, the new 'entry' remains allocated and is never freed, leaking memory.  Free 'entry' on the failure path; on success continue freeing the replaced neighbor blocks ('lower', 'upper').",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23179",
                                "url": "https://ubuntu.com/security/CVE-2026-23179",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: fixup hang in nvmet_tcp_listen_data_ready()  When the socket is closed while in TCP_LISTEN a callback is run to flush all outstanding packets, which in turns calls nvmet_tcp_listen_data_ready() with the sk_callback_lock held. So we need to check if we are in TCP_LISTEN before attempting to get the sk_callback_lock() to avoid a deadlock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23261",
                                "url": "https://ubuntu.com/security/CVE-2026-23261",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: release admin tagset if init fails  nvme_fabrics creates an NVMe/FC controller in following path:      nvmf_dev_write()       -> nvmf_create_ctrl()         -> nvme_fc_create_ctrl()           -> nvme_fc_init_ctrl()  nvme_fc_init_ctrl() allocates the admin blk-mq resources right after nvme_add_ctrl() succeeds.  If any of the subsequent steps fail (changing the controller state, scheduling connect work, etc.), we jump to the fail_ctrl path, which tears down the controller references but never frees the admin queue/tag set.  The leaked blk-mq allocations match the kmemleak report seen during blktests nvme/fc.  Check ctrl->ctrl.admin_tagset in the fail_ctrl path and call nvme_remove_admin_tag_set() when it is set so that all admin queue allocations are reclaimed whenever controller setup aborts.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23178",
                                "url": "https://ubuntu.com/security/CVE-2026-23178",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()  `i2c_hid_xfer` is used to read `recv_len + sizeof(__le16)` bytes of data into `ihid->rawbuf`.  The former can come from the userspace in the hidraw driver and is only bounded by HID_MAX_BUFFER_SIZE(16384) by default (unless we also set `max_buffer_size` field of `struct hid_ll_driver` which we do not).  The latter has size determined at runtime by the maximum size of different report types you could receive on any particular device and can be a much smaller value.  Fix this by truncating `recv_len` to `ihid->bufsize - sizeof(__le16)`.  The impact is low since access to hidraw devices requires root.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71268",
                                "url": "https://ubuntu.com/security/CVE-2025-71268",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix reservation leak in some error paths when inserting inline extent  If we fail to allocate a path or join a transaction, we return from __cow_file_range_inline() without freeing the reserved qgroup data, resulting in a leak. Fix this by ensuring we call btrfs_qgroup_free_data() in such cases.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71270",
                                "url": "https://ubuntu.com/security/CVE-2025-71270",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: Enable exception fixup for specific ADE subcode  This patch allows the LoongArch BPF JIT to handle recoverable memory access errors generated by BPF_PROBE_MEM* instructions.  When a BPF program performs memory access operations, the instructions it executes may trigger ADEM exceptions. The kernel’s built-in BPF exception table mechanism (EX_TYPE_BPF) will generate corresponding exception fixup entries in the JIT compilation phase; however, the architecture-specific trap handling function needs to proactively call the common fixup routine to achieve exception recovery.  do_ade(): fix EX_TYPE_BPF memory access exceptions for BPF programs, ensure safe execution.  Relevant test cases: illegal address access tests in module_attach and subprogs_extable of selftests/bpf.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71220",
                                "url": "https://ubuntu.com/security/CVE-2025-71220",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/server: call ksmbd_session_rpc_close() on error path in create_smb2_pipe()  When ksmbd_iov_pin_rsp() fails, we should call ksmbd_session_rpc_close().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71222",
                                "url": "https://ubuntu.com/security/CVE-2025-71222",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: wlcore: ensure skb headroom before skb_push  This avoids occasional skb_under_panic Oops from wl1271_tx_work. In this case, headroom is less than needed (typically 110 - 94 = 16 bytes).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71224",
                                "url": "https://ubuntu.com/security/CVE-2025-71224",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: ocb: skip rx_no_sta when interface is not joined  ieee80211_ocb_rx_no_sta() assumes a valid channel context, which is only present after JOIN_OCB.  RX may run before JOIN_OCB is executed, in which case the OCB interface is not operational. Skip RX peer handling when the interface is not joined to avoid warnings in the RX path.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23262",
                                "url": "https://ubuntu.com/security/CVE-2026-23262",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gve: Fix stats report corruption on queue count change  The driver and the NIC share a region in memory for stats reporting. The NIC calculates its offset into this region based on the total size of the stats region and the size of the NIC's stats.  When the number of queues is changed, the driver's stats region is resized. If the queue count is increased, the NIC can write past the end of the allocated stats region, causing memory corruption. If the queue count is decreased, there is a gap between the driver and NIC stats, leading to incorrect stats reporting.  This change fixes the issue by allocating stats region with maximum size, and the offset calculation for NIC stats is changed to match with the calculation of the NIC.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38201",
                                "url": "https://ubuntu.com/security/CVE-2025-38201",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX  Otherwise, it is possible to hit WARN_ON_ONCE in __kvmalloc_node_noprof() when resizing hashtable because __GFP_NOWARN is unset.  Similar to:    b541ba7d1f5a (\"netfilter: conntrack: clamp maximum hashtable size to INT_MAX\")",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-07-04 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23198",
                                "url": "https://ubuntu.com/security/CVE-2026-23198",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Don't clobber irqfd routing type when deassigning irqfd  When deassigning a KVM_IRQFD, don't clobber the irqfd's copy of the IRQ's routing entry as doing so breaks kvm_arch_irq_bypass_del_producer() on x86 and arm64, which explicitly look for KVM_IRQ_ROUTING_MSI.  Instead, to handle a concurrent routing update, verify that the irqfd is still active before consuming the routing information.  As evidenced by the x86 and arm64 bugs, and another bug in kvm_arch_update_irqfd_routing() (see below), clobbering the entry type without notifying arch code is surprising and error prone.  As a bonus, checking that the irqfd is active provides a convenient location for documenting _why_ KVM must not consume the routing entry for an irqfd that is in the process of being deassigned: once the irqfd is deleted from the list (which happens *before* the eventfd is detached), it will no longer receive updates via kvm_irq_routing_update(), and so KVM could deliver an event using stale routing information (relative to KVM_SET_GSI_ROUTING returning to userspace).  As an even better bonus, explicitly checking for the irqfd being active fixes a similar bug to the one the clobbering is trying to prevent: if an irqfd is deactivated, and then its routing is changed, kvm_irq_routing_update() won't invoke kvm_arch_update_irqfd_routing() (because the irqfd isn't in the list).  And so if the irqfd is in bypass mode, IRQs will continue to be posted using the old routing information.  As for kvm_arch_irq_bypass_del_producer(), clobbering the routing type results in KVM incorrectly keeping the IRQ in bypass mode, which is especially problematic on AMD as KVM tracks IRQs that are being posted to a vCPU in a list whose lifetime is tied to the irqfd.  Without the help of KASAN to detect use-after-free, the most common sympton on AMD is a NULL pointer deref in amd_iommu_update_ga() due to the memory for irqfd structure being re-allocated and zeroed, resulting in irqfd->irq_bypass_data being NULL when read by avic_update_iommu_vcpu_affinity():    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 40cf2b9067 P4D 40cf2b9067 PUD 408362a067 PMD 0   Oops: Oops: 0000 [#1] SMP   CPU: 6 UID: 0 PID: 40383 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--5dddc257e6b2-irqfd #31 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:amd_iommu_update_ga+0x19/0xe0   Call Trace:    <TASK>    avic_update_iommu_vcpu_affinity+0x3d/0x90 [kvm_amd]    __avic_vcpu_load+0xf4/0x130 [kvm_amd]    kvm_arch_vcpu_load+0x89/0x210 [kvm]    vcpu_load+0x30/0x40 [kvm]    kvm_arch_vcpu_ioctl_run+0x45/0x620 [kvm]    kvm_vcpu_ioctl+0x571/0x6a0 [kvm]    __se_sys_ioctl+0x6d/0xb0    do_syscall_64+0x6f/0x9d0    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x46893b     </TASK>   ---[ end trace 0000000000000000 ]---  If AVIC is inhibited when the irfd is deassigned, the bug will manifest as list corruption, e.g. on the next irqfd assignment.    list_add corruption. next->prev should be prev (ffff8d474d5cd588),                        but was 0000000000000000. (next=ffff8d8658f86530).   ------------[ cut here ]------------   kernel BUG at lib/list_debug.c:31!   Oops: invalid opcode: 0000 [#1] SMP   CPU: 128 UID: 0 PID: 80818 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--f19dc4d680ba-irqfd #28 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:__list_add_valid_or_report+0x97/0xc0   Call Trace:    <TASK>    avic_pi_update_irte+0x28e/0x2b0 [kvm_amd]    kvm_pi_update_irte+0xbf/0x190 [kvm]    kvm_arch_irq_bypass_add_producer+0x72/0x90 [kvm]    irq_bypass_register_consumer+0xcd/0x170 [irqbypa ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23264",
                                "url": "https://ubuntu.com/security/CVE-2026-23264",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Revert \"drm/amd: Check if ASPM is enabled from PCIe subsystem\"  This reverts commit 7294863a6f01248d72b61d38478978d638641bee.  This commit was erroneously applied again after commit 0ab5d711ec74 (\"drm/amd: Refactor `amdgpu_aspm` to be evaluated per device\") removed it, leading to very hard to debug crashes, when used with a system with two AMD GPUs of which only one supports ASPM.  (cherry picked from commit 97a9689300eb2b393ba5efc17c8e5db835917080)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23187",
                                "url": "https://ubuntu.com/security/CVE-2026-23187",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: fix out-of-range access of bc->domains  Fix out-of-range access of bc->domains in imx8m_blk_ctrl_remove().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23148",
                                "url": "https://ubuntu.com/security/CVE-2026-23148",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference  There is a race condition in nvmet_bio_done() that can cause a NULL pointer dereference in blk_cgroup_bio_start():  1. nvmet_bio_done() is called when a bio completes 2. nvmet_req_complete() is called, which invokes req->ops->queue_response(req) 3. The queue_response callback can re-queue and re-submit the same request 4. The re-submission reuses the same inline_bio from nvmet_req 5. Meanwhile, nvmet_req_bio_put() (called after nvmet_req_complete)    invokes bio_uninit() for inline_bio, which sets bio->bi_blkg to NULL 6. The re-submitted bio enters submit_bio_noacct_nocheck() 7. blk_cgroup_bio_start() dereferences bio->bi_blkg, causing a crash:    BUG: kernel NULL pointer dereference, address: 0000000000000028   #PF: supervisor read access in kernel mode   RIP: 0010:blk_cgroup_bio_start+0x10/0xd0   Call Trace:    submit_bio_noacct_nocheck+0x44/0x250    nvmet_bdev_execute_rw+0x254/0x370 [nvmet]    process_one_work+0x193/0x3c0    worker_thread+0x281/0x3a0  Fix this by reordering nvmet_bio_done() to call nvmet_req_bio_put() BEFORE nvmet_req_complete(). This ensures the bio is cleaned up before the request can be re-submitted, preventing the race condition.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23166",
                                "url": "https://ubuntu.com/security/CVE-2026-23166",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ice: Fix NULL pointer dereference in ice_vsi_set_napi_queues  Add NULL pointer checks in ice_vsi_set_napi_queues() to prevent crashes during resume from suspend when rings[q_idx]->q_vector is NULL.  Tested adaptor: 60:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller E810-XXV for SFP [8086:159b] (rev 02)         Subsystem: Intel Corporation Ethernet Network Adapter E810-XXV-2 [8086:4003]  SR-IOV state: both disabled and enabled can reproduce this issue.  kernel version: v6.18  Reproduce steps: Boot up and execute suspend like systemctl suspend or rtcwake.  Log: <1>[  231.443607] BUG: kernel NULL pointer dereference, address: 0000000000000040 <1>[  231.444052] #PF: supervisor read access in kernel mode <1>[  231.444484] #PF: error_code(0x0000) - not-present page <6>[  231.444913] PGD 0 P4D 0 <4>[  231.445342] Oops: Oops: 0000 [#1] SMP NOPTI <4>[  231.446635] RIP: 0010:netif_queue_set_napi+0xa/0x170 <4>[  231.447067] Code: 31 f6 31 ff c3 cc cc cc cc 0f 1f 80 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 48 85 c9 74 0b <48> 83 79 30 00 0f 84 39 01 00 00 55 41 89 d1 49 89 f8 89 f2 48 89 <4>[  231.447513] RSP: 0018:ffffcc780fc078c0 EFLAGS: 00010202 <4>[  231.447961] RAX: ffff8b848ca30400 RBX: ffff8b848caf2028 RCX: 0000000000000010 <4>[  231.448443] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8b848dbd4000 <4>[  231.448896] RBP: ffffcc780fc078e8 R08: 0000000000000000 R09: 0000000000000000 <4>[  231.449345] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001 <4>[  231.449817] R13: ffff8b848dbd4000 R14: ffff8b84833390c8 R15: 0000000000000000 <4>[  231.450265] FS:  00007c7b29e9d740(0000) GS:ffff8b8c068e2000(0000) knlGS:0000000000000000 <4>[  231.450715] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 <4>[  231.451179] CR2: 0000000000000040 CR3: 000000030626f004 CR4: 0000000000f72ef0 <4>[  231.451629] PKRU: 55555554 <4>[  231.452076] Call Trace: <4>[  231.452549]  <TASK> <4>[  231.452996]  ? ice_vsi_set_napi_queues+0x4d/0x110 [ice] <4>[  231.453482]  ice_resume+0xfd/0x220 [ice] <4>[  231.453977]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.454425]  pci_pm_resume+0x8c/0x140 <4>[  231.454872]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.455347]  dpm_run_callback+0x5f/0x160 <4>[  231.455796]  ? dpm_wait_for_superior+0x107/0x170 <4>[  231.456244]  device_resume+0x177/0x270 <4>[  231.456708]  dpm_resume+0x209/0x2f0 <4>[  231.457151]  dpm_resume_end+0x15/0x30 <4>[  231.457596]  suspend_devices_and_enter+0x1da/0x2b0 <4>[  231.458054]  enter_state+0x10e/0x570  Add defensive checks for both the ring pointer and its q_vector before dereferencing, allowing the system to resume successfully even when q_vectors are unmapped.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23151",
                                "url": "https://ubuntu.com/security/CVE-2026-23151",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: MGMT: Fix memory leak in set_ssp_complete  Fix memory leak in set_ssp_complete() where mgmt_pending_cmd structures are not freed after being removed from the pending list.  Commit 302a1f674c00 (\"Bluetooth: MGMT: Fix possible UAFs\") replaced mgmt_pending_foreach() calls with individual command handling but missed adding mgmt_pending_free() calls in both error and success paths of set_ssp_complete(). Other completion functions like set_le_complete() were fixed correctly in the same commit.  This causes a memory leak of the mgmt_pending_cmd structure and its associated parameter data for each SSP command that completes.  Add the missing mgmt_pending_free(cmd) calls in both code paths to fix the memory leak. Also fix the same issue in set_advertising_complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23163",
                                "url": "https://ubuntu.com/security/CVE-2026-23163",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: fix NULL pointer dereference in amdgpu_gmc_filter_faults_remove  On APUs such as Raven and Renoir (GC 9.1.0, 9.2.2, 9.3.0), the ih1 and ih2 interrupt ring buffers are not initialized. This is by design, as these secondary IH rings are only available on discrete GPUs. See vega10_ih_sw_init() which explicitly skips ih1/ih2 initialization when AMD_IS_APU is set.  However, amdgpu_gmc_filter_faults_remove() unconditionally uses ih1 to get the timestamp of the last interrupt entry. When retry faults are enabled on APUs (noretry=0), this function is called from the SVM page fault recovery path, resulting in a NULL pointer dereference when amdgpu_ih_decode_iv_ts_helper() attempts to access ih->ring[].  The crash manifests as:    BUG: kernel NULL pointer dereference, address: 0000000000000004   RIP: 0010:amdgpu_ih_decode_iv_ts_helper+0x22/0x40 [amdgpu]   Call Trace:    amdgpu_gmc_filter_faults_remove+0x60/0x130 [amdgpu]    svm_range_restore_pages+0xae5/0x11c0 [amdgpu]    amdgpu_vm_handle_fault+0xc8/0x340 [amdgpu]    gmc_v9_0_process_interrupt+0x191/0x220 [amdgpu]    amdgpu_irq_dispatch+0xed/0x2c0 [amdgpu]    amdgpu_ih_process+0x84/0x100 [amdgpu]  This issue was exposed by commit 1446226d32a4 (\"drm/amdgpu: Remove GC HW IP 9.3.0 from noretry=1\") which changed the default for Renoir APU from noretry=1 to noretry=0, enabling retry fault handling and thus exercising the buggy code path.  Fix this by adding a check for ih1.ring_size before attempting to use it. Also restore the soft_ih support from commit dd299441654f (\"drm/amdgpu: Rework retry fault removal\").  This is needed if the hardware doesn't support secondary HW IH rings.  v2: additional updates (Alex)  (cherry picked from commit 6ce8d536c80aa1f059e82184f0d1994436b1d526)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23159",
                                "url": "https://ubuntu.com/security/CVE-2026-23159",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf: sched: Fix perf crash with new is_user_task() helper  In order to do a user space stacktrace the current task needs to be a user task that has executed in user space. It use to be possible to test if a task is a user task or not by simply checking the task_struct mm field. If it was non NULL, it was a user task and if not it was a kernel task.  But things have changed over time, and some kernel tasks now have their own mm field.  An idea was made to instead test PF_KTHREAD and two functions were used to wrap this check in case it became more complex to test if a task was a user task or not[1]. But this was rejected and the C code simply checked the PF_KTHREAD directly.  It was later found that not all kernel threads set PF_KTHREAD. The io-uring helpers instead set PF_USER_WORKER and this needed to be added as well.  But checking the flags is still not enough. There's a very small window when a task exits that it frees its mm field and it is set back to NULL. If perf were to trigger at this moment, the flags test would say its a user space task but when perf would read the mm field it would crash with at NULL pointer dereference.  Now there are flags that can be used to test if a task is exiting, but they are set in areas that perf may still want to profile the user space task (to see where it exited). The only real test is to check both the flags and the mm field.  Instead of making this modification in every location, create a new is_user_task() helper function that does all the tests needed to know if it is safe to read the user space memory or not.  [1] https://lore.kernel.org/all/20250425204120.639530125@goodmis.org/",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-58096",
                                "url": "https://ubuntu.com/security/CVE-2024-58096",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode  ath11k_hal_srng_* should be used with srng->lock to protect srng data.  For ath11k_dp_rx_mon_dest_process() and ath11k_dp_full_mon_process_rx(), they use ath11k_hal_srng_* for many times but never call srng->lock.  So when running (full) monitor mode, warning will occur: RIP: 0010:ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k] Call Trace:  ? ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k]  ath11k_dp_rx_process_mon_status+0xc45/0x1190 [ath11k]  ? idr_alloc_u32+0x97/0xd0  ath11k_dp_rx_process_mon_rings+0x32a/0x550 [ath11k]  ath11k_dp_service_srng+0x289/0x5a0 [ath11k]  ath11k_pcic_ext_grp_napi_poll+0x30/0xd0 [ath11k]  __napi_poll+0x30/0x1f0  net_rx_action+0x198/0x320  __do_softirq+0xdd/0x319  So add srng->lock for them to avoid such warnings.  Inorder to fetch the srng->lock, should change srng's definition from 'void' to 'struct hal_srng'. And initialize them elsewhere to prevent one line of code from being too long. This is consistent with other ring process functions, such as ath11k_dp_process_rx().  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40039",
                                "url": "https://ubuntu.com/security/CVE-2025-40039",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix race condition in RPC handle list access  The 'sess->rpc_handle_list' XArray manages RPC handles within a ksmbd session. Access to this list is intended to be protected by 'sess->rpc_lock' (an rw_semaphore). However, the locking implementation was flawed, leading to potential race conditions.  In ksmbd_session_rpc_open(), the code incorrectly acquired only a read lock before calling xa_store() and xa_erase(). Since these operations modify the XArray structure, a write lock is required to ensure exclusive access and prevent data corruption from concurrent modifications.  Furthermore, ksmbd_session_rpc_method() accessed the list using xa_load() without holding any lock at all. This could lead to reading inconsistent data or a potential use-after-free if an entry is concurrently removed and the pointer is dereferenced.  Fix these issues by: 1. Using down_write() and up_write() in ksmbd_session_rpc_open()    to ensure exclusive access during XArray modification, and ensuring    the lock is correctly released on error paths. 2. Adding down_read() and up_read() in ksmbd_session_rpc_method()    to safely protect the lookup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-28 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23093",
                                "url": "https://ubuntu.com/security/CVE-2026-23093",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: smbd: fix dma_unmap_sg() nents  The dma_unmap_sg() functions should be called with the same nents as the dma_map_sg(), not the value the map function returned.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23102",
                                "url": "https://ubuntu.com/security/CVE-2026-23102",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Fix restoration of SVE context  When SME is supported, Restoring SVE signal context can go wrong in a few ways, including placing the task into an invalid state where the kernel may read from out-of-bounds memory (and may potentially take a fatal fault) and/or may kill the task with a SIGKILL.  (1) Restoring a context with SVE_SIG_FLAG_SM set can place the task into     an invalid state where SVCR.SM is set (and sve_state is non-NULL)     but TIF_SME is clear, consequently resuting in out-of-bounds memory     reads and/or killing the task with SIGKILL.      This can only occur in unusual (but legitimate) cases where the SVE     signal context has either been modified by userspace or was saved in     the context of another task (e.g. as with CRIU), as otherwise the     presence of an SVE signal context with SVE_SIG_FLAG_SM implies that     TIF_SME is already set.      While in this state, task_fpsimd_load() will NOT configure SMCR_ELx     (leaving some arbitrary value configured in hardware) before     restoring SVCR and attempting to restore the streaming mode SVE     registers from memory via sve_load_state(). As the value of     SMCR_ELx.LEN may be larger than the task's streaming SVE vector     length, this may read memory outside of the task's allocated     sve_state, reading unrelated data and/or triggering a fault.      While this can result in secrets being loaded into streaming SVE     registers, these values are never exposed. As TIF_SME is clear,     fpsimd_bind_task_to_cpu() will configure CPACR_ELx.SMEN to trap EL0     accesses to streaming mode SVE registers, so these cannot be     accessed directly at EL0. As fpsimd_save_user_state() verifies the     live vector length before saving (S)SVE state to memory, no secret     values can be saved back to memory (and hence cannot be observed via     ptrace, signals, etc).      When the live vector length doesn't match the expected vector length     for the task, fpsimd_save_user_state() will send a fatal SIGKILL     signal to the task. Hence the task may be killed after executing     userspace for some period of time.  (2) Restoring a context with SVE_SIG_FLAG_SM clear does not clear the     task's SVCR.SM. If SVCR.SM was set prior to restoring the context,     then the task will be left in streaming mode unexpectedly, and some     register state will be combined inconsistently, though the task will     be left in legitimate state from the kernel's PoV.      This can only occur in unusual (but legitimate) cases where ptrace     has been used to set SVCR.SM after entry to the sigreturn syscall,     as syscall entry clears SVCR.SM.      In these cases, the the provided SVE register data will be loaded     into the task's sve_state using the non-streaming SVE vector length     and the FPSIMD registers will be merged into this using the     streaming SVE vector length.  Fix (1) by setting TIF_SME when setting SVCR.SM. This also requires ensuring that the task's sme_state has been allocated, but as this could contain live ZA state, it should not be zeroed. Fix (2) by clearing SVCR.SM when restoring a SVE signal context with SVE_SIG_FLAG_SM clear.  For consistency, I've pulled the manipulation of SVCR, TIF_SVE, TIF_SME, and fp_type earlier, immediately after the allocation of sve_state/sme_state, before the restore of the actual register state. This makes it easier to ensure that these are always modified consistently, even if a fault is taken while reading the register data from the signal context. I do not expect any software to depend on the exact state restored when a fault is taken while reading the context.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23170",
                                "url": "https://ubuntu.com/security/CVE-2026-23170",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/imx/tve: fix probe device leak  Make sure to drop the reference taken to the DDC device during probe on probe failure (e.g. probe deferral) and on driver unbind.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23168",
                                "url": "https://ubuntu.com/security/CVE-2026-23168",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  flex_proportions: make fprop_new_period() hardirq safe  Bernd has reported a lockdep splat from flexible proportions code that is essentially complaining about the following race:  <timer fires> run_timer_softirq - we are in softirq context   call_timer_fn     writeout_period       fprop_new_period         write_seqcount_begin(&p->sequence);          <hardirq is raised>         ...         blk_mq_end_request() \t  blk_update_request() \t    ext4_end_bio() \t      folio_end_writeback() \t\t__wb_writeout_add() \t\t  __fprop_add_percpu_max() \t\t    if (unlikely(max_frac < FPROP_FRAC_BASE)) { \t\t      fprop_fraction_percpu() \t\t\tseq = read_seqcount_begin(&p->sequence); \t\t\t  - sees odd sequence so loops indefinitely  Note that a deadlock like this is only possible if the bdi has configured maximum fraction of writeout throughput which is very rare in general but frequent for example for FUSE bdis.  To fix this problem we have to make sure write section of the sequence counter is irqsafe.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23156",
                                "url": "https://ubuntu.com/security/CVE-2026-23156",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  efivarfs: fix error propagation in efivar_entry_get()  efivar_entry_get() always returns success even if the underlying __efivar_entry_get() fails, masking errors.  This may result in uninitialized heap memory being copied to userspace in the efivarfs_file_read() path.  Fix it by returning the error from __efivar_entry_get().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23167",
                                "url": "https://ubuntu.com/security/CVE-2026-23167",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: nci: Fix race between rfkill and nci_unregister_device().  syzbot reported the splat below [0] without a repro.  It indicates that struct nci_dev.cmd_wq had been destroyed before nci_close_device() was called via rfkill.  nci_dev.cmd_wq is only destroyed in nci_unregister_device(), which (I think) was called from virtual_ncidev_close() when syzbot close()d an fd of virtual_ncidev.  The problem is that nci_unregister_device() destroys nci_dev.cmd_wq first and then calls nfc_unregister_device(), which removes the device from rfkill by rfkill_unregister().  So, the device is still visible via rfkill even after nci_dev.cmd_wq is destroyed.  Let's unregister the device from rfkill first in nci_unregister_device().  Note that we cannot call nfc_unregister_device() before nci_close_device() because    1) nfc_unregister_device() calls device_del() which frees      all memory allocated by devm_kzalloc() and linked to      ndev->conn_info_list    2) nci_rx_work() could try to queue nci_conn_info to      ndev->conn_info_list which could be leaked  Thus, nfc_unregister_device() is split into two functions so we can remove rfkill interfaces only before nci_close_device().  [0]: DEBUG_LOCKS_WARN_ON(1) WARNING: kernel/locking/lockdep.c:238 at hlock_class kernel/locking/lockdep.c:238 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at check_wait_context kernel/locking/lockdep.c:4854 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at __lock_acquire+0x39d/0x2cf0 kernel/locking/lockdep.c:5187, CPU#0: syz.0.8675/6349 Modules linked in: CPU: 0 UID: 0 PID: 6349 Comm: syz.0.8675 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/13/2026 RIP: 0010:hlock_class kernel/locking/lockdep.c:238 [inline] RIP: 0010:check_wait_context kernel/locking/lockdep.c:4854 [inline] RIP: 0010:__lock_acquire+0x3a4/0x2cf0 kernel/locking/lockdep.c:5187 Code: 18 00 4c 8b 74 24 08 75 27 90 e8 17 f2 fc 02 85 c0 74 1c 83 3d 50 e0 4e 0e 00 75 13 48 8d 3d 43 f7 51 0e 48 c7 c6 8b 3a de 8d <67> 48 0f b9 3a 90 31 c0 0f b6 98 c4 00 00 00 41 8b 45 20 25 ff 1f RSP: 0018:ffffc9000c767680 EFLAGS: 00010046 RAX: 0000000000000001 RBX: 0000000000040000 RCX: 0000000000080000 RDX: ffffc90013080000 RSI: ffffffff8dde3a8b RDI: ffffffff8ff24ca0 RBP: 0000000000000003 R08: ffffffff8fef35a3 R09: 1ffffffff1fde6b4 R10: dffffc0000000000 R11: fffffbfff1fde6b5 R12: 00000000000012a2 R13: ffff888030338ba8 R14: ffff888030338000 R15: ffff888030338b30 FS:  00007fa5995f66c0(0000) GS:ffff8881256f8000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f7e72f842d0 CR3: 00000000485a0000 CR4: 00000000003526f0 Call Trace:  <TASK>  lock_acquire+0x106/0x330 kernel/locking/lockdep.c:5868  touch_wq_lockdep_map+0xcb/0x180 kernel/workqueue.c:3940  __flush_workqueue+0x14b/0x14f0 kernel/workqueue.c:3982  nci_close_device+0x302/0x630 net/nfc/nci/core.c:567  nci_dev_down+0x3b/0x50 net/nfc/nci/core.c:639  nfc_dev_down+0x152/0x290 net/nfc/core.c:161  nfc_rfkill_set_block+0x2d/0x100 net/nfc/core.c:179  rfkill_set_block+0x1d2/0x440 net/rfkill/core.c:346  rfkill_fop_write+0x461/0x5a0 net/rfkill/core.c:1301  vfs_write+0x29a/0xb90 fs/read_write.c:684  ksys_write+0x150/0x270 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xe2/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa59b39acb9 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fa5995f6028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fa59b615fa0 RCX: 00007fa59b39acb9 RDX: 0000000000000008 RSI: 0000200000000080 RDI: 0000000000000007 RBP: 00007fa59b408bf7 R08: ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23173",
                                "url": "https://ubuntu.com/security/CVE-2026-23173",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: TC, delete flows only for existing peers  When deleting TC steering flows, iterate only over actual devcom peers instead of assuming all possible ports exist. This avoids touching non-existent peers and ensures cleanup is limited to devices the driver is currently connected to.   BUG: kernel NULL pointer dereference, address: 0000000000000008  #PF: supervisor write access in kernel mode  #PF: error_code(0x0002) - not-present page  PGD 133c8a067 P4D 0  Oops: Oops: 0002 [#1] SMP  CPU: 19 UID: 0 PID: 2169 Comm: tc Not tainted 6.18.0+ #156 NONE  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:mlx5e_tc_del_fdb_peers_flow+0xbe/0x200 [mlx5_core]  Code: 00 00 a8 08 74 a8 49 8b 46 18 f6 c4 02 74 9f 4c 8d bf a0 12 00 00 4c 89 ff e8 0e e7 96 e1 49 8b 44 24 08 49 8b 0c 24 4c 89 ff <48> 89 41 08 48 89 08 49 89 2c 24 49 89 5c 24 08 e8 7d ce 96 e1 49  RSP: 0018:ff11000143867528 EFLAGS: 00010246  RAX: 0000000000000000 RBX: dead000000000122 RCX: 0000000000000000  RDX: ff11000143691580 RSI: ff110001026e5000 RDI: ff11000106f3d2a0  RBP: dead000000000100 R08: 00000000000003fd R09: 0000000000000002  R10: ff11000101c75690 R11: ff1100085faea178 R12: ff11000115f0ae78  R13: 0000000000000000 R14: ff11000115f0a800 R15: ff11000106f3d2a0  FS:  00007f35236bf740(0000) GS:ff110008dc809000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000008 CR3: 0000000157a01001 CR4: 0000000000373eb0  Call Trace:   <TASK>   mlx5e_tc_del_flow+0x46/0x270 [mlx5_core]   mlx5e_flow_put+0x25/0x50 [mlx5_core]   mlx5e_delete_flower+0x2a6/0x3e0 [mlx5_core]   tc_setup_cb_reoffload+0x20/0x80   fl_reoffload+0x26f/0x2f0 [cls_flower]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   tcf_block_playback_offloads+0x9e/0x1c0   tcf_block_unbind+0x7b/0xd0   tcf_block_setup+0x186/0x1d0   tcf_block_offload_cmd.isra.0+0xef/0x130   tcf_block_offload_unbind+0x43/0x70   __tcf_block_put+0x85/0x160   ingress_destroy+0x32/0x110 [sch_ingress]   __qdisc_destroy+0x44/0x100   qdisc_graft+0x22b/0x610   tc_get_qdisc+0x183/0x4d0   rtnetlink_rcv_msg+0x2d7/0x3d0   ? rtnl_calcit.isra.0+0x100/0x100   netlink_rcv_skb+0x53/0x100   netlink_unicast+0x249/0x320   ? __alloc_skb+0x102/0x1f0   netlink_sendmsg+0x1e3/0x420   __sock_sendmsg+0x38/0x60   ____sys_sendmsg+0x1ef/0x230   ? copy_msghdr_from_user+0x6c/0xa0   ___sys_sendmsg+0x7f/0xc0   ? ___sys_recvmsg+0x8a/0xc0   ? __sys_sendto+0x119/0x180   __sys_sendmsg+0x61/0xb0   do_syscall_64+0x55/0x640   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7f35238bb764  Code: 15 b9 86 0c 00 f7 d8 64 89 02 b8 ff ff ff ff eb bf 0f 1f 44 00 00 f3 0f 1e fa 80 3d e5 08 0d 00 00 74 13 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 4c c3 0f 1f 00 55 48 89 e5 48 83 ec 20 89 55  RSP: 002b:00007ffed4c35638 EFLAGS: 00000202 ORIG_RAX: 000000000000002e  RAX: ffffffffffffffda RBX: 000055a2efcc75e0 RCX: 00007f35238bb764  RDX: 0000000000000000 RSI: 00007ffed4c356a0 RDI: 0000000000000003  RBP: 00007ffed4c35710 R08: 0000000000000010 R09: 00007f3523984b20  R10: 0000000000000004 R11: 0000000000000202 R12: 00007ffed4c35790  R13: 000000006947df8f R14: 000055a2efcc75e0 R15: 00007ffed4c35780",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23150",
                                "url": "https://ubuntu.com/security/CVE-2026-23150",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: llcp: Fix memleak in nfc_llcp_send_ui_frame().  syzbot reported various memory leaks related to NFC, struct nfc_llcp_sock, sk_buff, nfc_dev, etc. [0]  The leading log hinted that nfc_llcp_send_ui_frame() failed to allocate skb due to sock_error(sk) being -ENXIO.  ENXIO is set by nfc_llcp_socket_release() when struct nfc_llcp_local is destroyed by local_cleanup().  The problem is that there is no synchronisation between nfc_llcp_send_ui_frame() and local_cleanup(), and skb could be put into local->tx_queue after it was purged in local_cleanup():    CPU1                          CPU2   ----                          ----   nfc_llcp_send_ui_frame()      local_cleanup()   |- do {                       '      |- pdu = nfc_alloc_send_skb(..., &err)      |                          .      |                          |- nfc_llcp_socket_release(local, false, ENXIO);      |                          |- skb_queue_purge(&local->tx_queue);     |      |                          '                                         |      |- skb_queue_tail(&local->tx_queue, pdu);                            |     ...                                                                   |      |- pdu = nfc_alloc_send_skb(..., &err)                               |                                       ^._________________________________.'  local_cleanup() is called for struct nfc_llcp_local only after nfc_llcp_remove_local() unlinks it from llcp_devices.  If we hold local->tx_queue.lock then, we can synchronise the thread and nfc_llcp_send_ui_frame().  Let's do that and check list_empty(&local->list) before queuing skb to local->tx_queue in nfc_llcp_send_ui_frame().  [0]: [   56.074943][ T6096] llcp: nfc_llcp_send_ui_frame: Could not allocate PDU (error=-6) [   64.318868][ T5813] kmemleak: 6 new suspected memory leaks (see /sys/kernel/debug/kmemleak) BUG: memory leak unreferenced object 0xffff8881272f6800 (size 1024):   comm \"syz.0.17\", pid 6096, jiffies 4294942766   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     27 00 03 40 00 00 00 00 00 00 00 00 00 00 00 00  '..@............   backtrace (crc da58d84d):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     __do_kmalloc_node mm/slub.c:5645 [inline]     __kmalloc_noprof+0x3e3/0x6b0 mm/slub.c:5658     kmalloc_noprof include/linux/slab.h:961 [inline]     sk_prot_alloc+0x11a/0x1b0 net/core/sock.c:2239     sk_alloc+0x36/0x360 net/core/sock.c:2295     nfc_llcp_sock_alloc+0x37/0x130 net/nfc/llcp_sock.c:979     llcp_sock_create+0x71/0xd0 net/nfc/llcp_sock.c:1044     nfc_sock_create+0xc9/0xf0 net/nfc/af_nfc.c:31     __sock_create+0x1a9/0x340 net/socket.c:1605     sock_create net/socket.c:1663 [inline]     __sys_socket_create net/socket.c:1700 [inline]     __sys_socket+0xb9/0x1a0 net/socket.c:1747     __do_sys_socket net/socket.c:1761 [inline]     __se_sys_socket net/socket.c:1759 [inline]     __x64_sys_socket+0x1b/0x30 net/socket.c:1759     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  BUG: memory leak unreferenced object 0xffff88810fbd9800 (size 240):   comm \"syz.0.17\", pid 6096, jiffies 4294942850   hex dump (first 32 bytes):     68 f0 ff 08 81 88 ff ff 68 f0 ff 08 81 88 ff ff  h.......h.......     00 00 00 00 00 00 00 00 00 68 2f 27 81 88 ff ff  .........h/'....   backtrace (crc 6cc652b1):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5336     __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/sk ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23164",
                                "url": "https://ubuntu.com/security/CVE-2026-23164",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  rocker: fix memory leak in rocker_world_port_post_fini()  In rocker_world_port_pre_init(), rocker_port->wpriv is allocated with kzalloc(wops->port_priv_size, GFP_KERNEL). However, in rocker_world_port_post_fini(), the memory is only freed when wops->port_post_fini callback is set:      if (!wops->port_post_fini)         return;     wops->port_post_fini(rocker_port);     kfree(rocker_port->wpriv);  Since rocker_ofdpa_ops does not implement port_post_fini callback (it is NULL), the wpriv memory allocated for each port is never freed when ports are removed. This leads to a memory leak of sizeof(struct ofdpa_port) bytes per port on every device removal.  Fix this by always calling kfree(rocker_port->wpriv) regardless of whether the port_post_fini callback exists.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23172",
                                "url": "https://ubuntu.com/security/CVE-2026-23172",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: wwan: t7xx: fix potential skb->frags overflow in RX path  When receiving data in the DPMAIF RX path, the t7xx_dpmaif_set_frag_to_skb() function adds page fragments to an skb without checking if the number of fragments has exceeded MAX_SKB_FRAGS. This could lead to a buffer overflow in skb_shinfo(skb)->frags[] array, corrupting adjacent memory and potentially causing kernel crashes or other undefined behavior.  This issue was identified through static code analysis by comparing with a similar vulnerability fixed in the mt76 driver commit b102f0c522cf (\"mt76: fix array overflow on receiving too many fragments for a packet\").  The vulnerability could be triggered if the modem firmware sends packets with excessive fragments. While under normal protocol conditions (MTU 3080 bytes, BAT buffer 3584 bytes), a single packet should not require additional fragments, the kernel should not blindly trust firmware behavior. Malicious, buggy, or compromised firmware could potentially craft packets with more fragments than the kernel expects.  Fix this by adding a bounds check before calling skb_add_rx_frag() to ensure nr_frags does not exceed MAX_SKB_FRAGS.  The check must be performed before unmapping to avoid a page leak and double DMA unmap during device teardown.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23212",
                                "url": "https://ubuntu.com/security/CVE-2026-23212",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: annotate data-races around slave->last_rx  slave->last_rx and slave->target_last_arp_rx[...] can be read and written locklessly. Add READ_ONCE() and WRITE_ONCE() annotations.  syzbot reported:  BUG: KCSAN: data-race in bond_rcv_validate / bond_rcv_validate  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 1:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410 ...  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 0:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410   br_netif_receive_skb net/bridge/br_input.c:30 [inline]   NF_HOOK include/linux/netfilter.h:318 [inline] ...  value changed: 0x0000000100005365 -> 0x0000000100005366",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23160",
                                "url": "https://ubuntu.com/security/CVE-2026-23160",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeon_ep: Fix memory leak in octep_device_setup()  In octep_device_setup(), if octep_ctrl_net_init() fails, the function returns directly without unmapping the mapped resources and freeing the allocated configuration memory.  Fix this by jumping to the unsupported_dev label, which performs the necessary cleanup. This aligns with the error handling logic of other paths in this function.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23146",
                                "url": "https://ubuntu.com/security/CVE-2026-23146",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work  hci_uart_set_proto() sets HCI_UART_PROTO_INIT before calling hci_uart_register_dev(), which calls proto->open() to initialize hu->priv. However, if a TTY write wakeup occurs during this window, hci_uart_tx_wakeup() may schedule write_work before hu->priv is initialized, leading to a NULL pointer dereference in hci_uart_write_work() when proto->dequeue() accesses hu->priv.  The race condition is:    CPU0                              CPU1   ----                              ----   hci_uart_set_proto()     set_bit(HCI_UART_PROTO_INIT)     hci_uart_register_dev()                                     tty write wakeup                                       hci_uart_tty_wakeup()                                         hci_uart_tx_wakeup()                                           schedule_work(&hu->write_work)       proto->open(hu)         // initializes hu->priv                                     hci_uart_write_work()                                       hci_uart_dequeue()                                         proto->dequeue(hu)                                           // accesses hu->priv (NULL!)  Fix this by moving set_bit(HCI_UART_PROTO_INIT) after proto->open() succeeds, ensuring hu->priv is initialized before any work can be scheduled.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23394",
                                "url": "https://ubuntu.com/security/CVE-2026-23394",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  af_unix: Give up GC if MSG_PEEK intervened.  Igor Ushakov reported that GC purged the receive queue of an alive socket due to a race with MSG_PEEK with a nice repro.  This is the exact same issue previously fixed by commit cbcf01128d0a (\"af_unix: fix garbage collect vs MSG_PEEK\").  After GC was replaced with the current algorithm, the cited commit removed the locking dance in unix_peek_fds() and reintroduced the same issue.  The problem is that MSG_PEEK bumps a file refcount without interacting with GC.  Consider an SCC containing sk-A and sk-B, where sk-A is close()d but can be recv()ed via sk-B.  The bad thing happens if sk-A is recv()ed with MSG_PEEK from sk-B and sk-B is close()d while GC is checking unix_vertex_dead() for sk-A and sk-B.    GC thread                    User thread   ---------                    -----------   unix_vertex_dead(sk-A)   -> true   <------.                     \\                      `------   recv(sk-B, MSG_PEEK)               invalidate !!    -> sk-A's file refcount : 1 -> 2                                 close(sk-B)                                -> sk-B's file refcount : 2 -> 1   unix_vertex_dead(sk-B)   -> true  Initially, sk-A's file refcount is 1 by the inflight fd in sk-B recvq.  GC thinks sk-A is dead because the file refcount is the same as the number of its inflight fds.  However, sk-A's file refcount is bumped silently by MSG_PEEK, which invalidates the previous evaluation.  At this moment, sk-B's file refcount is 2; one by the open fd, and one by the inflight fd in sk-A.  The subsequent close() releases one refcount by the former.  Finally, GC incorrectly concludes that both sk-A and sk-B are dead.  One option is to restore the locking dance in unix_peek_fds(), but we can resolve this more elegantly thanks to the new algorithm.  The point is that the issue does not occur without the subsequent close() and we actually do not need to synchronise MSG_PEEK with the dead SCC detection.  When the issue occurs, close() and GC touch the same file refcount. If GC sees the refcount being decremented by close(), it can just give up garbage-collecting the SCC.  Therefore, we only need to signal the race during MSG_PEEK with a proper memory barrier to make it visible to the GC.  Let's use seqcount_t to notify GC when MSG_PEEK occurs and let it defer the SCC to the next run.  This way no locking is needed on the MSG_PEEK side, and we can avoid imposing a penalty on every MSG_PEEK unnecessarily.  Note that we can retry within unix_scc_dead() if MSG_PEEK is detected, but we do not do so to avoid hung task splat from abusive MSG_PEEK calls.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-25 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38591",
                                "url": "https://ubuntu.com/security/CVE-2025-38591",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Reject narrower access to pointer ctx fields  The following BPF program, simplified from a syzkaller repro, causes a kernel warning:      r0 = *(u8 *)(r1 + 169);     exit;  With pointer field sk being at offset 168 in __sk_buff. This access is detected as a narrower read in bpf_skb_is_valid_access because it doesn't match offsetof(struct __sk_buff, sk). It is therefore allowed and later proceeds to bpf_convert_ctx_access. Note that for the \"is_narrower_load\" case in the convert_ctx_accesses(), the insn->off is aligned, so the cnt may not be 0 because it matches the offsetof(struct __sk_buff, sk) in the bpf_convert_ctx_access. However, the target_size stays 0 and the verifier errors with a kernel warning:      verifier bug: error during ctx access conversion(1)  This patch fixes that to return a proper \"invalid bpf_context access off=X size=Y\" error on the load instruction.  The same issue affects multiple other fields in context structures that allow narrow access. Some other non-affected fields (for sk_msg, sk_lookup, and sockopt) were also changed to use bpf_ctx_range_ptr for consistency.  Note this syzkaller crash was reported in the \"Closes\" link below, which used to be about a different bug, fixed in commit fce7bd8e385a (\"bpf/verifier: Handle BPF_LOAD_ACQ instructions in insn_def_regno()\"). Because syzbot somehow confused the two bugs, the new crash and repro didn't get reported to the mailing list.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-08-19 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23035",
                                "url": "https://ubuntu.com/security/CVE-2026-23035",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Pass netdev to mlx5e_destroy_netdev instead of priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails.  Pass netdev to mlx5e_destroy_netdev() to guarantee it will work on a valid netdev.  On mlx5e_remove: Check validity of priv->profile, before attempting to cleanup any resources that might be not there.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000370 PGD 0 P4D 0 Oops: Oops: 0000 [#1] SMP NOPTI CPU: 15 UID: 0 PID: 520 Comm: devlink Not tainted 6.18.0-rc5+ #115 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_dcbnl_dscp_app+0x23/0x100 RSP: 0018:ffffc9000083f8b8 EFLAGS: 00010286 RAX: ffff8881126fc380 RBX: ffff8881015ac400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8881035109c0 RBP: ffff8881035109c0 R08: ffff888101e3e838 R09: ffff888100264e10 R10: ffffc9000083f898 R11: ffffc9000083f8a0 R12: ffff888101b921a0 R13: ffff888101b921a0 R14: ffff8881015ac9a0 R15: ffff8881015ac400 FS:  00007f789a3c8740(0000) GS:ffff88856aa59000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000370 CR3: 000000010b6c0001 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_remove+0x57/0x110  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22996",
                                "url": "https://ubuntu.com/security/CVE-2026-22996",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Don't store mlx5e_priv in mlx5e_dev devlink priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails, mlx5e_priv in mlx5e_dev devlink private is used to reference the netdev and mdev associated with that struct. Instead, store netdev directly into mlx5e_dev and get mdev from the containing mlx5_adev aux device structure.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000520  #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: 3 UID: 0 PID: 521 Comm: devlink Not tainted 6.18.0-rc5+ #117 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_remove+0x68/0x130 RSP: 0018:ffffc900034838f0 EFLAGS: 00010246 RAX: ffff88810283c380 RBX: ffff888101874400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffff888102d789c0 R08: ffff8881007137f0 R09: ffff888100264e10 R10: ffffc90003483898 R11: ffffc900034838a0 R12: ffff888100d261a0 R13: ffff888100d261a0 R14: ffff8881018749a0 R15: ffff888101874400 FS:  00007f8565fea740(0000) GS:ffff88856a759000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000520 CR3: 000000010b11a004 CR4: 0000000000370ef0 Call Trace:  <TASK>  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23000",
                                "url": "https://ubuntu.com/security/CVE-2026-23000",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Fix crash on profile change rollback failure  mlx5e_netdev_change_profile can fail to attach a new profile and can fail to rollback to old profile, in such case, we could end up with a dangling netdev with a fully reset netdev_priv. A retry to change profile, e.g. another attempt to call mlx5e_netdev_change_profile via switchdev mode change, will crash trying to access the now NULL priv->mdev.  This fix allows mlx5e_netdev_change_profile() to handle previous failures and an empty priv, by not assuming priv is valid.  Pass netdev and mdev to all flows requiring mlx5e_netdev_change_profile() and avoid passing priv. In mlx5e_netdev_change_profile() check if current priv is valid, and if not, just attach the new profile without trying to access the old one.  This fixes the following oops, when enabling switchdev mode for the 2nd time after first time failure:   ## Enabling switchdev mode first time:  mlx5_core 0012:03:00.1: E-Switch: Supported tc chains and prios offload workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12                                                                         ^^^^^^^^ mlx5_core 0000:00:03.0: E-Switch: Disable: mode(LEGACY), nvfs(0), necvfs(0), active vports(0)   ## retry: Enabling switchdev mode 2nd time:  mlx5_core 0000:00:03.0: E-Switch: Supported tc chains and prios offload BUG: kernel NULL pointer dereference, address: 0000000000000038  #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: 520 Comm: devlink Not tainted 6.18.0-rc4+ #91 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_detach_netdev+0x3c/0x90 Code: 50 00 00 f0 80 4f 78 02 48 8b bf e8 07 00 00 48 85 ff 74 16 48 8b 73 78 48 d1 ee 83 e6 01 83 f6 01 40 0f b6 f6 e8 c4 42 00 00 <48> 8b 45 38 48 85 c0 74 08 48 89 df e8 cc 47 40 1e 48 8b bb f0 07 RSP: 0018:ffffc90000673890 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff8881036a89c0 RCX: 0000000000000000 RDX: ffff888113f63800 RSI: ffffffff822fe720 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000002dcd R09: 0000000000000000 R10: ffffc900006738e8 R11: 00000000ffffffff R12: 0000000000000000 R13: 0000000000000000 R14: ffff8881036a89c0 R15: 0000000000000000 FS:  00007fdfb8384740(0000) GS:ffff88856a9d6000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000038 CR3: 0000000112ae0005 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_netdev_change_profile+0x45/0xb0  mlx5e_vport_rep_load+0x27b/0x2d0  mlx5_esw_offloads_rep_load+0x72/0xf0  esw_offloads_enable+0x5d0/0x970  mlx5_eswitch_enable_locked+0x349/0x430  ? is_mp_supported+0x57/0xb0  mlx5_devlink_eswitch_mode_set+0x26b/0x430  devlink_nl_eswitch_set_doit+0x6f/0xf0  genl_family_rcv_msg_doit+0xe8/0x140  genl_rcv_msg+0x18b/0x290  ? __pfx_devlink_nl_pre_doit+0x10/0x10  ? __pfx_devlink_nl_eswitch_set_doit+0x10/0x10  ? __pfx_devlink_nl_post_doit+0x10/0x10  ? __pfx_genl_rcv_msg+0x10/0x10  netlink_rcv_skb+0x52/0x100  genl_rcv+0x28/0x40  netlink_unicast+0x282/0x3e0  ? __alloc_skb+0xd6/0x190  netlink_sendmsg+0x1f7/0x430  __sys_sendto+0x213/0x220  ? __sys_recvmsg+0x6a/0xd0  __x64_sys_sendto+0x24/0x30  do_syscall_64+0x50/0x1f0  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fdfb8495047",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23053",
                                "url": "https://ubuntu.com/security/CVE-2026-23053",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Fix a deadlock involving nfs_release_folio()  Wang Zhaolong reports a deadlock involving NFSv4.1 state recovery waiting on kthreadd, which is attempting to reclaim memory by calling nfs_release_folio(). The latter cannot make progress due to state recovery being needed.  It seems that the only safe thing to do here is to kick off a writeback of the folio, without waiting for completion, or else kicking off an asynchronous commit.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23050",
                                "url": "https://ubuntu.com/security/CVE-2026-23050",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pNFS: Fix a deadlock when returning a delegation during open()  Ben Coddington reports seeing a hang in the following stack trace:   0 [ffffd0b50e1774e0] __schedule at ffffffff9ca05415   1 [ffffd0b50e177548] schedule at ffffffff9ca05717   2 [ffffd0b50e177558] bit_wait at ffffffff9ca061e1   3 [ffffd0b50e177568] __wait_on_bit at ffffffff9ca05cfb   4 [ffffd0b50e1775c8] out_of_line_wait_on_bit at ffffffff9ca05ea5   5 [ffffd0b50e177618] pnfs_roc at ffffffffc154207b [nfsv4]   6 [ffffd0b50e1776b8] _nfs4_proc_delegreturn at ffffffffc1506586 [nfsv4]   7 [ffffd0b50e177788] nfs4_proc_delegreturn at ffffffffc1507480 [nfsv4]   8 [ffffd0b50e1777f8] nfs_do_return_delegation at ffffffffc1523e41 [nfsv4]   9 [ffffd0b50e177838] nfs_inode_set_delegation at ffffffffc1524a75 [nfsv4]  10 [ffffd0b50e177888] nfs4_process_delegation at ffffffffc14f41dd [nfsv4]  11 [ffffd0b50e1778a0] _nfs4_opendata_to_nfs4_state at ffffffffc1503edf [nfsv4]  12 [ffffd0b50e1778c0] _nfs4_open_and_get_state at ffffffffc1504e56 [nfsv4]  13 [ffffd0b50e177978] _nfs4_do_open at ffffffffc15051b8 [nfsv4]  14 [ffffd0b50e1779f8] nfs4_do_open at ffffffffc150559c [nfsv4]  15 [ffffd0b50e177a80] nfs4_atomic_open at ffffffffc15057fb [nfsv4]  16 [ffffd0b50e177ad0] nfs4_file_open at ffffffffc15219be [nfsv4]  17 [ffffd0b50e177b78] do_dentry_open at ffffffff9c09e6ea  18 [ffffd0b50e177ba8] vfs_open at ffffffff9c0a082e  19 [ffffd0b50e177bd0] dentry_open at ffffffff9c0a0935  The issue is that the delegreturn is being asked to wait for a layout return that cannot complete because a state recovery was initiated. The state recovery cannot complete until the open() finishes processing the delegations it was given.  The solution is to propagate the existing flags that indicate a non-blocking call to the function pnfs_roc(), so that it knows not to wait in this situation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23005",
                                "url": "https://ubuntu.com/security/CVE-2026-23005",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1  When loading guest XSAVE state via KVM_SET_XSAVE, and when updating XFD in response to a guest WRMSR, clear XFD-disabled features in the saved (or to be restored) XSTATE_BV to ensure KVM doesn't attempt to load state for features that are disabled via the guest's XFD.  Because the kernel executes XRSTOR with the guest's XFD, saving XSTATE_BV[i]=1 with XFD[i]=1 will cause XRSTOR to #NM and panic the kernel.  E.g. if fpu_update_guest_xfd() sets XFD without clearing XSTATE_BV:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#29: amx_test/848   Modules linked in: kvm_intel kvm irqbypass   CPU: 29 UID: 1000 PID: 848 Comm: amx_test Not tainted 6.19.0-rc2-ffa07f7fd437-x86_amx_nm_xfd_non_init-vm #171 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    switch_fpu_return+0x4a/0xb0    kvm_arch_vcpu_ioctl_run+0x1245/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  This can happen if the guest executes WRMSR(MSR_IA32_XFD) to set XFD[18] = 1, and a host IRQ triggers kernel_fpu_begin() prior to the vmexit handler's call to fpu_update_guest_xfd().  and if userspace stuffs XSTATE_BV[i]=1 via KVM_SET_XSAVE:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#14: amx_test/867   Modules linked in: kvm_intel kvm irqbypass   CPU: 14 UID: 1000 PID: 867 Comm: amx_test Not tainted 6.19.0-rc2-2dace9faccd6-x86_amx_nm_xfd_non_init-vm #168 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    fpu_swap_kvm_fpstate+0x6b/0x120    kvm_load_guest_fpu+0x30/0x80 [kvm]    kvm_arch_vcpu_ioctl_run+0x85/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  The new behavior is consistent with the AMX architecture.  Per Intel's SDM, XSAVE saves XSTATE_BV as '0' for components that are disabled via XFD (and non-compacted XSAVE saves the initial configuration of the state component):    If XSAVE, XSAVEC, XSAVEOPT, or XSAVES is saving the state component i,   the instruction does not generate #NM when XCR0[i] = IA32_XFD[i] = 1;   instead, it operates as if XINUSE[i] = 0 (and the state component was   in its initial state): it saves bit i of XSTATE_BV field of the XSAVE   header as 0; in addition, XSAVE saves the initial configuration of the   state component (the other instructions do not save state component i).  Alternatively, KVM could always do XRSTOR with XFD=0, e.g. by using a constant XFD based on the set of enabled features when XSAVEing for a struct fpu_guest.  However, having XSTATE_BV[i]=1 for XFD-disabled features can only happen in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, because fpu_swap_kvm_fpstate()'s call to save_fpregs_to_fpstate() saves the outgoing FPU state with the current XFD; and that is (on all but the first WRMSR to XFD) the guest XFD.  Therefore, XFD can only go out of sync with XSTATE_BV in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, and it we can consider it (de facto) part of KVM ABI that KVM_GET_XSAVE returns XSTATE_BV[i]=0 for XFD-disabled features.  [Move clea ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-58097",
                                "url": "https://ubuntu.com/security/CVE-2024-58097",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix RCU stall while reaping monitor destination ring  While processing the monitor destination ring, MSDUs are reaped from the link descriptor based on the corresponding buf_id.  However, sometimes the driver cannot obtain a valid buffer corresponding to the buf_id received from the hardware. This causes an infinite loop in the destination processing, resulting in a kernel crash.  kernel log: ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed  Fix this by skipping the problematic buf_id and reaping the next entry, replacing the break with the next MSDU processing.  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68365",
                                "url": "https://ubuntu.com/security/CVE-2025-68365",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/ntfs3: Initialize allocated memory before use  KMSAN reports: Multiple uninitialized values detected:  - KMSAN: uninit-value in ntfs_read_hdr (3) - KMSAN: uninit-value in bcmp (3)  Memory is allocated by __getname(), which is a wrapper for kmem_cache_alloc(). This memory is used before being properly cleared. Change kmem_cache_alloc() to kmem_cache_zalloc() to properly allocate and clear memory before use.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-37926",
                                "url": "https://ubuntu.com/security/CVE-2025-37926",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_session_rpc_open  A UAF issue can occur due to a race condition between ksmbd_session_rpc_open() and __session_rpc_close(). Add rpc_lock to the session to protect it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-05-20 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23030",
                                "url": "https://ubuntu.com/security/CVE-2026-23030",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: rockchip: inno-usb2: Fix a double free bug in rockchip_usb2phy_probe()  The for_each_available_child_of_node() calls of_node_put() to release child_np in each success loop. After breaking from the loop with the child_np has been released, the code will jump to the put_child label and will call the of_node_put() again if the devm_request_threaded_irq() fails. These cause a double free bug.  Fix by returning directly to avoid the duplicate of_node_put().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23025",
                                "url": "https://ubuntu.com/security/CVE-2026-23025",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/page_alloc: prevent pcp corruption with SMP=n  The kernel test robot has reported:   BUG: spinlock trylock failure on UP on CPU#0, kcompactd0/28   lock: 0xffff888807e35ef0, .magic: dead4ead, .owner: kcompactd0/28, .owner_cpu: 0  CPU: 0 UID: 0 PID: 28 Comm: kcompactd0 Not tainted 6.18.0-rc5-00127-ga06157804399 #1 PREEMPT 8cc09ef94dcec767faa911515ce9e609c45db470  Call Trace:   <IRQ>   __dump_stack (lib/dump_stack.c:95)   dump_stack_lvl (lib/dump_stack.c:123)   dump_stack (lib/dump_stack.c:130)   spin_dump (kernel/locking/spinlock_debug.c:71)   do_raw_spin_trylock (kernel/locking/spinlock_debug.c:?)   _raw_spin_trylock (include/linux/spinlock_api_smp.h:89 kernel/locking/spinlock.c:138)   __free_frozen_pages (mm/page_alloc.c:2973)   ___free_pages (mm/page_alloc.c:5295)   __free_pages (mm/page_alloc.c:5334)   tlb_remove_table_rcu (include/linux/mm.h:? include/linux/mm.h:3122 include/asm-generic/tlb.h:220 mm/mmu_gather.c:227 mm/mmu_gather.c:290)   ? __cfi_tlb_remove_table_rcu (mm/mmu_gather.c:289)   ? rcu_core (kernel/rcu/tree.c:?)   rcu_core (include/linux/rcupdate.h:341 kernel/rcu/tree.c:2607 kernel/rcu/tree.c:2861)   rcu_core_si (kernel/rcu/tree.c:2879)   handle_softirqs (arch/x86/include/asm/jump_label.h:36 include/trace/events/irq.h:142 kernel/softirq.c:623)   __irq_exit_rcu (arch/x86/include/asm/jump_label.h:36 kernel/softirq.c:725)   irq_exit_rcu (kernel/softirq.c:741)   sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1052)   </IRQ>   <TASK>  RIP: 0010:_raw_spin_unlock_irqrestore (arch/x86/include/asm/preempt.h:95 include/linux/spinlock_api_smp.h:152 kernel/locking/spinlock.c:194)   free_pcppages_bulk (mm/page_alloc.c:1494)   drain_pages_zone (include/linux/spinlock.h:391 mm/page_alloc.c:2632)   __drain_all_pages (mm/page_alloc.c:2731)   drain_all_pages (mm/page_alloc.c:2747)   kcompactd (mm/compaction.c:3115)   kthread (kernel/kthread.c:465)   ? __cfi_kcompactd (mm/compaction.c:3166)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork (arch/x86/kernel/process.c:164)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork_asm (arch/x86/entry/entry_64.S:255)   </TASK>  Matthew has analyzed the report and identified that in drain_page_zone() we are in a section protected by spin_lock(&pcp->lock) and then get an interrupt that attempts spin_trylock() on the same lock.  The code is designed to work this way without disabling IRQs and occasionally fail the trylock with a fallback.  However, the SMP=n spinlock implementation assumes spin_trylock() will always succeed, and thus it's normally a no-op.  Here the enabled lock debugging catches the problem, but otherwise it could cause a corruption of the pcp structure.  The problem has been introduced by commit 574907741599 (\"mm/page_alloc: leave IRQs enabled for per-cpu page allocations\").  The pcp locking scheme recognizes the need for disabling IRQs to prevent nesting spin_trylock() sections on SMP=n, but the need to prevent the nesting in spin_lock() has not been recognized.  Fix it by introducing local wrappers that change the spin_lock() to spin_lock_iqsave() with SMP=n and use them in all places that do spin_lock(&pcp->lock).  [vbabka@suse.cz: add pcp_ prefix to the spin_lock_irqsave wrappers, per Steven]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71186",
                                "url": "https://ubuntu.com/security/CVE-2025-71186",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: stm32: dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23078",
                                "url": "https://ubuntu.com/security/CVE-2026-23078",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: scarlett2: Fix buffer overflow in config retrieval  The scarlett2_usb_get_config() function has a logic error in the endianness conversion code that can cause buffer overflows when count > 1.  The code checks `if (size == 2)` where `size` is the total buffer size in bytes, then loops `count` times treating each element as u16 (2 bytes). This causes the loop to access `count * 2` bytes when the buffer only has `size` bytes allocated.  Fix by checking the element size (config_item->size) instead of the total buffer size. This ensures the endianness conversion matches the actual element type.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23142",
                                "url": "https://ubuntu.com/security/CVE-2026-23142",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs-scheme: cleanup access_pattern subdirs on scheme dir setup failure  When a DAMOS-scheme DAMON sysfs directory setup fails after setup of access_pattern/ directory, subdirectories of access_pattern/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23075",
                                "url": "https://ubuntu.com/security/CVE-2026-23075",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: esd_usb: esd_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In esd_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback esd_usb_read_bulk_callback(), the URBs are processed and resubmitted. In esd_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in esd_usb_close().  Fix the memory leak by anchoring the URB in the esd_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68725",
                                "url": "https://ubuntu.com/security/CVE-2025-68725",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Do not let BPF test infra emit invalid GSO types to stack  Yinhao et al. reported that their fuzzer tool was able to trigger a skb_warn_bad_offload() from netif_skb_features() -> gso_features_check(). When a BPF program - triggered via BPF test infra - pushes the packet to the loopback device via bpf_clone_redirect() then mentioned offload warning can be seen. GSO-related features are then rightfully disabled.  We get into this situation due to convert___skb_to_skb() setting gso_segs and gso_size but not gso_type. Technically, it makes sense that this warning triggers since the GSO properties are malformed due to the gso_type. Potentially, the gso_type could be marked non-trustworthy through setting it at least to SKB_GSO_DODGY without any other specific assumptions, but that also feels wrong given we should not go further into the GSO engine in the first place.  The checks were added in 121d57af308d (\"gso: validate gso_type in GSO handlers\") because there were malicious (syzbot) senders that combine a protocol with a non-matching gso_type. If we would want to drop such packets, gso_features_check() currently only returns feature flags via netif_skb_features(), so one location for potentially dropping such skbs could be validate_xmit_unreadable_skb(), but then otoh it would be an additional check in the fast-path for a very corner case. Given bpf_clone_redirect() is the only place where BPF test infra could emit such packets, lets reject them right there.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23097",
                                "url": "https://ubuntu.com/security/CVE-2026-23097",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  migrate: correct lock ordering for hugetlb file folios  Syzbot has found a deadlock (analyzed by Lance Yang):  1) Task (5749): Holds folio_lock, then tries to acquire i_mmap_rwsem(read lock). 2) Task (5754): Holds i_mmap_rwsem(write lock), then tries to acquire folio_lock.  migrate_pages()   -> migrate_hugetlbs()     -> unmap_and_move_huge_page()     <- Takes folio_lock!       -> remove_migration_ptes()         -> __rmap_walk_file()           -> i_mmap_lock_read()       <- Waits for i_mmap_rwsem(read lock)!  hugetlbfs_fallocate()   -> hugetlbfs_punch_hole()           <- Takes i_mmap_rwsem(write lock)!     -> hugetlbfs_zero_partial_page()      -> filemap_lock_hugetlb_folio()       -> filemap_lock_folio()         -> __filemap_get_folio        <- Waits for folio_lock!  The migration path is the one taking locks in the wrong order according to the documentation at the top of mm/rmap.c.  So expand the scope of the existing i_mmap_lock to cover the calls to remove_migration_ptes() too.  This is (mostly) how it used to be after commit c0d0381ade79.  That was removed by 336bf30eb765 for both file & anon hugetlb pages when it should only have been removed for anon hugetlb pages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23108",
                                "url": "https://ubuntu.com/security/CVE-2026-23108",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: usb_8dev: usb_8dev_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In usb_8dev_open() -> usb_8dev_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback usb_8dev_read_bulk_callback(), the URBs are processed and resubmitted. In usb_8dev_close() -> unlink_all_urbs() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the usb_8dev_read_bulk_callback() to the priv->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23080",
                                "url": "https://ubuntu.com/security/CVE-2026-23080",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: mcba_usb: mcba_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In mcba_usb_probe() -> mcba_usb_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback mcba_usb_read_bulk_callback(), the URBs are processed and resubmitted. In mcba_usb_close() -> mcba_urb_unlink() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the mcba_usb_read_bulk_callback()to the priv->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23061",
                                "url": "https://ubuntu.com/security/CVE-2026-23061",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In kvaser_usb_set_{,data_}bittiming() -> kvaser_usb_setup_rx_urbs(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback kvaser_usb_read_bulk_callback(), the URBs are processed and resubmitted. In kvaser_usb_remove_interfaces() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the kvaser_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23058",
                                "url": "https://ubuntu.com/security/CVE-2026-23058",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In ems_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback ems_usb_read_bulk_callback(), the URBs are processed and resubmitted. In ems_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in ems_usb_close().  Fix the memory leak by anchoring the URB in the ems_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23085",
                                "url": "https://ubuntu.com/security/CVE-2026-23085",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/gic-v3-its: Avoid truncating memory addresses  On 32-bit machines with CONFIG_ARM_LPAE, it is possible for lowmem allocations to be backed by addresses physical memory above the 32-bit address limit, as found while experimenting with larger VMSPLIT configurations.  This caused the qemu virt model to crash in the GICv3 driver, which allocates the 'itt' object using GFP_KERNEL. Since all memory below the 4GB physical address limit is in ZONE_DMA in this configuration, kmalloc() defaults to higher addresses for ZONE_NORMAL, and the ITS driver stores the physical address in a 32-bit 'unsigned long' variable.  Change the itt_addr variable to the correct phys_addr_t type instead, along with all other variables in this driver that hold a physical address.  The gicv5 driver correctly uses u64 variables, while all other irqchip drivers don't call virt_to_phys or similar interfaces. It's expected that other device drivers have similar issues, but fixing this one is sufficient for booting a virtio based guest.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23116",
                                "url": "https://ubuntu.com/security/CVE-2026-23116",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu  For i.MX8MQ platform, the ADB in the VPUMIX domain has no separate reset and clock enable bits, but is ungated and reset together with the VPUs. So we can't reset G1 or G2 separately, it may led to the system hang. Remove rst_mask and clk_mask of imx8mq_vpu_blk_ctl_domain_data. Let imx8mq_vpu_power_notifier() do really vpu reset.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23098",
                                "url": "https://ubuntu.com/security/CVE-2026-23098",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: fix double-free in nr_route_frame()  In nr_route_frame(), old_skb is immediately freed without checking if nr_neigh->ax25 pointer is NULL. Therefore, if nr_neigh->ax25 is NULL, the caller function will free old_skb again, causing a double-free bug.  Therefore, to prevent this, we need to modify it to check whether nr_neigh->ax25 is NULL before freeing old_skb.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23063",
                                "url": "https://ubuntu.com/security/CVE-2026-23063",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: ensure safe queue release with state management  Directly calling `put_queue` carries risks since it cannot guarantee that resources of `uacce_queue` have been fully released beforehand. So adding a `stop_queue` operation for the UACCE_CMD_PUT_Q command and leaving the `put_queue` operation to the final resource release ensures safety.  Queue states are defined as follows: - UACCE_Q_ZOMBIE: Initial state - UACCE_Q_INIT: After opening `uacce` - UACCE_Q_STARTED: After `start` is issued via `ioctl`  When executing `poweroff -f` in virt while accelerator are still working, `uacce_fops_release` and `uacce_remove` may execute concurrently. This can cause `uacce_put_queue` within `uacce_fops_release` to access a NULL `ops` pointer. Therefore, add state checks to prevent accessing freed pointers.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23056",
                                "url": "https://ubuntu.com/security/CVE-2026-23056",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: implement mremap in uacce_vm_ops to return -EPERM  The current uacce_vm_ops does not support the mremap operation of vm_operations_struct. Implement .mremap to return -EPERM to remind users.  The reason we need to explicitly disable mremap is that when the driver does not implement .mremap, it uses the default mremap method. This could lead to a risk scenario:  An application might first mmap address p1, then mremap to p2, followed by munmap(p1), and finally munmap(p2). Since the default mremap copies the original vma's vm_private_data (i.e., q) to the new vma, both munmap operations would trigger vma_close, causing q->qfr to be freed twice(qfr will be set to null here, so repeated release is ok).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23094",
                                "url": "https://ubuntu.com/security/CVE-2026-23094",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix isolate sysfs check condition  uacce supports the device isolation feature. If the driver implements the isolate_err_threshold_read and isolate_err_threshold_write callback functions, uacce will create sysfs files now. Users can read and configure the isolation policy through sysfs. Currently, sysfs files are created as long as either isolate_err_threshold_read or isolate_err_threshold_write callback functions are present.  However, accessing a non-existent callback function may cause the system to crash. Therefore, intercept the creation of sysfs if neither read nor write exists; create sysfs if either is supported, but intercept unsupported operations at the call site.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23096",
                                "url": "https://ubuntu.com/security/CVE-2026-23096",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix cdev handling in the cleanup path  When cdev_device_add fails, it internally releases the cdev memory, and if cdev_device_del is then executed, it will cause a hang error. To fix it, we check the return value of cdev_device_add() and clear uacce->cdev to avoid calling cdev_device_del in the uacce_remove.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23091",
                                "url": "https://ubuntu.com/security/CVE-2026-23091",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  intel_th: fix device leak on output open()  Make sure to drop the reference taken when looking up the th device during output device open() on errors and on close().  Note that a recent commit fixed the leak in a couple of open() error paths but not all of them, and the reference is still leaking on successful open().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23088",
                                "url": "https://ubuntu.com/security/CVE-2026-23088",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Fix crash on synthetic stacktrace field usage  When creating a synthetic event based on an existing synthetic event that had a stacktrace field and the new synthetic event used that field a kernel crash occurred:   ~# cd /sys/kernel/tracing  ~# echo 's:stack unsigned long stack[];' > dynamic_events  ~# echo 'hist:keys=prev_pid:s0=common_stacktrace if prev_state & 3' >> events/sched/sched_switch/trigger  ~# echo 'hist:keys=next_pid:s1=$s0:onmatch(sched.sched_switch).trace(stack,$s1)' >> events/sched/sched_switch/trigger  The above creates a synthetic event that takes a stacktrace when a task schedules out in a non-running state and passes that stacktrace to the sched_switch event when that task schedules back in. It triggers the \"stack\" synthetic event that has a stacktrace as its field (called \"stack\").   ~# echo 's:syscall_stack s64 id; unsigned long stack[];' >> dynamic_events  ~# echo 'hist:keys=common_pid:s2=stack' >> events/synthetic/stack/trigger  ~# echo 'hist:keys=common_pid:s3=$s2,i0=id:onmatch(synthetic.stack).trace(syscall_stack,$i0,$s3)' >> events/raw_syscalls/sys_exit/trigger  The above makes another synthetic event called \"syscall_stack\" that attaches the first synthetic event (stack) to the sys_exit trace event and records the stacktrace from the stack event with the id of the system call that is exiting.  When enabling this event (or using it in a historgram):   ~# echo 1 > events/synthetic/syscall_stack/enable  Produces a kernel crash!   BUG: unable to handle page fault for address: 0000000000400010  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP PTI  CPU: 6 UID: 0 PID: 1257 Comm: bash Not tainted 6.16.3+deb14-amd64 #1 PREEMPT(lazy)  Debian 6.16.3-1  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:trace_event_raw_event_synth+0x90/0x380  Code: c5 00 00 00 00 85 d2 0f 84 e1 00 00 00 31 db eb 34 0f 1f 00 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 <49> 8b 04 24 48 83 c3 01 8d 0c c5 08 00 00 00 01 cd 41 3b 5d 40 0f  RSP: 0018:ffffd2670388f958 EFLAGS: 00010202  RAX: ffff8ba1065cc100 RBX: 0000000000000000 RCX: 0000000000000000  RDX: 0000000000000001 RSI: fffff266ffda7b90 RDI: ffffd2670388f9b0  RBP: 0000000000000010 R08: ffff8ba104e76000 R09: ffffd2670388fa50  R10: ffff8ba102dd42e0 R11: ffffffff9a908970 R12: 0000000000400010  R13: ffff8ba10a246400 R14: ffff8ba10a710220 R15: fffff266ffda7b90  FS:  00007fa3bc63f740(0000) GS:ffff8ba2e0f48000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000400010 CR3: 0000000107f9e003 CR4: 0000000000172ef0  Call Trace:   <TASK>   ? __tracing_map_insert+0x208/0x3a0   action_trace+0x67/0x70   event_hist_trigger+0x633/0x6d0   event_triggers_call+0x82/0x130   trace_event_buffer_commit+0x19d/0x250   trace_event_raw_event_sys_exit+0x62/0xb0   syscall_exit_work+0x9d/0x140   do_syscall_64+0x20a/0x2f0   ? trace_event_raw_event_sched_switch+0x12b/0x170   ? save_fpregs_to_fpstate+0x3e/0x90   ? _raw_spin_unlock+0xe/0x30   ? finish_task_switch.isra.0+0x97/0x2c0   ? __rseq_handle_notify_resume+0xad/0x4c0   ? __schedule+0x4b8/0xd00   ? restore_fpregs_from_fpstate+0x3c/0x90   ? switch_fpu_return+0x5b/0xe0   ? do_syscall_64+0x1ef/0x2f0   ? do_fault+0x2e9/0x540   ? __handle_mm_fault+0x7d1/0xf70   ? count_memcg_events+0x167/0x1d0   ? handle_mm_fault+0x1d7/0x2e0   ? do_user_addr_fault+0x2c3/0x7f0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  The reason is that the stacktrace field is not labeled as such, and is treated as a normal field and not as a dynamic event that it is.  In trace_event_raw_event_synth() the event is field is still treated as a dynamic array, but the retrieval of the data is considered a normal field, and the reference is just the meta data:  // Meta data is retrieved instead of a dynamic array ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23090",
                                "url": "https://ubuntu.com/security/CVE-2026-23090",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  slimbus: core: fix device reference leak on report present  Slimbus devices can be allocated dynamically upon reception of report-present messages.  Make sure to drop the reference taken when looking up already registered devices.  Note that this requires taking an extra reference in case the device has not yet been registered and has to be allocated.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23128",
                                "url": "https://ubuntu.com/security/CVE-2026-23128",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64: Set __nocfi on swsusp_arch_resume()  A DABT is reported[1] on an android based system when resume from hiberate. This happens because swsusp_arch_suspend_exit() is marked with SYM_CODE_*() and does not have a CFI hash, but swsusp_arch_resume() will attempt to verify the CFI hash when calling a copy of swsusp_arch_suspend_exit().  Given that there's an existing requirement that the entrypoint to swsusp_arch_suspend_exit() is the first byte of the .hibernate_exit.text section, we cannot fix this by marking swsusp_arch_suspend_exit() with SYM_FUNC_*(). The simplest fix for now is to disable the CFI check in swsusp_arch_resume().  Mark swsusp_arch_resume() as __nocfi to disable the CFI check.  [1] [   22.991934][    T1] Unable to handle kernel paging request at virtual address 0000000109170ffc [   22.991934][    T1] Mem abort info: [   22.991934][    T1]   ESR = 0x0000000096000007 [   22.991934][    T1]   EC = 0x25: DABT (current EL), IL = 32 bits [   22.991934][    T1]   SET = 0, FnV = 0 [   22.991934][    T1]   EA = 0, S1PTW = 0 [   22.991934][    T1]   FSC = 0x07: level 3 translation fault [   22.991934][    T1] Data abort info: [   22.991934][    T1]   ISV = 0, ISS = 0x00000007, ISS2 = 0x00000000 [   22.991934][    T1]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [   22.991934][    T1]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [   22.991934][    T1] [0000000109170ffc] user address but active_mm is swapper [   22.991934][    T1] Internal error: Oops: 0000000096000007 [#1] PREEMPT SMP [   22.991934][    T1] Dumping ftrace buffer: [   22.991934][    T1]    (ftrace buffer empty) [   22.991934][    T1] Modules linked in: [   22.991934][    T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.6.98-android15-8-g0b1d2aee7fc3-dirty-4k #1 688c7060a825a3ac418fe53881730b355915a419 [   22.991934][    T1] Hardware name: Unisoc UMS9360-base Board (DT) [   22.991934][    T1] pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [   22.991934][    T1] pc : swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1] lr : swsusp_arch_resume+0x294/0x344 [   22.991934][    T1] sp : ffffffc08006b960 [   22.991934][    T1] x29: ffffffc08006b9c0 x28: 0000000000000000 x27: 0000000000000000 [   22.991934][    T1] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000820 [   22.991934][    T1] x23: ffffffd0817e3000 x22: ffffffd0817e3000 x21: 0000000000000000 [   22.991934][    T1] x20: ffffff8089171000 x19: ffffffd08252c8c8 x18: ffffffc080061058 [   22.991934][    T1] x17: 00000000529c6ef0 x16: 00000000529c6ef0 x15: 0000000000000004 [   22.991934][    T1] x14: ffffff8178c88000 x13: 0000000000000006 x12: 0000000000000000 [   22.991934][    T1] x11: 0000000000000015 x10: 0000000000000001 x9 : ffffffd082533000 [   22.991934][    T1] x8 : 0000000109171000 x7 : 205b5d3433393139 x6 : 392e32322020205b [   22.991934][    T1] x5 : 000000010916f000 x4 : 000000008164b000 x3 : ffffff808a4e0530 [   22.991934][    T1] x2 : ffffffd08058e784 x1 : 0000000082326000 x0 : 000000010a283000 [   22.991934][    T1] Call trace: [   22.991934][    T1]  swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1]  hibernation_restore+0x158/0x18c [   22.991934][    T1]  load_image_and_restore+0xb0/0xec [   22.991934][    T1]  software_resume+0xf4/0x19c [   22.991934][    T1]  software_resume_initcall+0x34/0x78 [   22.991934][    T1]  do_one_initcall+0xe8/0x370 [   22.991934][    T1]  do_initcall_level+0xc8/0x19c [   22.991934][    T1]  do_initcalls+0x70/0xc0 [   22.991934][    T1]  do_basic_setup+0x1c/0x28 [   22.991934][    T1]  kernel_init_freeable+0xe0/0x148 [   22.991934][    T1]  kernel_init+0x20/0x1a8 [   22.991934][    T1]  ret_from_fork+0x10/0x20 [   22.991934][    T1] Code: a9400a61 f94013e0 f9438923 f9400a64 (b85fc110)  [catalin.marinas@arm.com: commit log updated by Mark Rutland]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23107",
                                "url": "https://ubuntu.com/security/CVE-2026-23107",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Allocate SSVE storage when restoring ZA  The code to restore a ZA context doesn't attempt to allocate the task's sve_state before setting TIF_SME. Consequently, restoring a ZA context can place a task into an invalid state where TIF_SME is set but the task's sve_state is NULL.  In legitimate but uncommon cases where the ZA signal context was NOT created by the kernel in the context of the same task (e.g. if the task is saved/restored with something like CRIU), we have no guarantee that sve_state had been allocated previously. In these cases, userspace can enter streaming mode without trapping while sve_state is NULL, causing a later NULL pointer dereference when the kernel attempts to store the register state:  | # ./sigreturn-za | Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 | Mem abort info: |   ESR = 0x0000000096000046 |   EC = 0x25: DABT (current EL), IL = 32 bits |   SET = 0, FnV = 0 |   EA = 0, S1PTW = 0 |   FSC = 0x06: level 2 translation fault | Data abort info: |   ISV = 0, ISS = 0x00000046, ISS2 = 0x00000000 |   CM = 0, WnR = 1, TnD = 0, TagAccess = 0 |   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 | user pgtable: 4k pages, 52-bit VAs, pgdp=0000000101f47c00 | [0000000000000000] pgd=08000001021d8403, p4d=0800000102274403, pud=0800000102275403, pmd=0000000000000000 | Internal error: Oops: 0000000096000046 [#1]  SMP | Modules linked in: | CPU: 0 UID: 0 PID: 153 Comm: sigreturn-za Not tainted 6.19.0-rc1 #1 PREEMPT | Hardware name: linux,dummy-virt (DT) | pstate: 214000c9 (nzCv daIF +PAN -UAO -TCO +DIT -SSBS BTYPE=--) | pc : sve_save_state+0x4/0xf0 | lr : fpsimd_save_user_state+0xb0/0x1c0 | sp : ffff80008070bcc0 | x29: ffff80008070bcc0 x28: fff00000c1ca4c40 x27: 63cfa172fb5cf658 | x26: fff00000c1ca5228 x25: 0000000000000000 x24: 0000000000000000 | x23: 0000000000000000 x22: fff00000c1ca4c40 x21: fff00000c1ca4c40 | x20: 0000000000000020 x19: fff00000ff6900f0 x18: 0000000000000000 | x17: fff05e8e0311f000 x16: 0000000000000000 x15: 028fca8f3bdaf21c | x14: 0000000000000212 x13: fff00000c0209f10 x12: 0000000000000020 | x11: 0000000000200b20 x10: 0000000000000000 x9 : fff00000ff69dcc0 | x8 : 00000000000003f2 x7 : 0000000000000001 x6 : fff00000c1ca5b48 | x5 : fff05e8e0311f000 x4 : 0000000008000000 x3 : 0000000000000000 | x2 : 0000000000000001 x1 : fff00000c1ca5970 x0 : 0000000000000440 | Call trace: |  sve_save_state+0x4/0xf0 (P) |  fpsimd_thread_switch+0x48/0x198 |  __switch_to+0x20/0x1c0 |  __schedule+0x36c/0xce0 |  schedule+0x34/0x11c |  exit_to_user_mode_loop+0x124/0x188 |  el0_interrupt+0xc8/0xd8 |  __el0_irq_handler_common+0x18/0x24 |  el0t_64_irq_handler+0x10/0x1c |  el0t_64_irq+0x198/0x19c | Code: 54000040 d51b4408 d65f03c0 d503245f (e5bb5800) | ---[ end trace 0000000000000000 ]---  Fix this by having restore_za_context() ensure that the task's sve_state is allocated, matching what we do when taking an SME trap. Any live SVE/SSVE state (which is restored earlier from a separate signal context) must be preserved, and hence this is not zeroed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23073",
                                "url": "https://ubuntu.com/security/CVE-2026-23073",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rsi: Fix memory corruption due to not set vif driver data size  The struct ieee80211_vif contains trailing space for vif driver data, when struct ieee80211_vif is allocated, the total memory size that is allocated is sizeof(struct ieee80211_vif) + size of vif driver data. The size of vif driver data is set by each WiFi driver as needed.  The RSI911x driver does not set vif driver data size, no trailing space for vif driver data is therefore allocated past struct ieee80211_vif . The RSI911x driver does however use the vif driver data to store its vif driver data structure \"struct vif_priv\". An access to vif->drv_priv leads to access out of struct ieee80211_vif bounds and corruption of some memory.  In case of the failure observed locally, rsi_mac80211_add_interface() would write struct vif_priv *vif_info = (struct vif_priv *)vif->drv_priv; vif_info->vap_id = vap_idx. This write corrupts struct fq_tin member struct list_head new_flows . The flow = list_first_entry(head, struct fq_flow, flowchain); in fq_tin_reset() then reports non-NULL bogus address, which when accessed causes a crash.  The trigger is very simple, boot the machine with init=/bin/sh , mount devtmpfs, sysfs, procfs, and then do \"ip link set wlan0 up\", \"sleep 1\", \"ip link set wlan0 down\" and the crash occurs.  Fix this by setting the correct size of vif driver data, which is the size of \"struct vif_priv\", so that memory is allocated and the driver can store its driver data in it, instead of corrupting memory around it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23135",
                                "url": "https://ubuntu.com/security/CVE-2026-23135",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath12k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23133",
                                "url": "https://ubuntu.com/security/CVE-2026-23133",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath10k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71200",
                                "url": "https://ubuntu.com/security/CVE-2025-71200",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: sdhci-of-dwcmshc: Prevent illegal clock reduction in HS200/HS400 mode  When operating in HS200 or HS400 timing modes, reducing the clock frequency below 52MHz will lead to link broken as the Rockchip DWC MSHC controller requires maintaining a minimum clock of 52MHz in these modes.  Add a check to prevent illegal clock reduction through debugfs:  root@debian:/# echo 50000000 > /sys/kernel/debug/mmc0/clock root@debian:/# [   30.090146] mmc0: running CQE recovery mmc0: cqhci: Failed to halt mmc0: cqhci: spurious TCN for tag 0 WARNING: drivers/mmc/host/cqhci-core.c:797 at cqhci_irq+0x254/0x818, CPU#1: kworker/1:0H/24 Modules linked in: CPU: 1 UID: 0 PID: 24 Comm: kworker/1:0H Not tainted 6.19.0-rc1-00001-g09db0998649d-dirty #204 PREEMPT Hardware name: Rockchip RK3588 EVB1 V10 Board (DT) Workqueue: kblockd blk_mq_run_work_fn pstate: 604000c9 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : cqhci_irq+0x254/0x818 lr : cqhci_irq+0x254/0x818 ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23089",
                                "url": "https://ubuntu.com/security/CVE-2026-23089",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix use-after-free in snd_usb_mixer_free()  When snd_usb_create_mixer() fails, snd_usb_mixer_free() frees mixer->id_elems but the controls already added to the card still reference the freed memory. Later when snd_card_register() runs, the OSS mixer layer calls their callbacks and hits a use-after-free read.  Call trace:   get_ctl_value+0x63f/0x820 sound/usb/mixer.c:411   get_min_max_with_quirks.isra.0+0x240/0x1f40 sound/usb/mixer.c:1241   mixer_ctl_feature_info+0x26b/0x490 sound/usb/mixer.c:1381   snd_mixer_oss_build_test+0x174/0x3a0 sound/core/oss/mixer_oss.c:887   ...   snd_card_register+0x4ed/0x6d0 sound/core/init.c:923   usb_audio_probe+0x5ef/0x2a90 sound/usb/card.c:1025  Fix by calling snd_ctl_remove() for all mixer controls before freeing id_elems. We save the next pointer first because snd_ctl_remove() frees the current element.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23076",
                                "url": "https://ubuntu.com/security/CVE-2026-23076",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ctxfi: Fix potential OOB access in audio mixer handling  In the audio mixer handling code of ctxfi driver, the conf field is used as a kind of loop index, and it's referred in the index callbacks (amixer_index() and sum_index()).  As spotted recently by fuzzers, the current code causes OOB access at those functions. | UBSAN: array-index-out-of-bounds in /build/reproducible-path/linux-6.17.8/sound/pci/ctxfi/ctamixer.c:347:48 | index 8 is out of range for type 'unsigned char [8]'  After the analysis, the cause was found to be the lack of the proper (re-)initialization of conj field.  This patch addresses those OOB accesses by adding the proper initializations of the loop indices.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71199",
                                "url": "https://ubuntu.com/security/CVE-2025-71199",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc driver  at91_adc_interrupt can call at91_adc_touch_data_handler function to start the work by schedule_work(&st->touch_st.workq).  If we remove the module which will call at91_adc_remove to make cleanup, it will free indio_dev through iio_device_unregister but quite a bit later. While the work mentioned above will be used. The sequence of operations that may lead to a UAF bug is as follows:  CPU0                                      CPU1                                       | at91_adc_workq_handler at91_adc_remove                      | iio_device_unregister(indio_dev)     | //free indio_dev a bit later         |                                      | iio_push_to_buffers(indio_dev)                                      | //use indio_dev  Fix it by ensuring that the work is canceled before proceeding with the cleanup in at91_adc_remove.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23101",
                                "url": "https://ubuntu.com/security/CVE-2026-23101",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  leds: led-class: Only Add LED to leds_list when it is fully ready  Before this change the LED was added to leds_list before led_init_core() gets called adding it the list before led_classdev.set_brightness_work gets initialized.  This leaves a window where led_trigger_register() of a LED's default trigger will call led_trigger_set() which calls led_set_brightness() which in turn will end up queueing the *uninitialized* led_classdev.set_brightness_work.  This race gets hit by the lenovo-thinkpad-t14s EC driver which registers 2 LEDs with a default trigger provided by snd_ctl_led.ko in quick succession. The first led_classdev_register() causes an async modprobe of snd_ctl_led to run and that async modprobe manages to exactly hit the window where the second LED is on the leds_list without led_init_core() being called for it, resulting in:   ------------[ cut here ]------------  WARNING: CPU: 11 PID: 5608 at kernel/workqueue.c:4234 __flush_work+0x344/0x390  Hardware name: LENOVO 21N2S01F0B/21N2S01F0B, BIOS N42ET93W (2.23 ) 09/01/2025  ...  Call trace:   __flush_work+0x344/0x390 (P)   flush_work+0x2c/0x50   led_trigger_set+0x1c8/0x340   led_trigger_register+0x17c/0x1c0   led_trigger_register_simple+0x84/0xe8   snd_ctl_led_init+0x40/0xf88 [snd_ctl_led]   do_one_initcall+0x5c/0x318   do_init_module+0x9c/0x2b8   load_module+0x7e0/0x998  Close the race window by moving the adding of the LED to leds_list to after the led_init_core() call.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23064",
                                "url": "https://ubuntu.com/security/CVE-2026-23064",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: act_ife: avoid possible NULL deref  tcf_ife_encode() must make sure ife_encode() does not return NULL.  syzbot reported:  Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]  RIP: 0010:ife_tlv_meta_encode+0x41/0xa0 net/ife/ife.c:166 CPU: 3 UID: 0 PID: 8990 Comm: syz.0.696 Not tainted syzkaller #0 PREEMPT(full) Call Trace:  <TASK>   ife_encode_meta_u32+0x153/0x180 net/sched/act_ife.c:101   tcf_ife_encode net/sched/act_ife.c:841 [inline]   tcf_ife_act+0x1022/0x1de0 net/sched/act_ife.c:877   tc_act include/net/tc_wrapper.h:130 [inline]   tcf_action_exec+0x1c0/0xa20 net/sched/act_api.c:1152   tcf_exts_exec include/net/pkt_cls.h:349 [inline]   mall_classify+0x1a0/0x2a0 net/sched/cls_matchall.c:42   tc_classify include/net/tc_wrapper.h:197 [inline]   __tcf_classify net/sched/cls_api.c:1764 [inline]   tcf_classify+0x7f2/0x1380 net/sched/cls_api.c:1860   multiq_classify net/sched/sch_multiq.c:39 [inline]   multiq_enqueue+0xe0/0x510 net/sched/sch_multiq.c:66   dev_qdisc_enqueue+0x45/0x250 net/core/dev.c:4147   __dev_xmit_skb net/core/dev.c:4262 [inline]   __dev_queue_xmit+0x2998/0x46c0 net/core/dev.c:4798",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23086",
                                "url": "https://ubuntu.com/security/CVE-2026-23086",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: cap TX credit to local buffer size  The virtio transports derives its TX credit directly from peer_buf_alloc, which is set from the remote endpoint's SO_VM_SOCKETS_BUFFER_SIZE value.  On the host side this means that the amount of data we are willing to queue for a connection is scaled by a guest-chosen buffer size, rather than the host's own vsock configuration. A malicious guest can advertise a large buffer and read slowly, causing the host to allocate a correspondingly large amount of sk_buff memory. The same thing would happen in the guest with a malicious host, since virtio transports share the same code base.  Introduce a small helper, virtio_transport_tx_buf_size(), that returns min(peer_buf_alloc, buf_alloc), and use it wherever we consume peer_buf_alloc.  This ensures the effective TX window is bounded by both the peer's advertised buffer and our own buf_alloc (already clamped to buffer_max_size via SO_VM_SOCKETS_BUFFER_MAX_SIZE), so a remote peer cannot force the other to queue more data than allowed by its own vsock settings.  On an unpatched Ubuntu 22.04 host (~64 GiB RAM), running a PoC with 32 guest vsock connections advertising 2 GiB each and reading slowly drove Slab/SUnreclaim from ~0.5 GiB to ~57 GiB; the system only recovered after killing the QEMU process. That said, if QEMU memory is limited with cgroups, the maximum memory used will be limited.  With this patch applied:    Before:     MemFree:        ~61.6 GiB     Slab:           ~142 MiB     SUnreclaim:     ~117 MiB    After 32 high-credit connections:     MemFree:        ~61.5 GiB     Slab:           ~178 MiB     SUnreclaim:     ~152 MiB  Only ~35 MiB increase in Slab/SUnreclaim, no host OOM, and the guest remains responsive.  Compatibility with non-virtio transports:    - VMCI uses the AF_VSOCK buffer knobs to size its queue pairs per     socket based on the local vsk->buffer_* values; the remote side     cannot enlarge those queues beyond what the local endpoint     configured.    - Hyper-V's vsock transport uses fixed-size VMBus ring buffers and     an MTU bound; there is no peer-controlled credit field comparable     to peer_buf_alloc, and the remote endpoint cannot drive in-flight     kernel memory above those ring sizes.    - The loopback path reuses virtio_transport_common.c, so it     naturally follows the same semantics as the virtio transport.  This change is limited to virtio_transport_common.c and thus affects virtio-vsock, vhost-vsock, and loopback, bringing them in line with the \"remote window intersected with local policy\" behaviour that VMCI and Hyper-V already effectively have.  [Stefano: small adjustments after changing the previous patch] [Stefano: tweak the commit message]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23069",
                                "url": "https://ubuntu.com/security/CVE-2026-23069",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: fix potential underflow in virtio_transport_get_credit()  The credit calculation in virtio_transport_get_credit() uses unsigned arithmetic:    ret = vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt);  If the peer shrinks its advertised buffer (peer_buf_alloc) while bytes are in flight, the subtraction can underflow and produce a large positive value, potentially allowing more data to be queued than the peer can handle.  Reuse virtio_transport_has_space() which already handles this case and add a comment to make it clear why we are doing that.  [Stefano: use virtio_transport_has_space() instead of duplicating the code] [Stefano: tweak the commit message]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23119",
                                "url": "https://ubuntu.com/security/CVE-2026-23119",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: provide a net pointer to __skb_flow_dissect()  After 3cbf4ffba5ee (\"net: plumb network namespace into __skb_flow_dissect\") we have to provide a net pointer to __skb_flow_dissect(), either via skb->dev, skb->sk, or a user provided pointer.  In the following case, syzbot was able to cook a bare skb.  WARNING: net/core/flow_dissector.c:1131 at __skb_flow_dissect+0xb57/0x68b0 net/core/flow_dissector.c:1131, CPU#1: syz.2.1418/11053 Call Trace:  <TASK>   bond_flow_dissect drivers/net/bonding/bond_main.c:4093 [inline]   __bond_xmit_hash+0x2d7/0xba0 drivers/net/bonding/bond_main.c:4157   bond_xmit_hash_xdp drivers/net/bonding/bond_main.c:4208 [inline]   bond_xdp_xmit_3ad_xor_slave_get drivers/net/bonding/bond_main.c:5139 [inline]   bond_xdp_get_xmit_slave+0x1fd/0x710 drivers/net/bonding/bond_main.c:5515   xdp_master_redirect+0x13f/0x2c0 net/core/filter.c:4388   bpf_prog_run_xdp include/net/xdp.h:700 [inline]   bpf_test_run+0x6b2/0x7d0 net/bpf/test_run.c:421   bpf_prog_test_run_xdp+0x795/0x10e0 net/bpf/test_run.c:1390   bpf_prog_test_run+0x2c7/0x340 kernel/bpf/syscall.c:4703   __sys_bpf+0x562/0x860 kernel/bpf/syscall.c:6182   __do_sys_bpf kernel/bpf/syscall.c:6274 [inline]   __se_sys_bpf kernel/bpf/syscall.c:6272 [inline]   __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:6272   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xec/0xf80 arch/x86/entry/syscall_64.c:94",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23084",
                                "url": "https://ubuntu.com/security/CVE-2026-23084",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list  When the parameter pmac_id_valid argument of be_cmd_get_mac_from_list() is set to false, the driver may request the PMAC_ID from the firmware of the network card, and this function will store that PMAC_ID at the provided address pmac_id. This is the contract of this function.  However, there is a location within the driver where both pmac_id_valid == false and pmac_id == NULL are being passed. This could result in dereferencing a NULL pointer.  To resolve this issue, it is necessary to pass the address of a stub variable to the function.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23124",
                                "url": "https://ubuntu.com/security/CVE-2026-23124",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: annotate data-race in ndisc_router_discovery()  syzbot found that ndisc_router_discovery() could read and write in6_dev->ra_mtu without holding a lock [1]  This looks fine, IFLA_INET6_RA_MTU is best effort.  Add READ_ONCE()/WRITE_ONCE() to document the race.  Note that we might also reject illegal MTU values (mtu < IPV6_MIN_MTU || mtu > skb->dev->mtu) in a future patch.  [1] BUG: KCSAN: data-race in ndisc_router_discovery / ndisc_router_discovery  read to 0xffff888119809c20 of 4 bytes by task 25817 on cpu 1:   ndisc_router_discovery+0x151d/0x1c90 net/ipv6/ndisc.c:1558   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  write to 0xffff888119809c20 of 4 bytes by task 25816 on cpu 0:   ndisc_router_discovery+0x155a/0x1c90 net/ipv6/ndisc.c:1559   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  value changed: 0x00000000 -> 0xe5400659",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23121",
                                "url": "https://ubuntu.com/security/CVE-2026-23121",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mISDN: annotate data-race around dev->work  dev->work can re read locklessly in mISDN_read() and mISDN_poll(). Add READ_ONCE()/WRITE_ONCE() annotations.  BUG: KCSAN: data-race in mISDN_ioctl / mISDN_read  write to 0xffff88812d848280 of 4 bytes by task 10864 on cpu 1:   misdn_add_timer drivers/isdn/mISDN/timerdev.c:175 [inline]   mISDN_ioctl+0x2fb/0x550 drivers/isdn/mISDN/timerdev.c:233   vfs_ioctl fs/ioctl.c:51 [inline]   __do_sys_ioctl fs/ioctl.c:597 [inline]   __se_sys_ioctl+0xce/0x140 fs/ioctl.c:583   __x64_sys_ioctl+0x43/0x50 fs/ioctl.c:583   x64_sys_call+0x14b0/0x3000 arch/x86/include/generated/asm/syscalls_64.h:17   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88812d848280 of 4 bytes by task 10857 on cpu 0:   mISDN_read+0x1f2/0x470 drivers/isdn/mISDN/timerdev.c:112   do_loop_readv_writev fs/read_write.c:847 [inline]   vfs_readv+0x3fb/0x690 fs/read_write.c:1020   do_readv+0xe7/0x210 fs/read_write.c:1080   __do_sys_readv fs/read_write.c:1165 [inline]   __se_sys_readv fs/read_write.c:1162 [inline]   __x64_sys_readv+0x45/0x50 fs/read_write.c:1162   x64_sys_call+0x2831/0x3000 arch/x86/include/generated/asm/syscalls_64.h:20   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  value changed: 0x00000000 -> 0x00000001",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23126",
                                "url": "https://ubuntu.com/security/CVE-2026-23126",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netdevsim: fix a race issue related to the operation on bpf_bound_progs list  The netdevsim driver lacks a protection mechanism for operations on the bpf_bound_progs list. When the nsim_bpf_create_prog() performs list_add_tail, it is possible that nsim_bpf_destroy_prog() is simultaneously performs list_del. Concurrent operations on the list may lead to list corruption and trigger a kernel crash as follows:  [  417.290971] kernel BUG at lib/list_debug.c:62! [  417.290983] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI [  417.290992] CPU: 10 PID: 168 Comm: kworker/10:1 Kdump: loaded Not tainted 6.19.0-rc5 #1 [  417.291003] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [  417.291007] Workqueue: events bpf_prog_free_deferred [  417.291021] RIP: 0010:__list_del_entry_valid_or_report+0xa7/0xc0 [  417.291034] Code: a8 ff 0f 0b 48 89 fe 48 89 ca 48 c7 c7 48 a1 eb ae e8 ed fb a8 ff 0f 0b 48 89 fe 48 89 c2 48 c7 c7 80 a1 eb ae e8 d9 fb a8 ff <0f> 0b 48 89 d1 48 c7 c7 d0 a1 eb ae 48 89 f2 48 89 c6 e8 c2 fb a8 [  417.291040] RSP: 0018:ffffb16a40807df8 EFLAGS: 00010246 [  417.291046] RAX: 000000000000006d RBX: ffff8e589866f500 RCX: 0000000000000000 [  417.291051] RDX: 0000000000000000 RSI: ffff8e59f7b23180 RDI: ffff8e59f7b23180 [  417.291055] RBP: ffffb16a412c9000 R08: 0000000000000000 R09: 0000000000000003 [  417.291059] R10: ffffb16a40807c80 R11: ffffffffaf9edce8 R12: ffff8e594427ac20 [  417.291063] R13: ffff8e59f7b44780 R14: ffff8e58800b7a05 R15: 0000000000000000 [  417.291074] FS:  0000000000000000(0000) GS:ffff8e59f7b00000(0000) knlGS:0000000000000000 [  417.291079] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [  417.291083] CR2: 00007fc4083efe08 CR3: 00000001c3626006 CR4: 0000000000770ee0 [  417.291088] PKRU: 55555554 [  417.291091] Call Trace: [  417.291096]  <TASK> [  417.291103]  nsim_bpf_destroy_prog+0x31/0x80 [netdevsim] [  417.291154]  __bpf_prog_offload_destroy+0x2a/0x80 [  417.291163]  bpf_prog_dev_bound_destroy+0x6f/0xb0 [  417.291171]  bpf_prog_free_deferred+0x18e/0x1a0 [  417.291178]  process_one_work+0x18a/0x3a0 [  417.291188]  worker_thread+0x27b/0x3a0 [  417.291197]  ? __pfx_worker_thread+0x10/0x10 [  417.291207]  kthread+0xe5/0x120 [  417.291214]  ? __pfx_kthread+0x10/0x10 [  417.291221]  ret_from_fork+0x31/0x50 [  417.291230]  ? __pfx_kthread+0x10/0x10 [  417.291236]  ret_from_fork_asm+0x1a/0x30 [  417.291246]  </TASK>  Add a mutex lock, to prevent simultaneous addition and deletion operations on the list.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23059",
                                "url": "https://ubuntu.com/security/CVE-2026-23059",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Sanitize payload size to prevent member overflow  In qla27xx_copy_fpin_pkt() and qla27xx_copy_multiple_pkt(), the frame_size reported by firmware is used to calculate the copy length into item->iocb. However, the iocb member is defined as a fixed-size 64-byte array within struct purex_item.  If the reported frame_size exceeds 64 bytes, subsequent memcpy calls will overflow the iocb member boundary. While extra memory might be allocated, this cross-member write is unsafe and triggers warnings under CONFIG_FORTIFY_SOURCE.  Fix this by capping total_bytes to the size of the iocb member (64 bytes) before allocation and copying. This ensures all copies remain within the bounds of the destination structure member.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23110",
                                "url": "https://ubuntu.com/security/CVE-2026-23110",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: core: Wake up the error handler when final completions race against each other  The fragile ordering between marking commands completed or failed so that the error handler only wakes when the last running command completes or times out has race conditions. These race conditions can cause the SCSI layer to fail to wake the error handler, leaving I/O through the SCSI host stuck as the error state cannot advance.  First, there is an memory ordering issue within scsi_dec_host_busy(). The write which clears SCMD_STATE_INFLIGHT may be reordered with reads counting in scsi_host_busy(). While the local CPU will see its own write, reordering can allow other CPUs in scsi_dec_host_busy() or scsi_eh_inc_host_failed() to see a raised busy count, causing no CPU to see a host busy equal to the host_failed count.  This race condition can be prevented with a memory barrier on the error path to force the write to be visible before counting host busy commands.  Second, there is a general ordering issue with scsi_eh_inc_host_failed(). By counting busy commands before incrementing host_failed, it can race with a final command in scsi_dec_host_busy(), such that scsi_dec_host_busy() does not see host_failed incremented but scsi_eh_inc_host_failed() counts busy commands before SCMD_STATE_INFLIGHT is cleared by scsi_dec_host_busy(), resulting in neither waking the error handler task.  This needs the call to scsi_host_busy() to be moved after host_failed is incremented to close the race condition.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23071",
                                "url": "https://ubuntu.com/security/CVE-2026-23071",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: Fix race condition in hwspinlock irqsave routine  Previously, the address of the shared member '&map->spinlock_flags' was passed directly to 'hwspin_lock_timeout_irqsave'. This creates a race condition where multiple contexts contending for the lock could overwrite the shared flags variable, potentially corrupting the state for the current lock owner.  Fix this by using a local stack variable 'flags' to store the IRQ state temporarily.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23068",
                                "url": "https://ubuntu.com/security/CVE-2026-23068",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: spi-sprd-adi: Fix double free in probe error path  The driver currently uses spi_alloc_host() to allocate the controller but registers it using devm_spi_register_controller().  If devm_register_restart_handler() fails, the code jumps to the put_ctlr label and calls spi_controller_put(). However, since the controller was registered via a devm function, the device core will automatically call spi_controller_put() again when the probe fails. This results in a double-free of the spi_controller structure.  Fix this by switching to devm_spi_alloc_host() and removing the manual spi_controller_put() call.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23123",
                                "url": "https://ubuntu.com/security/CVE-2026-23123",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  interconnect: debugfs: initialize src_node and dst_node to empty strings  The debugfs_create_str() API assumes that the string pointer is either NULL or points to valid kmalloc() memory. Leaving the pointer uninitialized can cause problems.  Initialize src_node and dst_node to empty strings before creating the debugfs entries to guarantee that reads and writes are safe.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71198",
                                "url": "https://ubuntu.com/security/CVE-2025-71198",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event detection  The st_lsm6dsx_acc_channels array of struct iio_chan_spec has a non-NULL event_spec field, indicating support for IIO events. However, event detection is not supported for all sensors, and if userspace tries to configure accelerometer wakeup events on a sensor device that does not support them (e.g. LSM6DS0), st_lsm6dsx_write_event() dereferences a NULL pointer when trying to write to the wakeup register. Define an additional struct iio_chan_spec array whose members have a NULL event_spec field, and use this array instead of st_lsm6dsx_acc_channels for sensors without event detection capability.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23113",
                                "url": "https://ubuntu.com/security/CVE-2026-23113",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop  Currently this is checked before running the pending work. Normally this is quite fine, as work items either end up blocking (which will create a new worker for other items), or they complete fairly quickly. But syzbot reports an issue where io-wq takes seemingly forever to exit, and with a bit of debugging, this turns out to be because it queues a bunch of big (2GB - 4096b) reads with a /dev/msr* file. Since this file type doesn't support ->read_iter(), loop_rw_iter() ends up handling them. Each read returns 16MB of data read, which takes 20 (!!) seconds. With a bunch of these pending, processing the whole chain can take a long time. Easily longer than the syzbot uninterruptible sleep timeout of 140 seconds. This then triggers a complaint off the io-wq exit path:  INFO: task syz.4.135:6326 blocked for more than 143 seconds.       Not tainted syzkaller #0       Blocked by coredump. \"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\" disables this message. task:syz.4.135       state:D stack:26824 pid:6326  tgid:6324  ppid:5957  task_flags:0x400548 flags:0x00080000 Call Trace:  <TASK>  context_switch kernel/sched/core.c:5256 [inline]  __schedule+0x1139/0x6150 kernel/sched/core.c:6863  __schedule_loop kernel/sched/core.c:6945 [inline]  schedule+0xe7/0x3a0 kernel/sched/core.c:6960  schedule_timeout+0x257/0x290 kernel/time/sleep_timeout.c:75  do_wait_for_common kernel/sched/completion.c:100 [inline]  __wait_for_common+0x2fc/0x4e0 kernel/sched/completion.c:121  io_wq_exit_workers io_uring/io-wq.c:1328 [inline]  io_wq_put_and_exit+0x271/0x8a0 io_uring/io-wq.c:1356  io_uring_clean_tctx+0x10d/0x190 io_uring/tctx.c:203  io_uring_cancel_generic+0x69c/0x9a0 io_uring/cancel.c:651  io_uring_files_cancel include/linux/io_uring.h:19 [inline]  do_exit+0x2ce/0x2bd0 kernel/exit.c:911  do_group_exit+0xd3/0x2a0 kernel/exit.c:1112  get_signal+0x2671/0x26d0 kernel/signal.c:3034  arch_do_signal_or_restart+0x8f/0x7e0 arch/x86/kernel/signal.c:337  __exit_to_user_mode_loop kernel/entry/common.c:41 [inline]  exit_to_user_mode_loop+0x8c/0x540 kernel/entry/common.c:75  __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]  syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]  syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]  syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]  do_syscall_64+0x4ee/0xf80 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa02738f749 RSP: 002b:00007fa0281ae0e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca RAX: fffffffffffffe00 RBX: 00007fa0275e6098 RCX: 00007fa02738f749 RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007fa0275e6098 RBP: 00007fa0275e6090 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fa0275e6128 R14: 00007fff14e4fcb0 R15: 00007fff14e4fd98  There's really nothing wrong here, outside of processing these reads will take a LONG time. However, we can speed up the exit by checking the IO_WQ_BIT_EXIT inside the io_worker_handle_work() loop, as syzbot will exit the ring after queueing up all of these reads. Then once the first item is processed, io-wq will simply cancel the rest. That should avoid syzbot running into this complaint again.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23062",
                                "url": "https://ubuntu.com/security/CVE-2026-23062",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro  The GET_INSTANCE_ID macro that caused a kernel panic when accessing sysfs attributes:  1. Off-by-one error: The loop condition used '<=' instead of '<',    causing access beyond array bounds. Since array indices are 0-based    and go from 0 to instances_count-1, the loop should use '<'.  2. Missing NULL check: The code dereferenced attr_name_kobj->name    without checking if attr_name_kobj was NULL, causing a null pointer    dereference in min_length_show() and other attribute show functions.  The panic occurred when fwupd tried to read BIOS configuration attributes:    Oops: general protection fault [#1] SMP KASAN NOPTI   KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]   RIP: 0010:min_length_show+0xcf/0x1d0 [hp_bioscfg]  Add a NULL check for attr_name_kobj before dereferencing and corrects the loop boundary to match the pattern used elsewhere in the driver.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23131",
                                "url": "https://ubuntu.com/security/CVE-2026-23131",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kobject warnings for empty attribute names  The hp-bioscfg driver attempts to register kobjects with empty names when the HP BIOS returns attributes with empty name strings. This causes multiple kernel warnings:    kobject: (00000000135fb5e6): attempted to be registered with empty name!   WARNING: CPU: 14 PID: 3336 at lib/kobject.c:219 kobject_add_internal+0x2eb/0x310  Add validation in hp_init_bios_buffer_attribute() to check if the attribute name is empty after parsing it from the WMI buffer. If empty, log a debug message and skip registration of that attribute, allowing the module to continue processing other valid attributes.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23087",
                                "url": "https://ubuntu.com/security/CVE-2026-23087",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: xen: scsiback: Fix potential memory leak in scsiback_remove()  Memory allocated for struct vscsiblk_info in scsiback_probe() is not freed in scsiback_remove() leading to potential memory leaks on remove, as well as in the scsiback_probe() error paths. Fix that by freeing it in scsiback_remove().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71197",
                                "url": "https://ubuntu.com/security/CVE-2025-71197",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  w1: therm: Fix off-by-one buffer overflow in alarms_store  The sysfs buffer passed to alarms_store() is allocated with 'size + 1' bytes and a NUL terminator is appended. However, the 'size' argument does not account for this extra byte. The original code then allocated 'size' bytes and used strcpy() to copy 'buf', which always writes one byte past the allocated buffer since strcpy() copies until the NUL terminator at index 'size'.  Fix this by parsing the 'buf' parameter directly using simple_strtoll() without allocating any intermediate memory or string copying. This removes the overflow while simplifying the code.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23105",
                                "url": "https://ubuntu.com/security/CVE-2026-23105",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag  This is more of a preventive patch to make the code more consistent and to prevent possible exploits that employ child qlen manipulations on qfq. use cl_is_active instead of relying on the child qdisc's qlen to determine class activation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23103",
                                "url": "https://ubuntu.com/security/CVE-2026-23103",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvlan: Make the addrs_lock be per port  Make the addrs_lock be per port, not per ipvlan dev.  Initial code seems to be written in the assumption, that any address change must occur under RTNL. But it is not so for the case of IPv6. So  1) Introduce per-port addrs_lock.  2) It was needed to fix places where it was forgotten to take lock (ipvlan_open/ipvlan_close)  This appears to be a very minor problem though. Since it's highly unlikely that ipvlan_add_addr() will be called on 2 CPU simultaneously. But nevertheless, this could cause:  1) False-negative of ipvlan_addr_busy(): one interface iterated through all port->ipvlans + ipvlan->addrs under some ipvlan spinlock, and another added IP under its own lock. Though this is only possible for IPv6, since looks like only ipvlan_addr6_event() can be called without rtnl_lock.  2) Race since ipvlan_ht_addr_add(port) is called under different ipvlan->addrs_lock locks  This should not affect performance, since add/remove IP is a rare situation and spinlock is not taken on fast paths.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23120",
                                "url": "https://ubuntu.com/security/CVE-2026-23120",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  l2tp: avoid one data-race in l2tp_tunnel_del_work()  We should read sk->sk_socket only when dealing with kernel sockets.  syzbot reported the following data-race:  BUG: KCSAN: data-race in l2tp_tunnel_del_work / sk_common_release  write to 0xffff88811c182b20 of 8 bytes by task 5365 on cpu 0:   sk_set_socket include/net/sock.h:2092 [inline]   sock_orphan include/net/sock.h:2118 [inline]   sk_common_release+0xae/0x230 net/core/sock.c:4003   udp_lib_close+0x15/0x20 include/net/udp.h:325   inet_release+0xce/0xf0 net/ipv4/af_inet.c:437   __sock_release net/socket.c:662 [inline]   sock_close+0x6b/0x150 net/socket.c:1455   __fput+0x29b/0x650 fs/file_table.c:468   ____fput+0x1c/0x30 fs/file_table.c:496   task_work_run+0x131/0x1a0 kernel/task_work.c:233   resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]   __exit_to_user_mode_loop kernel/entry/common.c:44 [inline]   exit_to_user_mode_loop+0x1fe/0x740 kernel/entry/common.c:75   __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]   syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]   syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]   syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]   do_syscall_64+0x1e1/0x2b0 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88811c182b20 of 8 bytes by task 827 on cpu 1:   l2tp_tunnel_del_work+0x2f/0x1a0 net/l2tp/l2tp_core.c:1418   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0x4ce/0x9d0 kernel/workqueue.c:3340   worker_thread+0x582/0x770 kernel/workqueue.c:3421   kthread+0x489/0x510 kernel/kthread.c:463   ret_from_fork+0x149/0x290 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246  value changed: 0xffff88811b818000 -> 0x0000000000000000",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23083",
                                "url": "https://ubuntu.com/security/CVE-2026-23083",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fou: Don't allow 0 for FOU_ATTR_IPPROTO.  fou_udp_recv() has the same problem mentioned in the previous patch.  If FOU_ATTR_IPPROTO is set to 0, skb is not freed by fou_udp_recv() nor \"resubmit\"-ted in ip_protocol_deliver_rcu().  Let's forbid 0 for FOU_ATTR_IPPROTO.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23095",
                                "url": "https://ubuntu.com/security/CVE-2026-23095",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gue: Fix skb memleak with inner IP protocol 0.  syzbot reported skb memleak below. [0]  The repro generated a GUE packet with its inner protocol 0.  gue_udp_recv() returns -guehdr->proto_ctype for \"resubmit\" in ip_protocol_deliver_rcu(), but this only works with non-zero protocol number.  Let's drop such packets.  Note that 0 is a valid number (IPv6 Hop-by-Hop Option).  I think it is not practical to encap HOPOPT in GUE, so once someone starts to complain, we could pass down a resubmit flag pointer to distinguish two zeros from the upper layer:    * no error   * resubmit HOPOPT  [0] BUG: memory leak unreferenced object 0xffff888109695a00 (size 240):   comm \"syz.0.17\", pid 6088, jiffies 4294943096   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 40 c2 10 81 88 ff ff 00 00 00 00 00 00 00 00  .@..............   backtrace (crc a84b336f):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4958 [inline]     slab_alloc_node mm/slub.c:5263 [inline]     kmem_cache_alloc_noprof+0x3b4/0x590 mm/slub.c:5270     __build_skb+0x23/0x60 net/core/skbuff.c:474     build_skb+0x20/0x190 net/core/skbuff.c:490     __tun_build_skb drivers/net/tun.c:1541 [inline]     tun_build_skb+0x4a1/0xa40 drivers/net/tun.c:1636     tun_get_user+0xc12/0x2030 drivers/net/tun.c:1770     tun_chr_write_iter+0x71/0x120 drivers/net/tun.c:1999     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0xa7/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xf80 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23125",
                                "url": "https://ubuntu.com/security/CVE-2026-23125",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT  A null-ptr-deref was reported in the SCTP transmit path when SCTP-AUTH key initialization fails:    ==================================================================   KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]   CPU: 0 PID: 16 Comm: ksoftirqd/0 Tainted: G W 6.6.0 #2   RIP: 0010:sctp_packet_bundle_auth net/sctp/output.c:264 [inline]   RIP: 0010:sctp_packet_append_chunk+0xb36/0x1260 net/sctp/output.c:401   Call Trace:    sctp_packet_transmit_chunk+0x31/0x250 net/sctp/output.c:189   sctp_outq_flush_data+0xa29/0x26d0 net/sctp/outqueue.c:1111   sctp_outq_flush+0xc80/0x1240 net/sctp/outqueue.c:1217   sctp_cmd_interpreter.isra.0+0x19a5/0x62c0 net/sctp/sm_sideeffect.c:1787   sctp_side_effects net/sctp/sm_sideeffect.c:1198 [inline]   sctp_do_sm+0x1a3/0x670 net/sctp/sm_sideeffect.c:1169   sctp_assoc_bh_rcv+0x33e/0x640 net/sctp/associola.c:1052   sctp_inq_push+0x1dd/0x280 net/sctp/inqueue.c:88   sctp_rcv+0x11ae/0x3100 net/sctp/input.c:243   sctp6_rcv+0x3d/0x60 net/sctp/ipv6.c:1127  The issue is triggered when sctp_auth_asoc_init_active_key() fails in sctp_sf_do_5_1C_ack() while processing an INIT_ACK. In this case, the command sequence is currently:  - SCTP_CMD_PEER_INIT - SCTP_CMD_TIMER_STOP (T1_INIT) - SCTP_CMD_TIMER_START (T1_COOKIE) - SCTP_CMD_NEW_STATE (COOKIE_ECHOED) - SCTP_CMD_ASSOC_SHKEY - SCTP_CMD_GEN_COOKIE_ECHO  If SCTP_CMD_ASSOC_SHKEY fails, asoc->shkey remains NULL, while asoc->peer.auth_capable and asoc->peer.peer_chunks have already been set by SCTP_CMD_PEER_INIT. This allows a DATA chunk with auth = 1 and shkey = NULL to be queued by sctp_datamsg_from_user().  Since command interpretation stops on failure, no COOKIE_ECHO should been sent via SCTP_CMD_GEN_COOKIE_ECHO. However, the T1_COOKIE timer has already been started, and it may enqueue a COOKIE_ECHO into the outqueue later. As a result, the DATA chunk can be transmitted together with the COOKIE_ECHO in sctp_outq_flush_data(), leading to the observed issue.  Similar to the other places where it calls sctp_auth_asoc_init_active_key() right after sctp_process_init(), this patch moves the SCTP_CMD_ASSOC_SHKEY immediately after SCTP_CMD_PEER_INIT, before stopping T1_INIT and starting T1_COOKIE. This ensures that if shared key generation fails, authenticated DATA cannot be sent. It also allows the T1_INIT timer to retransmit INIT, giving the client another chance to process INIT_ACK and retry key setup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23099",
                                "url": "https://ubuntu.com/security/CVE-2026-23099",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: limit BOND_MODE_8023AD to Ethernet devices  BOND_MODE_8023AD makes sense for ARPHRD_ETHER only.  syzbot reported:   BUG: KASAN: global-out-of-bounds in __hw_addr_create net/core/dev_addr_lists.c:63 [inline]  BUG: KASAN: global-out-of-bounds in __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118 Read of size 16 at addr ffffffff8bf94040 by task syz.1.3580/19497  CPU: 1 UID: 0 PID: 19497 Comm: syz.1.3580 Tainted: G             L     syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>   dump_stack_lvl+0xe8/0x150 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  check_region_inline mm/kasan/generic.c:-1 [inline]   kasan_check_range+0x2b0/0x2c0 mm/kasan/generic.c:200   __asan_memcpy+0x29/0x70 mm/kasan/shadow.c:105   __hw_addr_create net/core/dev_addr_lists.c:63 [inline]   __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118   __dev_mc_add net/core/dev_addr_lists.c:868 [inline]   dev_mc_add+0xa1/0x120 net/core/dev_addr_lists.c:886   bond_enslave+0x2b8b/0x3ac0 drivers/net/bonding/bond_main.c:2180   do_set_master+0x533/0x6d0 net/core/rtnetlink.c:2963   do_setlink+0xcf0/0x41c0 net/core/rtnetlink.c:3165   rtnl_changelink net/core/rtnetlink.c:3776 [inline]   __rtnl_newlink net/core/rtnetlink.c:3935 [inline]   rtnl_newlink+0x161c/0x1c90 net/core/rtnetlink.c:4072   rtnetlink_rcv_msg+0x7cf/0xb70 net/core/rtnetlink.c:6958   netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2550   netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline]   netlink_unicast+0x82f/0x9e0 net/netlink/af_netlink.c:1344   netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1894   sock_sendmsg_nosec net/socket.c:727 [inline]   __sock_sendmsg+0x21c/0x270 net/socket.c:742   ____sys_sendmsg+0x505/0x820 net/socket.c:2592   ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2646   __sys_sendmsg+0x164/0x220 net/socket.c:2678   do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]   __do_fast_syscall_32+0x1dc/0x560 arch/x86/entry/syscall_32.c:307   do_fast_syscall_32+0x34/0x80 arch/x86/entry/syscall_32.c:332  entry_SYSENTER_compat_after_hwframe+0x84/0x8e  </TASK>  The buggy address belongs to the variable:  lacpdu_mcast_addr+0x0/0x40",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71194",
                                "url": "https://ubuntu.com/security/CVE-2025-71194",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix deadlock in wait_current_trans() due to ignored transaction type  When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans().  This can lead to a deadlock scenario involving two transactions and pending ordered extents:    1. Transaction A is in TRANS_STATE_COMMIT_DOING state    2. A worker processing an ordered extent calls start_transaction()      with TRANS_JOIN    3. join_transaction() returns -EBUSY because Transaction A is in      TRANS_STATE_COMMIT_DOING    4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes    5. A new Transaction B is created (TRANS_STATE_RUNNING)    6. The ordered extent from step 2 is added to Transaction B's      pending ordered extents    7. Transaction B immediately starts commit by another task and      enters TRANS_STATE_COMMIT_START    8. The worker finally reaches wait_current_trans(), sees Transaction B      in TRANS_STATE_COMMIT_START (a blocked state), and waits      unconditionally    9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START      according to btrfs_blocked_trans_types[]    10. Transaction B is waiting for pending ordered extents to complete    11. Deadlock: Transaction B waits for ordered extent, ordered extent       waits for Transaction B  This can be illustrated by the following call stacks:   CPU0                              CPU1                                     btrfs_finish_ordered_io()                                       start_transaction(TRANS_JOIN)                                         join_transaction()                                           # -EBUSY (Transaction A is                                           # TRANS_STATE_COMMIT_DOING)   # Transaction A completes   # Transaction B created   # ordered extent added to   # Transaction B's pending list   btrfs_commit_transaction()     # Transaction B enters     # TRANS_STATE_COMMIT_START     # waiting for pending ordered     # extents                                         wait_current_trans()                                           # waits for Transaction B                                           # (should not wait!)  Task bstore_kv_sync in btrfs_commit_transaction waiting for ordered extents:    __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   btrfs_commit_transaction+0xbf7/0xda0 [btrfs]   btrfs_sync_file+0x342/0x4d0 [btrfs]   __x64_sys_fdatasync+0x4b/0x80   do_syscall_64+0x33/0x40   entry_SYSCALL_64_after_hwframe+0x44/0xa9  Task kworker in wait_current_trans waiting for transaction commit:    Workqueue: btrfs-syno_nocow btrfs_work_helper [btrfs]   __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   wait_current_trans+0xb0/0x110 [btrfs]   start_transaction+0x346/0x5b0 [btrfs]   btrfs_finish_ordered_io.isra.0+0x49b/0x9c0 [btrfs]   btrfs_work_helper+0xe8/0x350 [btrfs]   process_one_work+0x1d3/0x3c0   worker_thread+0x4d/0x3e0   kthread+0x12d/0x150   ret_from_fork+0x1f/0x30  Fix this by passing the transaction type to wait_current_trans() and checking btrfs_blocked_trans_types[cur_trans->state] against the given type before deciding to wait. This ensures that transaction types which are allowed to join during certain blocked states will not unnecessarily wait and cause deadlocks.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71185",
                                "url": "https://ubuntu.com/security/CVE-2025-71185",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation  Make sure to drop the reference taken when looking up the crossbar platform device during am335x route allocation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23026",
                                "url": "https://ubuntu.com/security/CVE-2026-23026",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config()  Fix a memory leak in gpi_peripheral_config() where the original memory pointed to by gchan->config could be lost if krealloc() fails.  The issue occurs when: 1. gchan->config points to previously allocated memory 2. krealloc() fails and returns NULL 3. The function directly assigns NULL to gchan->config, losing the    reference to the original memory 4. The original memory becomes unreachable and cannot be freed  Fix this by using a temporary variable to hold the krealloc() result and only updating gchan->config when the allocation succeeds.  Found via static analysis and code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71188",
                                "url": "https://ubuntu.com/security/CVE-2025-71188",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: lpc18xx-dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71163",
                                "url": "https://ubuntu.com/security/CVE-2025-71163",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: idxd: fix device leaks on compat bind and unbind  Make sure to drop the reference taken when looking up the idxd device as part of the compat bind and unbind sysfs interface.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71189",
                                "url": "https://ubuntu.com/security/CVE-2025-71189",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: dw: dmamux: fix OF node leak on route allocation failure  Make sure to drop the reference taken to the DMA master OF node also on late route allocation failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71190",
                                "url": "https://ubuntu.com/security/CVE-2025-71190",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: bcm-sba-raid: fix device leak on probe  Make sure to drop the reference taken when looking up the mailbox device during probe on probe failures and on driver unbind.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71191",
                                "url": "https://ubuntu.com/security/CVE-2025-71191",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: at_hdmac: fix device leak on of_dma_xlate()  Make sure to drop the reference taken when looking up the DMA platform device during of_dma_xlate() when releasing channel resources.  Note that commit 3832b78b3ec2 (\"dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()\") fixed the leak in a couple of error paths but the reference is still leaking on successful allocation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23049",
                                "url": "https://ubuntu.com/security/CVE-2026-23049",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel  The connector type for the DataImage SCF0700C48GGU18 panel is missing and devm_drm_panel_bridge_add() requires connector type to be set. This leads to a warning and a backtrace in the kernel log and panel does not work: \" WARNING: CPU: 3 PID: 38 at drivers/gpu/drm/bridge/panel.c:379 devm_drm_of_get_bridge+0xac/0xb8 \" The warning is triggered by a check for valid connector type in devm_drm_panel_bridge_add(). If there is no valid connector type set for a panel, the warning is printed and panel is not added. Fill in the missing connector type to fix the warning and make the panel operational once again.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23144",
                                "url": "https://ubuntu.com/security/CVE-2026-23144",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure  When a context DAMON sysfs directory setup is failed after setup of attrs/ directory, subdirectories of attrs/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23145",
                                "url": "https://ubuntu.com/security/CVE-2026-23145",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref  The error branch for ext4_xattr_inode_update_ref forget to release the refcount for iloc.bh. Find this when review code.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22997",
                                "url": "https://ubuntu.com/security/CVE-2026-22997",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session upon receiving the second rts  Since j1939_session_deactivate_activate_next() in j1939_tp_rxtimer() is called only when the timer is enabled, we need to call j1939_session_deactivate_activate_next() if we cancelled the timer. Otherwise, refcount for j1939_session leaks, which will later appear as  | unregister_netdevice: waiting for vcan0 to become free. Usage count = 2.  problem.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23031",
                                "url": "https://ubuntu.com/security/CVE-2026-23031",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak  In gs_can_open(), the URBs for USB-in transfers are allocated, added to the parent->rx_submitted anchor and submitted. In the complete callback gs_usb_receive_bulk_callback(), the URB is processed and resubmitted. In gs_can_close() the URBs are freed by calling usb_kill_anchored_urbs(parent->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in gs_can_close().  Fix the memory leak by anchoring the URB in the gs_usb_receive_bulk_callback() to the parent->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23032",
                                "url": "https://ubuntu.com/security/CVE-2026-23032",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  null_blk: fix kmemleak by releasing references to fault configfs items  When CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is enabled, the null-blk driver sets up fault injection support by creating the timeout_inject, requeue_inject, and init_hctx_fault_inject configfs items as children of the top-level nullbX configfs group.  However, when the nullbX device is removed, the references taken to these fault-config configfs items are not released. As a result, kmemleak reports a memory leak, for example:  unreferenced object 0xc00000021ff25c40 (size 32):   comm \"mkdir\", pid 10665, jiffies 4322121578   hex dump (first 32 bytes):     69 6e 69 74 5f 68 63 74 78 5f 66 61 75 6c 74 5f  init_hctx_fault_     69 6e 6a 65 63 74 00 88 00 00 00 00 00 00 00 00  inject..........   backtrace (crc 1a018c86):     __kmalloc_node_track_caller_noprof+0x494/0xbd8     kvasprintf+0x74/0xf4     config_item_set_name+0xf0/0x104     config_group_init_type_name+0x48/0xfc     fault_config_init+0x48/0xf0     0xc0080000180559e4     configfs_mkdir+0x304/0x814     vfs_mkdir+0x49c/0x604     do_mkdirat+0x314/0x3d0     sys_mkdir+0xa0/0xd8     system_call_exception+0x1b0/0x4f0     system_call_vectored_common+0x15c/0x2ec  Fix this by explicitly releasing the references to the fault-config configfs items when dropping the reference to the top-level nullbX configfs group.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23033",
                                "url": "https://ubuntu.com/security/CVE-2026-23033",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: omap-dma: fix dma_pool resource leak in error paths  The dma_pool created by dma_pool_create() is not destroyed when dma_async_device_register() or of_dma_controller_register() fails, causing a resource leak in the probe error paths.  Add dma_pool_destroy() in both error paths to properly release the allocated dma_pool resource.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71196",
                                "url": "https://ubuntu.com/security/CVE-2025-71196",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: stm32-usphyc: Fix off by one in probe()  The \"index\" variable is used as an index into the usbphyc->phys[] array which has usbphyc->nphys elements.  So if it is equal to usbphyc->nphys then it is one element out of bounds.  The \"index\" comes from the device tree so it's data that we trust and it's unlikely to be wrong, however it's obviously still worth fixing the bug.  Change the > to >=.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71193",
                                "url": "https://ubuntu.com/security/CVE-2025-71193",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: qcom-qusb2: Fix NULL pointer dereference on early suspend  Enabling runtime PM before attaching the QPHY instance as driver data can lead to a NULL pointer dereference in runtime PM callbacks that expect valid driver data. There is a small window where the suspend callback may run after PM runtime enabling and before runtime forbid. This causes a sporadic crash during boot:  ``` Unable to handle kernel NULL pointer dereference at virtual address 00000000000000a1 [...] CPU: 0 UID: 0 PID: 11 Comm: kworker/0:1 Not tainted 6.16.7+ #116 PREEMPT Workqueue: pm pm_runtime_work pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : qusb2_phy_runtime_suspend+0x14/0x1e0 [phy_qcom_qusb2] lr : pm_generic_runtime_suspend+0x2c/0x44 [...] ```  Attach the QPHY instance as driver data before enabling runtime PM to prevent NULL pointer dereference in runtime PM callbacks.  Reorder pm_runtime_enable() and pm_runtime_forbid() to prevent a short window where an unnecessary runtime suspend can occur.  Use the devres-managed version to ensure PM runtime is symmetrically disabled during driver removal for proper cleanup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71162",
                                "url": "https://ubuntu.com/security/CVE-2025-71162",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: tegra-adma: Fix use-after-free  A use-after-free bug exists in the Tegra ADMA driver when audio streams are terminated, particularly during XRUN conditions. The issue occurs when the DMA buffer is freed by tegra_adma_terminate_all() before the vchan completion tasklet finishes accessing it.  The race condition follows this sequence:    1. DMA transfer completes, triggering an interrupt that schedules the      completion tasklet (tasklet has not executed yet)   2. Audio playback stops, calling tegra_adma_terminate_all() which      frees the DMA buffer memory via kfree()   3. The scheduled tasklet finally executes, calling vchan_complete()      which attempts to access the already-freed memory  Since tasklets can execute at any time after being scheduled, there is no guarantee that the buffer will remain valid when vchan_complete() runs.  Fix this by properly synchronizing the virtual channel completion:  - Calling vchan_terminate_vdesc() in tegra_adma_stop() to mark the    descriptors as terminated instead of freeing the descriptor.  - Add the callback tegra_adma_synchronize() that calls    vchan_synchronize() which kills any pending tasklets and frees any    terminated descriptors.  Crash logs: [  337.427523] BUG: KASAN: use-after-free in vchan_complete+0x124/0x3b0 [  337.427544] Read of size 8 at addr ffff000132055428 by task swapper/0/0  [  337.427562] Call trace: [  337.427564]  dump_backtrace+0x0/0x320 [  337.427571]  show_stack+0x20/0x30 [  337.427575]  dump_stack_lvl+0x68/0x84 [  337.427584]  print_address_description.constprop.0+0x74/0x2b8 [  337.427590]  kasan_report+0x1f4/0x210 [  337.427598]  __asan_load8+0xa0/0xd0 [  337.427603]  vchan_complete+0x124/0x3b0 [  337.427609]  tasklet_action_common.constprop.0+0x190/0x1d0 [  337.427617]  tasklet_action+0x30/0x40 [  337.427623]  __do_softirq+0x1a0/0x5c4 [  337.427628]  irq_exit+0x110/0x140 [  337.427633]  handle_domain_irq+0xa4/0xe0 [  337.427640]  gic_handle_irq+0x64/0x160 [  337.427644]  call_on_irq_stack+0x20/0x4c [  337.427649]  do_interrupt_handler+0x7c/0x90 [  337.427654]  el1_interrupt+0x30/0x80 [  337.427659]  el1h_64_irq_handler+0x18/0x30 [  337.427663]  el1h_64_irq+0x7c/0x80 [  337.427667]  cpuidle_enter_state+0xe4/0x540 [  337.427674]  cpuidle_enter+0x54/0x80 [  337.427679]  do_idle+0x2e0/0x380 [  337.427685]  cpu_startup_entry+0x2c/0x70 [  337.427690]  rest_init+0x114/0x130 [  337.427695]  arch_call_rest_init+0x18/0x24 [  337.427702]  start_kernel+0x380/0x3b4 [  337.427706]  __primary_switched+0xc0/0xc8",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71195",
                                "url": "https://ubuntu.com/security/CVE-2025-71195",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: xilinx: xdma: Fix regmap max_register  The max_register field is assigned the size of the register memory region instead of the offset of the last register. The result is that reading from the regmap via debugfs can cause a segmentation fault:  tail /sys/kernel/debug/regmap/xdma.1.auto/registers Unable to handle kernel paging request at virtual address ffff800082f70000 Mem abort info:   ESR = 0x0000000096000007   EC = 0x25: DABT (current EL), IL = 32 bits   SET = 0, FnV = 0   EA = 0, S1PTW = 0   FSC = 0x07: level 3 translation fault [...] Call trace:  regmap_mmio_read32le+0x10/0x30  _regmap_bus_reg_read+0x74/0xc0  _regmap_read+0x68/0x198  regmap_read+0x54/0x88  regmap_read_debugfs+0x140/0x380  regmap_map_read_file+0x30/0x48  full_proxy_read+0x68/0xc8  vfs_read+0xcc/0x310  ksys_read+0x7c/0x120  __arm64_sys_read+0x24/0x40  invoke_syscall.constprop.0+0x64/0x108  do_el0_svc+0xb0/0xd8  el0_svc+0x38/0x130  el0t_64_sync_handler+0x120/0x138  el0t_64_sync+0x194/0x198 Code: aa1e03e9 d503201f f9400000 8b214000 (b9400000) ---[ end trace 0000000000000000 ]--- note: tail[1217] exited with irqs disabled note: tail[1217] exited with preempt_count 1 Segmentation fault",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23006",
                                "url": "https://ubuntu.com/security/CVE-2026-23006",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: tlv320adcx140: fix null pointer  The \"snd_soc_component\" in \"adcx140_priv\" was only used once but never set. It was only used for reaching \"dev\" which is already present in \"adcx140_priv\".",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22999",
                                "url": "https://ubuntu.com/security/CVE-2026-22999",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: do not free existing class in qfq_change_class()  Fixes qfq_change_class() error case.  cl->qdisc and cl should only be freed if a new class and qdisc were allocated, or we risk various UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23010",
                                "url": "https://ubuntu.com/security/CVE-2026-23010",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix use-after-free in inet6_addr_del().  syzbot reported use-after-free of inet6_ifaddr in inet6_addr_del(). [0]  The cited commit accidentally moved ipv6_del_addr() for mngtmpaddr before reading its ifp->flags for temporary addresses in inet6_addr_del().  Let's move ipv6_del_addr() down to fix the UAF.  [0]: BUG: KASAN: slab-use-after-free in inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117 Read of size 4 at addr ffff88807b89c86c by task syz.3.1618/9593  CPU: 0 UID: 0 PID: 9593 Comm: syz.3.1618 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>  __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:378 [inline]  print_report+0xcd/0x630 mm/kasan/report.c:482  kasan_report+0xe0/0x110 mm/kasan/report.c:595  inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117  addrconf_del_ifaddr+0x11e/0x190 net/ipv6/addrconf.c:3181  inet6_ioctl+0x1e5/0x2b0 net/ipv6/af_inet6.c:582  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f164cf8f749 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f164de64038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007f164d1e5fa0 RCX: 00007f164cf8f749 RDX: 0000200000000000 RSI: 0000000000008936 RDI: 0000000000000003 RBP: 00007f164d013f91 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f164d1e6038 R14: 00007f164d1e5fa0 R15: 00007ffde15c8288  </TASK>  Allocated by task 9593:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  poison_kmalloc_redzone mm/kasan/common.c:397 [inline]  __kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:414  kmalloc_noprof include/linux/slab.h:957 [inline]  kzalloc_noprof include/linux/slab.h:1094 [inline]  ipv6_add_addr+0x4e3/0x2010 net/ipv6/addrconf.c:1120  inet6_addr_add+0x256/0x9b0 net/ipv6/addrconf.c:3050  addrconf_add_ifaddr+0x1fc/0x450 net/ipv6/addrconf.c:3160  inet6_ioctl+0x103/0x2b0 net/ipv6/af_inet6.c:580  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 6099:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  kasan_save_free_info+0x3b/0x60 mm/kasan/generic.c:584  poison_slab_object mm/kasan/common.c:252 [inline]  __kasan_slab_free+0x5f/0x80 mm/kasan/common.c:284  kasan_slab_free include/linux/kasan.h:234 [inline]  slab_free_hook mm/slub.c:2540 [inline]  slab_free_freelist_hook mm/slub.c:2569 [inline]  slab_free_bulk mm/slub.c:6696 [inline]  kmem_cache_free_bulk mm/slub.c:7383 [inline]  kmem_cache_free_bulk+0x2bf/0x680 mm/slub.c:7362  kfree_bulk include/linux/slab.h:830 [inline]  kvfree_rcu_bulk+0x1b7/0x1e0 mm/slab_common.c:1523  kvfree_rcu_drain_ready mm/slab_common.c:1728 [inline]  kfree_rcu_monitor+0x1d0/0x2f0 mm/slab_common.c:1801  process_one_work+0x9ba/0x1b20 kernel/workqueue.c:3257  process_scheduled_works kernel/workqu ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23054",
                                "url": "https://ubuntu.com/security/CVE-2026-23054",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hv_netvsc: reject RSS hash key programming without RX indirection table  RSS configuration requires a valid RX indirection table. When the device reports a single receive queue, rndis_filter_device_add() does not allocate an indirection table, accepting RSS hash key updates in this state leads to a hang.  Fix this by gating netvsc_set_rxfh() on ndc->rx_table_sz and return -EOPNOTSUPP when the table is absent. This aligns set_rxfh with the device capabilities and prevents incorrect behavior.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23011",
                                "url": "https://ubuntu.com/security/CVE-2026-23011",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: ip_gre: make ipgre_header() robust  Analog to commit db5b4e39c4e6 (\"ip6_gre: make ip6gre_header() robust\")  Over the years, syzbot found many ways to crash the kernel in ipgre_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 ipgre device.  [1] skbuff: skb_under_panic: text:ffffffff89ea3cb7 len:2030915468 put:2030915372 head:ffff888058b43000 data:ffff887fdfa6e194 tail:0x120 end:0x6c0 dev:team0  kernel BUG at net/core/skbuff.c:213 ! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 1 UID: 0 PID: 1322 Comm: kworker/1:9 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Workqueue: mld mld_ifc_work  RIP: 0010:skb_panic+0x157/0x160 net/core/skbuff.c:213 Call Trace:  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ipgre_header+0x67/0x290 net/ipv4/ip_gre.c:897   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   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   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0xad1/0x1770 kernel/workqueue.c:3340   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23001",
                                "url": "https://ubuntu.com/security/CVE-2026-23001",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix possible UAF in macvlan_forward_source()  Add RCU protection on (struct macvlan_source_entry)->vlan.  Whenever macvlan_hash_del_source() is called, we must clear entry->vlan pointer before RCU grace period starts.  This allows macvlan_forward_source() to skip over entries queued for freeing.  Note that macvlan_dev are already RCU protected, as they are embedded in a standard netdev (netdev_priv(ndev)).  https: //lore.kernel.org/netdev/695fb1e8.050a0220.1c677c.039f.GAE@google.com/T/#u",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23003",
                                "url": "https://ubuntu.com/security/CVE-2026-23003",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv()  Blamed commit did not take care of VLAN encapsulations as spotted by syzbot [1].  Use skb_vlan_inet_prepare() instead of pskb_inet_may_pull().  [1]  BUG: KMSAN: uninit-value in __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]  BUG: KMSAN: uninit-value in INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]  BUG: KMSAN: uninit-value in IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]   INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]   IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   ip6ip6_dscp_ecn_decapsulate+0x16f/0x1b0 net/ipv6/ip6_tunnel.c:729   __ip6_tnl_rcv+0xed9/0x1b50 net/ipv6/ip6_tunnel.c:860   ip6_tnl_rcv+0xc3/0x100 net/ipv6/ip6_tunnel.c:903  gre_rcv+0x1529/0x1b90 net/ipv6/ip6_gre.c:-1   ip6_protocol_deliver_rcu+0x1c89/0x2c60 net/ipv6/ip6_input.c:438   ip6_input_finish+0x1f4/0x4a0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x9c/0x330 net/ipv6/ip6_input.c:500   ip6_mc_input+0x7ca/0xc10 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x958/0x990 net/ipv6/ip6_input.c:79   NF_HOOK include/linux/netfilter.h:318 [inline]   ipv6_rcv+0xf1/0x3c0 net/ipv6/ip6_input.c:311   __netif_receive_skb_one_core net/core/dev.c:6139 [inline]   __netif_receive_skb+0x1df/0xac0 net/core/dev.c:6252   netif_receive_skb_internal net/core/dev.c:6338 [inline]   netif_receive_skb+0x57/0x630 net/core/dev.c:6397   tun_rx_batched+0x1df/0x980 drivers/net/tun.c:1485   tun_get_user+0x5c0e/0x6c60 drivers/net/tun.c:1953   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Uninit was created at:   slab_post_alloc_hook mm/slub.c:4960 [inline]   slab_alloc_node mm/slub.c:5263 [inline]   kmem_cache_alloc_node_noprof+0x9e7/0x17a0 mm/slub.c:5315   kmalloc_reserve+0x13c/0x4b0 net/core/skbuff.c:586   __alloc_skb+0x805/0x1040 net/core/skbuff.c:690   alloc_skb include/linux/skbuff.h:1383 [inline]   alloc_skb_with_frags+0xc5/0xa60 net/core/skbuff.c:6712   sock_alloc_send_pskb+0xacc/0xc60 net/core/sock.c:2995   tun_alloc_skb drivers/net/tun.c:1461 [inline]   tun_get_user+0x1142/0x6c60 drivers/net/tun.c:1794   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  CPU: 0 UID: 0 PID: 6465 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(none) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23141",
                                "url": "https://ubuntu.com/security/CVE-2026-23141",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: send: check for inline extents in range_is_hole_in_parent()  Before accessing the disk_bytenr field of a file extent item we need to check if we are dealing with an inline extent. This is because for inline extents their data starts at the offset of the disk_bytenr field. So accessing the disk_bytenr means we are accessing inline data or in case the inline data is less than 8 bytes we can actually cause an invalid memory access if this inline extent item is the first item in the leaf or access metadata from other items.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22998",
                                "url": "https://ubuntu.com/security/CVE-2026-22998",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec  Commit efa56305908b (\"nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length\") added ttag bounds checking and data_offset validation in nvmet_tcp_handle_h2c_data_pdu(), but it did not validate whether the command's data structures (cmd->req.sg and cmd->iov) have been properly initialized before processing H2C_DATA PDUs.  The nvmet_tcp_build_pdu_iovec() function dereferences these pointers without NULL checks. This can be triggered by sending H2C_DATA PDU immediately after the ICREQ/ICRESP handshake, before sending a CONNECT command or NVMe write command.  Attack vectors that trigger NULL pointer dereferences: 1. H2C_DATA PDU sent before CONNECT → both pointers NULL 2. H2C_DATA PDU for READ command → cmd->req.sg allocated, cmd->iov NULL 3. H2C_DATA PDU for uninitialized command slot → both pointers NULL  The fix validates both cmd->req.sg and cmd->iov before calling nvmet_tcp_build_pdu_iovec(). Both checks are required because: - Uninitialized commands: both NULL - READ commands: cmd->req.sg allocated, cmd->iov NULL - WRITE commands: both allocated",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23037",
                                "url": "https://ubuntu.com/security/CVE-2026-23037",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: etas_es58x: allow partial RX URB allocation to succeed  When es58x_alloc_rx_urbs() fails to allocate the requested number of URBs but succeeds in allocating some, it returns an error code. This causes es58x_open() to return early, skipping the cleanup label 'free_urbs', which leads to the anchored URBs being leaked.  As pointed out by maintainer Vincent Mailhol, the driver is designed to handle partial URB allocation gracefully. Therefore, partial allocation should not be treated as a fatal error.  Modify es58x_alloc_rx_urbs() to return 0 if at least one URB has been allocated, restoring the intended behavior and preventing the leak in es58x_open().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23038",
                                "url": "https://ubuntu.com/security/CVE-2026-23038",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node()  In nfs4_ff_alloc_deviceid_node(), if the allocation for ds_versions fails, the function jumps to the out_scratch label without freeing the already allocated dsaddrs list, leading to a memory leak.  Fix this by jumping to the out_err_drain_dsaddrs label, which properly frees the dsaddrs list before cleaning up other resources.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71184",
                                "url": "https://ubuntu.com/security/CVE-2025-71184",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix NULL dereference on root when tracing inode eviction  When evicting an inode the first thing we do is to setup tracing for it, which implies fetching the root's id. But in btrfs_evict_inode() the root might be NULL, as implied in the next check that we do in btrfs_evict_inode().  Hence, we either should set the ->root_objectid to 0 in case the root is NULL, or we move tracing setup after checking that the root is not NULL. Setting the rootid to 0 at least gives us the possibility to trace this call even in the case when the root is NULL, so that's the solution taken here.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "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-2025-71160",
                                "url": "https://ubuntu.com/security/CVE-2025-71160",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: avoid chain re-validation if possible  Hamza Mahfooz reports cpu soft lock-ups in nft_chain_validate():   watchdog: BUG: soft lockup - CPU#1 stuck for 27s! [iptables-nft-re:37547] [..]  RIP: 0010:nft_chain_validate+0xcb/0x110 [nf_tables] [..]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_table_validate+0x6b/0xb0 [nf_tables]   nf_tables_validate+0x8b/0xa0 [nf_tables]   nf_tables_commit+0x1df/0x1eb0 [nf_tables] [..]  Currently nf_tables will traverse the entire table (chain graph), starting from the entry points (base chains), exploring all possible paths (chain jumps).  But there are cases where we could avoid revalidation.  Consider: 1  input -> j2 -> j3 2  input -> j2 -> j3 3  input -> j1 -> j2 -> j3  Then the second rule does not need to revalidate j2, and, by extension j3, because this was already checked during validation of the first rule. We need to validate it only for rule 3.  This is needed because chain loop detection also ensures we do not exceed the jump stack: Just because we know that j2 is cycle free, its last jump might now exceed the allowed stack size.  We also need to update all reachable chains with the new largest observed call depth.  Care has to be taken to revalidate even if the chain depth won't be an issue: chain validation also ensures that expressions are not called from invalid base chains.  For example, the masquerade expression can only be called from NAT postrouting base chains.  Therefore we also need to keep record of the base chain context (type, hooknum) and revalidate if the chain becomes reachable from a different hook location.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22994",
                                "url": "https://ubuntu.com/security/CVE-2026-22994",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix reference count leak in bpf_prog_test_run_xdp()  syzbot is reporting    unregister_netdevice: waiting for sit0 to become free. Usage count = 2  problem. A debug printk() patch found that a refcount is obtained at xdp_convert_md_to_buff() from bpf_prog_test_run_xdp().  According to commit ec94670fcb3b (\"bpf: Support specifying ingress via xdp_md context in BPF_PROG_TEST_RUN\"), the refcount obtained by xdp_convert_md_to_buff() will be released by xdp_convert_buff_to_md().  Therefore, we can consider that the error handling path introduced by commit 1c1949982524 (\"bpf: introduce frags support to bpf_prog_test_run_xdp()\") forgot to call xdp_convert_buff_to_md().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23140",
                                "url": "https://ubuntu.com/security/CVE-2026-23140",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf, test_run: Subtract size of xdp_frame from allowed metadata size  The xdp_frame structure takes up part of the XDP frame headroom, limiting the size of the metadata. However, in bpf_test_run, we don't take this into account, which makes it possible for userspace to supply a metadata size that is too large (taking up the entire headroom).  If userspace supplies such a large metadata size in live packet mode, the xdp_update_frame_from_buff() call in xdp_test_run_init_page() call will fail, after which packet transmission proceeds with an uninitialised frame structure, leading to the usual Bad Stuff.  The commit in the Fixes tag fixed a related bug where the second check in xdp_update_frame_from_buff() could fail, but did not add any additional constraints on the metadata size. Complete the fix by adding an additional check on the metadata size. Reorder the checks slightly to make the logic clearer and add a comment.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71192",
                                "url": "https://ubuntu.com/security/CVE-2025-71192",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ac97: fix a double free in snd_ac97_controller_register()  If ac97_add_adapter() fails, put_device() is the correct way to drop the device reference. kfree() is not required. Add kfree() if idr_alloc() fails and in ac97_adapter_release() to do the cleanup.  Found by code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 16:16: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-22979",
                                "url": "https://ubuntu.com/security/CVE-2026-22979",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix memory leak in skb_segment_list for GRO packets  When skb_segment_list() is called during packet forwarding, it handles packets that were aggregated by the GRO engine.  Historically, the segmentation logic in skb_segment_list assumes that individual segments are split from a parent SKB and may need to carry their own socket memory accounting. Accordingly, the code transfers truesize from the parent to the newly created segments.  Prior to commit ed4cccef64c1 (\"gro: fix ownership transfer\"), this truesize subtraction in skb_segment_list() was valid because fragments still carry a reference to the original socket.  However, commit ed4cccef64c1 (\"gro: fix ownership transfer\") changed this behavior by ensuring that fraglist entries are explicitly orphaned (skb->sk = NULL) to prevent illegal orphaning later in the stack. This change meant that the entire socket memory charge remained with the head SKB, but the corresponding accounting logic in skb_segment_list() was never updated.  As a result, the current code unconditionally adds each fragment's truesize to delta_truesize and subtracts it from the parent SKB. Since the fragments are no longer charged to the socket, this subtraction results in an effective under-count of memory when the head is freed. This causes sk_wmem_alloc to remain non-zero, preventing socket destruction and leading to a persistent memory leak.  The leak can be observed via KMEMLEAK when tearing down the networking environment:  unreferenced object 0xffff8881e6eb9100 (size 2048):   comm \"ping\", pid 6720, jiffies 4295492526   backtrace:     kmem_cache_alloc_noprof+0x5c6/0x800     sk_prot_alloc+0x5b/0x220     sk_alloc+0x35/0xa00     inet6_create.part.0+0x303/0x10d0     __sock_create+0x248/0x640     __sys_socket+0x11b/0x1d0  Since skb_segment_list() is exclusively used for SKB_GSO_FRAGLIST packets constructed by GRO, the truesize adjustment is removed.  The call to skb_release_head_state() must be preserved. As documented in commit cf673ed0e057 (\"net: fix fraglist segmentation reference count leak\"), it is still required to correctly drop references to SKB extensions that may be overwritten during __copy_skb_header().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15: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-2026-23139",
                                "url": "https://ubuntu.com/security/CVE-2026-23139",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_conncount: update last_gc only when GC has been performed  Currently last_gc is being updated everytime a new connection is tracked, that means that it is updated even if a GC wasn't performed. With a sufficiently high packet rate, it is possible to always bypass the GC, causing the list to grow infinitely.  Update the last_gc value only when a GC has been actually performed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40149",
                                "url": "https://ubuntu.com/security/CVE-2025-40149",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock().  get_netdev_for_sock() is called during setsockopt(), so not under RCU.  Using sk_dst_get(sk)->dev could trigger UAF.  Let's use __sk_dst_get() and dst_dev_rcu().  Note that the only ->ndo_sk_get_lower_dev() user is bond_sk_get_lower_dev(), which uses RCU.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-12 11:15: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-2026-23047",
                                "url": "https://ubuntu.com/security/CVE-2026-23047",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make calc_target() set t->paused, not just clear it  Currently calc_target() clears t->paused if the request shouldn't be paused anymore, but doesn't ever set t->paused even though it's able to determine when the request should be paused.  Setting t->paused is left to __submit_request() which is fine for regular requests but doesn't work for linger requests -- since __submit_request() doesn't operate on linger requests, there is nowhere for lreq->t.paused to be set. One consequence of this is that watches don't get reestablished on paused -> unpaused transitions in cases where requests have been paused long enough for the (paused) unwatch request to time out and for the subsequent (re)watch request to enter the paused state.  On top of the watch not getting reestablished, rbd_reregister_watch() gets stuck with rbd_dev->watch_mutex held:    rbd_register_watch     __rbd_register_watch       ceph_osdc_watch         linger_reg_commit_wait  It's waiting for lreq->reg_commit_wait to be completed, but for that to happen the respective request needs to end up on need_resend_linger list and be kicked when requests are unpaused.  There is no chance for that if the request in question is never marked paused in the first place.  The fact that rbd_dev->watch_mutex remains taken out forever then prevents the image from getting unmapped -- \"rbd unmap\" would inevitably hang in D state on an attempt to grab the mutex.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23136",
                                "url": "https://ubuntu.com/security/CVE-2026-23136",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: reset sparse-read state in osd_fault()  When a fault occurs, the connection is abandoned, reestablished, and any pending operations are retried. The OSD client tracks the progress of a sparse-read reply using a separate state machine, largely independent of the messenger's state.  If a connection is lost mid-payload or the sparse-read state machine returns an error, the sparse-read state is not reset. The OSD client will then interpret the beginning of a new reply as the continuation of the old one. If this makes the sparse-read machinery enter a failure state, it may never recover, producing loops like:    libceph:  [0] got 0 extents   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read  Therefore, reset the sparse-read state in osd_fault(), ensuring retries start from a clean state.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15: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": "high",
                                "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-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-2025-71183",
                                "url": "https://ubuntu.com/security/CVE-2025-71183",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: always detect conflicting inodes when logging inode refs  After rename exchanging (either with the rename exchange operation or regular renames in multiple non-atomic steps) two inodes and at least one of them is a directory, we can end up with a log tree that contains only of the inodes and after a power failure that can result in an attempt to delete the other inode when it should not because it was not deleted before the power failure. In some case that delete attempt fails when the target inode is a directory that contains a subvolume inside it, since the log replay code is not prepared to deal with directory entries that point to root items (only inode items).  1) We have directories \"dir1\" (inode A) and \"dir2\" (inode B) under the    same parent directory;  2) We have a file (inode C) under directory \"dir1\" (inode A);  3) We have a subvolume inside directory \"dir2\" (inode B);  4) All these inodes were persisted in a past transaction and we are    currently at transaction N;  5) We rename the file (inode C), so at btrfs_log_new_name() we update    inode C's last_unlink_trans to N;  6) We get a rename exchange for \"dir1\" (inode A) and \"dir2\" (inode B),    so after the exchange \"dir1\" is inode B and \"dir2\" is inode A.    During the rename exchange we call btrfs_log_new_name() for inodes    A and B, but because they are directories, we don't update their    last_unlink_trans to N;  7) An fsync against the file (inode C) is done, and because its inode    has a last_unlink_trans with a value of N we log its parent directory    (inode A) (through btrfs_log_all_parents(), called from    btrfs_log_inode_parent()).  8) So we end up with inode B not logged, which now has the old name    of inode A. At copy_inode_items_to_log(), when logging inode A, we    did not check if we had any conflicting inode to log because inode    A has a generation lower than the current transaction (created in    a past transaction);  9) After a power failure, when replaying the log tree, since we find that    inode A has a new name that conflicts with the name of inode B in the    fs tree, we attempt to delete inode B... this is wrong since that    directory was never deleted before the power failure, and because there    is a subvolume inside that directory, attempting to delete it will fail    since replay_dir_deletes() and btrfs_unlink_inode() are not prepared    to deal with dir items that point to roots instead of inodes.     When that happens the mount fails and we get a stack trace like the    following:     [87.2314] BTRFS info (device dm-0): start tree-log replay    [87.2318] BTRFS critical (device dm-0): failed to delete reference to subvol, root 5 inode 256 parent 259    [87.2332] ------------[ cut here ]------------    [87.2338] BTRFS: Transaction aborted (error -2)    [87.2346] WARNING: CPU: 1 PID: 638968 at fs/btrfs/inode.c:4345 __btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2368] Modules linked in: btrfs loop dm_thin_pool (...)    [87.2470] CPU: 1 UID: 0 PID: 638968 Comm: mount Tainted: G        W          6.18.0-rc7-btrfs-next-218+ #2 PREEMPT(full)    [87.2489] Tainted: [W]=WARN    [87.2494] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014    [87.2514] RIP: 0010:__btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2538] Code: c0 89 04 24 (...)    [87.2568] RSP: 0018:ffffc0e741f4b9b8 EFLAGS: 00010286    [87.2574] RAX: 0000000000000000 RBX: ffff9d3ec8a6cf60 RCX: 0000000000000000    [87.2582] RDX: 0000000000000002 RSI: ffffffff84ab45a1 RDI: 00000000ffffffff    [87.2591] RBP: ffff9d3ec8a6ef20 R08: 0000000000000000 R09: ffffc0e741f4b840    [87.2599] R10: ffff9d45dc1fffa8 R11: 0000000000000003 R12: ffff9d3ee26d77e0    [87.2608] R13: ffffc0e741f4ba98 R14: ffff9d4458040800 R15: ffff9d44b6b7ca10    [87.2618] FS:  00007f7b9603a840(0000) GS:ffff9d4658982000(0000) knlGS:0000000000000000    [87. ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16: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-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-2024-50004",
                                "url": "https://ubuntu.com/security/CVE-2024-50004",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: update DML2 policy EnhancedPrefetchScheduleAccelerationFinal DCN35  [WHY & HOW] Mismatch in DCN35 DML2 cause bw validation failed to acquire unexpected DPP pipe to cause grey screen and system hang. Remove EnhancedPrefetchScheduleAccelerationFinal value override to match HW spec.  (cherry picked from commit 9dad21f910fcea2bdcff4af46159101d7f9cd8ba)",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-10-21 19:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23274",
                                "url": "https://ubuntu.com/security/CVE-2026-23274",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels  IDLETIMER revision 0 rules reuse existing timers by label and always call mod_timer() on timer->timer.  If the label was created first by revision 1 with XT_IDLETIMER_ALARM, the object uses alarm timer semantics and timer->timer is never initialized. Reusing that object from revision 0 causes mod_timer() on an uninitialized timer_list, triggering debugobjects warnings and possible panic when panic_on_warn=1.  Fix this by rejecting revision 0 rule insertion when an existing timer with the same label is of ALARM type.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-20 09:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23351",
                                "url": "https://ubuntu.com/security/CVE-2026-23351",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: split gc into unlink and reclaim phase  Yiming Qian reports Use-after-free in the pipapo set type:   Under a large number of expired elements, commit-time GC can run for a very   long time in a non-preemptible context, triggering soft lockup warnings and   RCU stall reports (local denial of service).  We must split GC in an unlink and a reclaim phase.  We cannot queue elements for freeing until pointers have been swapped. Expired elements are still exposed to both the packet path and userspace dumpers via the live copy of the data structure.  call_rcu() does not protect us: dump operations or element lookups starting after call_rcu has fired can still observe the free'd element, unless the commit phase has made enough progress to swap the clone and live pointers before any new reader has picked up the old version.  This a similar approach as done recently for the rbtree backend in commit 35f83a75529a (\"netfilter: nft_set_rbtree: don't gc elements on insert\").",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-25 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23231",
                                "url": "https://ubuntu.com/security/CVE-2026-23231",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-03-04 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23209",
                                "url": "https://ubuntu.com/security/CVE-2026-23209",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23112",
                                "url": "https://ubuntu.com/security/CVE-2026-23112",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-114.114~22.04.1 -proposed tracker (LP: #2147981)",
                            "",
                            "  [ Ubuntu: 6.8.0-114.114 ]",
                            "",
                            "  * noble/linux: 6.8.0-114.114 -proposed tracker (LP: #2148397)",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465)",
                            "    - SAUCE: Fix skb_vlan_inet_prepare() usage",
                            "",
                            "  [ Ubuntu: 6.8.0-112.112 ]",
                            "",
                            "  * noble/linux: 6.8.0-112.112 -proposed tracker (LP: #2147982)",
                            "  * Canonical Kmod 2025 key rotation (LP: #2147447)",
                            "    - [Packaging] ubuntu-compatible-signing -- make Ubuntu-Compatible-Signing",
                            "      extensible",
                            "    - [Packaging] ubuntu-compatible-signing -- allow consumption of positive",
                            "      certs",
                            "    - [Packaging] ubuntu-compatible-signing -- report the livepatch:2025 key",
                            "    - [Config] prepare for Canonical Kmod key rotation",
                            "    - [Packaging] ubuntu-compatible-signing -- report the kmod:2025 key",
                            "  * Remount ext4 to readonly with data=journal mode may dump call trace",
                            "    (LP: #2147400)",
                            "    - ext4: fix stale xarray tags after writeback",
                            "  * Compile error due to nonexistent struct member with CONFIG_PCI_EPF_TEST",
                            "    (LP: #2147065)",
                            "    - SAUCE: Revert \"PCI: endpoint: pci-epf-test: Limit PCIe BAR size for",
                            "      fixed BARs\"",
                            "  * BUG: kernel NULL pointer dereference in amdgpu (LP: #2144577)",
                            "    - drm/amdgpu: validate the flush_gpu_tlb_pasid()",
                            "    - drm/amdgpu: Fix validating flush_gpu_tlb_pasid()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841)",
                            "    - x86/kfence: fix booting on 32bit non-PAE systems",
                            "    - platform/x86: intel_telemetry: Fix swapped arrays in PSS output",
                            "    - pmdomain: qcom: rpmpd: fix off-by-one error in clamping to the highest",
                            "      state",
                            "    - pmdomain: imx8mp-blk-ctrl: Keep gpc power domain on for system wakeup",
                            "    - pmdomain: imx: gpcv2: Fix the imx8mm gpu hang due to wrong adb400 reset",
                            "    - pmdomain: imx8mp-blk-ctrl: Keep usb phy power domain on for system",
                            "      wakeup",
                            "    - rbd: check for EOD after exclusive lock is ensured to be held",
                            "    - ARM: 9468/1: fix memset64() on big-endian",
                            "    - hfsplus: fix slab-out-of-bounds read in hfsplus_uni2asc()",
                            "    - binder: fix BR_FROZEN_REPLY error log",
                            "    - binderfs: fix ida_alloc_max() upper bound",
                            "    - KVM: selftests: Add -U_FORTIFY_SOURCE to avoid some unpredictable test",
                            "      failures",
                            "    - tracing: Fix ftrace event field alignments",
                            "    - net: usb: sr9700: support devices with virtual driver CD",
                            "    - block,bfq: fix aux stat accumulation destination",
                            "    - LoongArch: Set correct protection_map[] for VM_NONE/VM_SHARED",
                            "    - HID: intel-ish-hid: Update ishtp bus match to support device ID table",
                            "    - HID: multitouch: add MT_QUIRK_STICKY_FINGERS to MT_CLS_VTL",
                            "    - HID: intel-ish-hid: Reset enum_devices_done before enumeration",
                            "    - HID: playstation: Center initial joystick axes to prevent spurious",
                            "      events",
                            "    - ALSA: hda/realtek: add HP Laptop 15s-eq1xxx mute LED quirk",
                            "    - netfilter: replace -EEXIST with -EBUSY",
                            "    - HID: quirks: Add another Chicony HP 5MP Cameras to hid_ignore_list",
                            "    - HID: Apply quirk HID_QUIRK_ALWAYS_POLL to Edifier QR30 (2d99:a101)",
                            "    - ring-buffer: Avoid softlockup in ring_buffer_resize() during memory free",
                            "    - wifi: mac80211: collect station statistics earlier when disconnect",
                            "    - ASoC: davinci-evm: Fix reference leak in davinci_evm_probe",
                            "    - ASoC: amd: yc: Fix microphone on ASUS M6500RE",
                            "    - ASoC: tlv320adcx140: Propagate error codes during probe",
                            "    - spi: hisi-kunpeng: Fixed the wrong debugfs node name in hisi_spi debugfs",
                            "      initialization",
                            "    - wifi: cfg80211: Fix bitrate calculation overflow for HE rates",
                            "    - ALSA: hda/realtek: Fix headset mic for TongFang X6AR55xU",
                            "    - wifi: mac80211: correctly check if CSA is active",
                            "    - wifi: mac80211: don't increment crypto_tx_tailroom_needed_cnt twice",
                            "    - platform/x86: intel_telemetry: Fix PSS event register mask",
                            "    - platform/x86: hp-bioscfg: Skip empty attribute names",
                            "    - net: add skb_header_pointer_careful() helper",
                            "    - net: don't touch dev->stats in BPF redirect paths",
                            "    - tipc: use kfree_sensitive() for session key material",
                            "    - net: ethernet: adi: adin1110: Check return value of",
                            "      devm_gpiod_get_optional() in adin1110_check_spi()",
                            "    - drm/mgag200: fix mgag200_bmc_stop_scanout()",
                            "    - hwmon: (occ) Mark occ_init_attribute() as __printf",
                            "    - ipv6: Fix ECMP sibling count mismatch when clearing RTF_ADDRCONF",
                            "    - gve: Correct ethtool rx_dropped calculation",
                            "    - spi: tegra210-quad: Return IRQ_HANDLED when timeout already processed",
                            "      transfer",
                            "    - spi: tegra210-quad: Move curr_xfer read inside spinlock",
                            "    - spi: tegra210-quad: Protect curr_xfer assignment in",
                            "      tegra_qspi_setup_transfer_one",
                            "    - spi: tegra210-quad: Protect curr_xfer in tegra_qspi_combined_seq_xfer",
                            "    - spi: tegra210-quad: Protect curr_xfer clearing in",
                            "      tegra_qspi_non_combined_seq_xfer",
                            "    - spi: tegra114: Preserve SPI mode bits in def_command1_reg",
                            "    - ALSA: hda/realtek: Really fix headset mic for TongFang X6AR55xU.",
                            "    - PCI/ERR: Ensure error recoverability at all times",
                            "    - ALSA: hda/realtek: Add quirk for Acer Nitro AN517-55",
                            "    - PCI: qcom: Remove ASPM L0s support for MSM8996 SoC",
                            "    - HID: logitech: add HID++ support for Logitech MX Anywhere 3S",
                            "    - ALSA: hda/realtek: ALC269 fixup for Lenovo Yoga Book 9i 13IRU8 audio",
                            "    - net: phy: add phy_interface_weight()",
                            "    - net: phy: add phy_interface_copy()",
                            "    - net: sfp: pre-parse the module support",
                            "    - net: sfp: enhance quirk for Fibrestore 2.5G copper SFP module",
                            "    - net: sfp: convert sfp quirks to modify struct sfp_module_support",
                            "    - net: sfp: Fix quirk for Ubiquiti U-Fiber Instant SFP module",
                            "    - drm/amd/display: fix wrong color value mapping on MCM shaper LUT",
                            "    - drm/xe/query: Fix topology query pointer advance",
                            "    - ALSA: usb-audio: fix broken logic in snd_audigy2nx_led_update()",
                            "    - gpiolib-acpi: Update file references in the Documentation and",
                            "      MAINTAINERS",
                            "    - Upstream stable to v6.6.124, v6.12.70",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23214",
                            "    - btrfs: reject new transactions if the fs is fully read-only",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23213",
                            "    - drm/amd/pm: Disable MMIO access during SMU Mode 1 reset",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71225",
                            "    - md: suspend array while updating raid_disks via sysfs",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-68823",
                            "    - ublk: fix deadlock when reading partition table",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23191",
                            "    - ALSA: aloop: Fix racy access at PCM trigger",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23215",
                            "    - x86/vmware: Fix hypercall clobbers",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23182",
                            "    - spi: tegra: Fix a memory leak in tegra_slink_probe()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23190",
                            "    - ASoC: amd: fix memory leak in acp3x pdm dma ops",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23254",
                            "    - net: gro: fix outer network offset",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23180",
                            "    - dpaa2-switch: add bounds check for if_id in IRQ handler",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23256",
                            "    - net: liquidio: Fix off-by-one error in VF setup_nic_devices() cleanup",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23257",
                            "    - net: liquidio: Fix off-by-one error in PF setup_nic_devices() cleanup",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23258",
                            "    - net: liquidio: Initialize netdev pointer before queue setup",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23206",
                            "    - dpaa2-switch: prevent ZERO_SIZE_PTR dereference when num_ifs is zero",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23204",
                            "    - net/sched: cls_u32: use skb_header_pointer_careful()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23205",
                            "    - smb/client: fix memory leak in smb2_open_file()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23176",
                            "    - platform/x86: toshiba_haps: Fix memory leaks in add/remove routines",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23216",
                            "    - scsi: target: iscsi: Fix use-after-free in iscsit_dec_conn_usage_count()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23193",
                            "    - scsi: target: iscsi: Fix use-after-free in",
                            "      iscsit_dec_session_usage_count()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23260",
                            "    - regmap: maple: free entry on mas_store_gfp() failure",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23179",
                            "    - nvmet-tcp: fixup hang in nvmet_tcp_listen_data_ready()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23261",
                            "    - nvme-fc: release admin tagset if init fails",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23178",
                            "    - HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71268",
                            "    - btrfs: fix reservation leak in some error paths when inserting inline",
                            "      extent",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71270",
                            "    - LoongArch: Enable exception fixup for specific ADE subcode",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71220",
                            "    - smb/server: call ksmbd_session_rpc_close() on error path in",
                            "      create_smb2_pipe()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71222",
                            "    - wifi: wlcore: ensure skb headroom before skb_push",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71224",
                            "    - wifi: mac80211: ocb: skip rx_no_sta when interface is not joined",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23262",
                            "    - gve: Fix stats report corruption on queue count change",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-38201",
                            "    - netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23198",
                            "    - KVM: Don't clobber irqfd routing type when deassigning irqfd",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23264",
                            "    - Revert \"drm/amd: Check if ASPM is enabled from PCIe subsystem\"",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23187",
                            "    - pmdomain: imx8m-blk-ctrl: fix out-of-range access of bc->domains",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543)",
                            "    - net/mlx5: Fix memory leak in esw_acl_ingress_lgcy_setup()",
                            "    - can: gs_usb: gs_usb_receive_bulk_callback(): fix error message",
                            "    - net: bcmasp: fix early exit leak with fixed phy",
                            "    - net: mvpp2: cls: Fix memory leak in mvpp2_ethtool_cls_rule_ins()",
                            "    - ipv6: use the right ifindex when replying to icmpv6 from localhost",
                            "    - ice: stop counting UDP csum mismatch as rx_errors",
                            "    - net/mlx5e: Report rx_discards_phy via rx_dropped",
                            "    - net/mlx5e: Account for netdev stats in ndo_get_stats64",
                            "    - net: bridge: fix static key check",
                            "    - net/mlx5e: Skip ESN replay window setup for IPsec crypto offload",
                            "    - scsi: firewire: sbp-target: Fix overflow in sbp_make_tpg()",
                            "    - ASoC: Intel: sof_es8336: fix headphone GPIO logic inversion",
                            "    - gpiolib: acpi: use BIT_ULL() for u64 mask in address space handler",
                            "    - dma/pool: distinguish between missing and exhausted atomic pools",
                            "    - pinctrl: meson: mark the GPIO controller as sleeping",
                            "    - riscv: compat: fix COMPAT_UTS_MACHINE definition",
                            "    - rust: kbuild: give `--config-path` to `rustfmt` in `.rsi` target",
                            "    - ASoC: fsl: imx-card: Do not force slot width to sample width",
                            "    - scsi: be2iscsi: Fix a memory leak in beiscsi_boot_get_sinfo()",
                            "    - ASoC: amd: yc: Add DMI quirk for Acer TravelMate P216-41-TCO",
                            "    - gpio: pca953x: mask interrupts in irq shutdown",
                            "    - scsi: qla2xxx: edif: Fix dma_free_coherent() size",
                            "    - mptcp: only reset subflow errors when propagated",
                            "    - selftests: mptcp: check no dup close events after error",
                            "    - selftests: mptcp: check subflow errors in close events",
                            "    - selftests: mptcp: join: fix local endp not being tracked",
                            "    - scripts: generate_rust_analyzer: Add compiler_builtins -> core dep",
                            "    - drm/amdgpu/soc21: fix xclk for APUs",
                            "    - drm/amdgpu/gfx10: fix wptr reset in KGQ init",
                            "    - drm/amdgpu/gfx11: fix wptr reset in KGQ init",
                            "    - mm/kfence: randomize the freelist on initialization",
                            "    - arm64/fpsimd: signal: Mandate SVE payload for streaming-mode state",
                            "    - arm64/fpsimd: signal: Consistently read FPSIMD context",
                            "    - btrfs: prevent use-after-free on page private data in",
                            "      btrfs_subpage_clear_uptodate()",
                            "    - net/sched: act_ife: convert comma to semicolon",
                            "    - pinctrl: lpass-lpi: implement .get_direction() for the GPIO driver",
                            "    - drm/msm/a6xx: fix bogus hwcg register updates",
                            "    - writeback: fix 100% CPU usage when dirtytime_expire_interval is 0",
                            "    - mptcp: avoid dup SUB_CLOSED events after disconnect",
                            "    - ksmbd: fix recursive locking in RPC handle list access",
                            "    - bpf/selftests: test_select_reuseport_kern: Remove unused header",
                            "    - can: at91_can: Fix memory leak in at91_can_probe()",
                            "    - net: phy: micrel: fix clk warning when removing the driver",
                            "    - net/mlx5: fs, Fix inverted cap check in tx flow table root disconnect",
                            "    - net/mlx5: Initialize events outside devlink lock",
                            "    - net/mlx5: Fix vhca_id access call trace use before alloc",
                            "    - bcache: fix improper use of bi_end_io",
                            "    - bcache: use bio cloning for detached device requests",
                            "    - bcache: fix I/O accounting leak in detached_dev_do_request",
                            "    - gpio: rockchip: Stop calling pinctrl for set_direction",
                            "    - mm/memory-failure: improve memory failure action_result messages",
                            "    - mm/memory-failure: fix redundant updates for already poisoned pages",
                            "    - mm/memory-failure: fix missing ->mf_stats count in hugetlb poison",
                            "    - mm/memory-failure: teach kill_accessing_process to accept hugetlb tail",
                            "      page pfn",
                            "    - gpiolib: acpi: Fix potential out-of-boundary left shift",
                            "    - rust: kbuild: support `-Cjump-tables=n` for Rust 1.93.0",
                            "    - pinctrl: qcom: sm8350-lpass-lpi: Merge with SC7280 to fix I2S2 and SWR",
                            "      TX pins",
                            "    - [Config] remove PINCTRL_SM8350_LPASS_LPI",
                            "    - Upstream stable to v6.6.123, v6.12.69",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23148",
                            "    - nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23166",
                            "    - ice: Fix NULL pointer dereference in ice_vsi_set_napi_queues",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23151",
                            "    - Bluetooth: MGMT: Fix memory leak in set_ssp_complete",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23163",
                            "    - drm/amdgpu: fix NULL pointer dereference in",
                            "      amdgpu_gmc_filter_faults_remove",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23159",
                            "    - perf: sched: Fix perf crash with new is_user_task() helper",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2024-58096",
                            "    - wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2025-40039",
                            "    - ksmbd: Fix race condition in RPC handle list access",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23093",
                            "    - ksmbd: smbd: fix dma_unmap_sg() nents",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23102",
                            "    - arm64/fpsimd: signal: Fix restoration of SVE context",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23170",
                            "    - drm/imx/tve: fix probe device leak",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23168",
                            "    - flex_proportions: make fprop_new_period() hardirq safe",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23156",
                            "    - efivarfs: fix error propagation in efivar_entry_get()",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23167",
                            "    - nfc: nci: Fix race between rfkill and nci_unregister_device().",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23173",
                            "    - net/mlx5e: TC, delete flows only for existing peers",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23150",
                            "    - nfc: llcp: Fix memleak in nfc_llcp_send_ui_frame().",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23164",
                            "    - rocker: fix memory leak in rocker_world_port_post_fini()",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23172",
                            "    - net: wwan: t7xx: fix potential skb->frags overflow in RX path",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23212",
                            "    - bonding: annotate data-races around slave->last_rx",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23160",
                            "    - octeon_ep: Fix memory leak in octep_device_setup()",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23146",
                            "    - Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work",
                            "  * CVE-2026-23394",
                            "    - af_unix: Give up GC if MSG_PEEK intervened.",
                            "  * [SRU] MIPI camera is not working after upgrading to 6.17-oem",
                            "    (LP: #2145171)",
                            "    - SAUCE: ACPI: respect items already in honor_dep before skipping",
                            "  * ADATA SU680 causes repeated SATA resets and I/O errors on Ubuntu unless",
                            "    link power management is forced to max_performance (LP: #2144060)",
                            "    - ata: libata-core: disable LPM on ADATA SU680 SSD",
                            "  *  intel_idle: add Clearwater Forest SoC support (LP: #2144006)",
                            "    - intel_idle: add Clearwater Forest SoC support",
                            "  * Noble kernel 6.8.0-108 does not compile when KASAN enabled (LP: #2144914)",
                            "    - mm/kasan: fix incorrect unpoisoning in vrealloc for KASAN",
                            "  * Generic noble linux throws warning from file tegra-i2c.c (LP: #2143152)",
                            "    - i2c: tegra: Use internal reset when reset property is not available",
                            "  * [SRU] Duplicated entries in /proc/<pid>/mountinfo (LP: #2143083)",
                            "    - namespace: fix proc mount iteration",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465)",
                            "    - firmware: imx: scu-irq: Set mu_resource_id before get handle",
                            "    - efi/cper: Fix cper_bits_to_str buffer handling and return value",
                            "    - ASoC: codecs: wsa884x: fix codec initialisation",
                            "    - xfrm: Fix inner mode lookup in tunnel mode GSO segmentation",
                            "    - net: bridge: annotate data-races around fdb->{updated,used}",
                            "    - net: update netdev_lock_{type,name}",
                            "    - vsock/test: add a final full barrier after run all tests",
                            "    - net/mlx5e: Restore destroying state bit after profile cleanup",
                            "    - btrfs: store fs_info in space_info",
                            "    - btrfs: factor out init_space_info() from create_space_info()",
                            "    - btrfs: factor out check_removing_space_info() from",
                            "      btrfs_free_block_groups()",
                            "    - btrfs: introduce btrfs_space_info sub-group",
                            "    - btrfs: fix memory leaks in create_space_info() error paths",
                            "    - selftests: drv-net: fix RPS mask handling for high CPU numbers",
                            "    - ASoC: tlv320adcx140: fix word length",
                            "    - textsearch: describe @list member in ts_ops search",
                            "    - mm, kfence: describe @slab parameter in __kfence_obj_info()",
                            "    - dmaengine: xilinx_dma: Fix uninitialized addr_width when",
                            "      \"xlnx,addrwidth\" property is missing",
                            "    - phy: fsl-imx8mq-usb: Clear the PCS_TX_SWING_FULL field before using it",
                            "    - phy: phy-snps-eusb2: refactor constructs names",
                            "    - phy: drop probe registration printks",
                            "    - phy: broadcom: ns-usb3: Fix Wvoid-pointer-to-enum-cast warning (again)",
                            "    - i2c: qcom-geni: make sure I2C hub controllers can't use SE DMA",
                            "    - HID: usbhid: paper over wrong bNumDescriptor field",
                            "    - scsi: core: Fix error handler encryption support",
                            "    - ALSA: pcm: Improve the fix for race of buffer access at PCM OSS layer",
                            "    - can: ctucanfd: fix SSP_SRC in cases when bit-rate is higher than 1 MBit.",
                            "    - x86/kaslr: Recognize all ZONE_DEVICE users as physaddr consumers",
                            "    - phy: rockchip: inno-usb2: fix communication disruption in gadget mode",
                            "    - phy: freescale: imx8m-pcie: assert phy reset during power on",
                            "    - phy: rockchip: inno-usb2: fix disconnection in gadget mode",
                            "    - phy: tegra: xusb: Explicitly configure HS_DISCON_LEVEL to 0x7",
                            "    - usb: dwc3: Check for USB4 IP_NAME",
                            "    - usb: core: add USB_QUIRK_NO_BOS for devices that hang on BOS descriptor",
                            "    - USB: OHCI/UHCI: Add soft dependencies on ehci_platform",
                            "    - USB: serial: option: add Telit LE910 MBIM composition",
                            "    - USB: serial: ftdi_sio: add support for PICAXE AXE027 cable",
                            "    - nvme-pci: disable secondary temp for Wodposit WPBSNM8",
                            "    - hrtimer: Fix softirq base check in update_needs_ipi()",
                            "    - EDAC/x38: Fix a resource leak in x38_probe1()",
                            "    - EDAC/i3200: Fix a resource leak in i3200_probe1()",
                            "    - tcpm: allow looking for role_sw device in the main node",
                            "    - x86/resctrl: Add missing resctrl initialization for Hygon",
                            "    - x86/resctrl: Fix memory bandwidth counter width for Hygon",
                            "    - mm/page_alloc: make percpu_pagelist_high_fraction reads lock-free",
                            "    - LoongArch: Fix PMU counter allocation for mixed-type event groups",
                            "    - drm/amd/display: Bump the HDMI clock to 340MHz",
                            "    - drm/amd: Clean up kfd node on surprise disconnect",
                            "    - drm/amdkfd: fix a memory leak in device_queue_manager_init()",
                            "    - drm/nouveau/disp/nv50-: Set lock_core in curs507a_prepare",
                            "    - drm/vmwgfx: Fix an error return check in vmw_compat_shader_add()",
                            "    - dmaengine: apple-admac: Add \"apple,t8103-admac\" compatible",
                            "    - dmaengine: sh: rz-dmac: Fix rz_dmac_terminate_all()",
                            "    - dmaengine: ti: dma-crossbar: fix device leak on dra7x route allocation",
                            "    - dmaengine: ti: k3-udma: fix device leak on udma lookup",
                            "    - io_uring: move local task_work in exit cancel loop",
                            "    - posix-clock: Store file pointer in struct posix_clock_context",
                            "    - ptp: Add PHC file mode checks. Allow RO adjtime() without FMODE_WRITE.",
                            "    - selftest/ptp: update ptp selftest to exercise the gettimex options",
                            "    - testptp: Add option to open PHC in readonly mode",
                            "    - arm64: dts: qcom: sc8280xp: Add missing VDD_MXC links",
                            "    - hyperv-tlfs: Change prefix of generic HV_REGISTER_* MSRs to HV_MSR_*",
                            "    - Drivers: hv: Always do Hyper-V panic notification in hv_kmsg_dump()",
                            "    - btrfs: fix missing fields in superblock backup with BLOCK_GROUP_TREE",
                            "    - dt-bindings: power: qcom,rpmpd: document the SM8750 RPMh Power Domains",
                            "    - dt-bindings: power: qcom,rpmpd: add Turbo L5 corner",
                            "    - dt-bindings: power: qcom-rpmpd: split RPMh domains definitions",
                            "    - dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO",
                            "    - pmdomain: qcom: rpmhpd: Add MXC to SC8280XP",
                            "    - ata: libata: Add cpr_log to ata_dev_print_features() early return",
                            "    - ata: libata-core: Introduce ata_dev_config_lpm()",
                            "    - ata: libata: Call ata_dev_config_lpm() for ATAPI devices",
                            "    - ata: libata: Print features also for ATAPI devices",
                            "    - ice: initialize ring_stats->syncp",
                            "    - ice: Avoid detrimental cleanup for bond during interface stop",
                            "    - igc: fix race condition in TX timestamp read for register 0",
                            "    - net: usb: dm9601: remove broken SR9700 support",
                            "    - selftests: net: fib-onlink-tests: Convert to use namespaces by default",
                            "    - can: gs_usb: gs_usb_receive_bulk_callback(): unanchor URL on",
                            "      usb_submit_urb() error",
                            "    - amd-xgbe: avoid misleading per-packet error log",
                            "    - tools: ynl: Specify --no-line-number in ynl-regen.sh.",
                            "    - veth: fix data race in veth_get_ethtool_stats",
                            "    - octeontx2: cn10k: fix RX flowid TCAM mask handling",
                            "    - serial: 8250_pci: Fix broken RS485 for F81504/508/512",
                            "    - comedi: dmm32at: serialize use of paged registers",
                            "    - w1: fix redundant counter decrement in w1_attach_slave_device()",
                            "    - Revert \"nfc/nci: Add the inconsistency check between the input data",
                            "      length and count\"",
                            "    - Input: i8042 - add quirks for MECHREVO Wujie 15X Pro",
                            "    - Input: i8042 - add quirk for ASUS Zenbook UX425QA_UM425QA",
                            "    - scsi: storvsc: Process unsupported MODE_SENSE_10",
                            "    - arm64: dts: rockchip: remove dangerous max-link-speed from helios64",
                            "    - arm64: dts: rockchip: Fix voltage threshold for volume keys for",
                            "      Pinephone Pro",
                            "    - x86/kfence: avoid writing L1TF-vulnerable PTEs",
                            "    - comedi: Fix getting range information for subdevices 16 to 255",
                            "    - iio: adc: ad7280a: handle spi_setup() errors in probe()",
                            "    - kconfig: fix static linking of nconf",
                            "    - riscv: clocksource: Fix stimecmp update hazard on RV32",
                            "    - ALSA: usb: Increase volume range that triggers a warning",
                            "    - net: hns3: fix data race in hns3_fetch_stats",
                            "    - be2net: fix data race in be_get_new_eqd",
                            "    - net: hns3: fix wrong GENMASK() for HCLGE_FD_AD_COUNTER_NUM_M",
                            "    - net: hns3: fix the HCLGE_FD_AD_NXT_KEY error setting issue",
                            "    - usbnet: limit max_mtu based on device's hard_mtu",
                            "    - drm/amd/pm: Don't clear SI SMC table when setting power limit",
                            "    - drm/amd/pm: Workaround SI powertune issue on Radeon 430 (v2)",
                            "    - selftests: net: amt: wait longer for connection before sending packets",
                            "    - net: dsa: fix off-by-one in maximum bridge ID determination",
                            "    - octeontx2-af: Fix error handling",
                            "    - net: openvswitch: fix data race in ovs_vport_get_upcall_stats",
                            "    - vsock/test: fix seqpacket message bounds test",
                            "    - x86: make page fault handling disable interrupts properly",
                            "    - of: fix reference count leak in of_alias_scan()",
                            "    - of: platform: Use default match table for /firmware",
                            "    - iio: accel: iis328dq: fix gain values",
                            "    - iio: adc: ad9467: fix ad9434 vref mask",
                            "    - iio: chemical: scd4x: fix reported channel endianness",
                            "    - iio: dac: ad5686: add AD5695R to ad5686_chip_info_tbl",
                            "    - mmc: rtsx_pci_sdmmc: implement sdmmc_card_busy function",
                            "    - wifi: mwifiex: Fix a loop in mwifiex_update_ampdu_rxwinsize()",
                            "    - octeontx2: Fix otx2_dma_map_page() error return code",
                            "    - slimbus: core: fix runtime PM imbalance on report present",
                            "    - platform/x86: hp-bioscfg: Fix automatic module loading",
                            "    - perf/x86/intel: Do not enable BTS for guests",
                            "    - selftests/bpf: Check for timeout in perf_link test",
                            "    - mm/damon/sysfs-scheme: cleanup quotas subdirs on scheme dir setup",
                            "      failure",
                            "    - iio: core: add missing mutex_destroy in iio_dev_release()",
                            "    - iio: core: add separate lockdep class for info_exist_lock",
                            "    - mm/rmap: fix two comments related to huge_pmd_unshare()",
                            "    - arm64: dts: rockchip: remove redundant max-link-speed from nanopi-r4s",
                            "    - iio: adc: exynos_adc: fix OF populate on driver rebind",
                            "    - dmaengine: stm32: dmamux: fix OF node leak on route allocation failure",
                            "    - mm: kmsan: fix poisoning of high-order non-compound pages",
                            "    - phy: phy-rockchip-inno-usb2: Use dev_err_probe() in the probe path",
                            "    - ASoC: codecs: wsa881x: Drop unused version readout",
                            "    - ASoC: codecs: wsa881x: fix unnecessary initialisation",
                            "    - ASoC: codecs: wsa883x: fix unnecessary initialisation",
                            "    - nvme-fc: rename free_ctrl callback to match name pattern",
                            "    - nvme-pci: do not directly handle subsys reset fallout",
                            "    - nvme: fix PCIe subsystem reset controller state transition",
                            "    - net: phy: fix phy_uses_state_machine()",
                            "    - pnfs/blocklayout: Fix memory leak in bl_parse_scsi()",
                            "    - drm/vmwgfx: Merge vmw_bo_release and vmw_bo_free functions",
                            "    - ALSA: hda/cirrus_scodec_test: Fix incorrect setup of gpiochip",
                            "    - ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type",
                            "    - selftests/landlock: Fix TCP bind(AF_UNSPEC) test case",
                            "    - xfs: Fix the return value of xfs_rtcopy_summary()",
                            "    - phy: ti: gmii-sel: fix regmap leak on probe failure",
                            "    - LoongArch: dts: loongson-2k0500: Add default interrupt controller",
                            "      address cells",
                            "    - LoongArch: dts: loongson-2k1000: Add default interrupt controller",
                            "      address cells",
                            "    - LoongArch: dts: loongson-2k1000: Fix i2c-gpio node names",
                            "    - LoongArch: dts: loongson-2k2000: Add default interrupt controller",
                            "      address cells",
                            "    - HID: intel-ish-hid: Use dedicated unbound workqueues to prevent resume",
                            "      blocking",
                            "    - HID: intel-ish-hid: Fix -Wcast-function-type-strict in",
                            "      devm_ishtp_alloc_workqueue()",
                            "    - xfs: set max_agbno to allow sparse alloc of last full inode chunk",
                            "    - selftests/bpf: Test invalid narrower ctx load",
                            "    - mm/page_alloc/vmstat: simplify refresh_cpu_vm_stats change detection",
                            "    - mm/page_alloc: batch page freeing in decay_pcp_high",
                            "    - ata: libata-sata: Improve link_power_management_supported sysfs",
                            "      attribute",
                            "    - igc: Restore default Qbv schedule when changing channels",
                            "    - vsock/virtio: Coalesce only linear skb",
                            "    - platform/x86/amd: Fix memory leak in wbrf_record()",
                            "    - drm/imagination: Wait for FW trace update command completion",
                            "    - ice: Fix persistent failure in ice_get_rxfh",
                            "    - sched/fair: Fix pelt clock sync when entering idle",
                            "    - drm/nouveau: add missing DCB connector types",
                            "    - drm/nouveau: implement missing DCB connector types; gracefully handle",
                            "      unknown connectors",
                            "    - dpll: Prevent duplicate registrations",
                            "    - mei: trace: treat reg parameter as string",
                            "    - s390/ap: Fix wrong APQN fill calculation",
                            "    - net: sfp: add potron quirk to the H-COM SPP425H-GAB4 SFP+ Stick",
                            "    - gpio: cdev: Correct return code on memory allocation failure",
                            "    - dmaengine: ti: k3-udma: Enable second resource range for BCDMA and",
                            "      PKTDMA",
                            "    - exfat: fix refcount leak in exfat_find",
                            "    - accel/ivpu: Fix race condition when unbinding BOs",
                            "    - btrfs: fix racy bitfield write in btrfs_clear_space_info_full()",
                            "    - vsock/virtio: Move length check to callers of virtio_vsock_skb_rx_put()",
                            "    - vsock/virtio: Rename virtio_vsock_alloc_skb()",
                            "    - vsock/virtio: Move SKB allocation lower-bound check to callers",
                            "    - vsock/virtio: Rename virtio_vsock_skb_rx_put()",
                            "    - vhost/vsock: Allocate nonlinear SKBs for handling large receive buffers",
                            "    - vsock/virtio: Allocate nonlinear SKBs for handling large transmit",
                            "      buffers",
                            "    - net: Introduce skb_copy_datagram_from_iter_full()",
                            "    - vsock/virtio: Fix message iterator handling on transmit path",
                            "    - Upstream stable to v6.6.122, v6.12.67, v6.12.68",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-38591",
                            "    - bpf: Reject narrower access to pointer ctx fields",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23035",
                            "    - net/mlx5e: Pass netdev to mlx5e_destroy_netdev instead of priv",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22996",
                            "    - net/mlx5e: Don't store mlx5e_priv in mlx5e_dev devlink priv",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23000",
                            "    - net/mlx5e: Fix crash on profile change rollback failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23053",
                            "    - NFS: Fix a deadlock involving nfs_release_folio()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23050",
                            "    - pNFS: Fix a deadlock when returning a delegation during open()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23005",
                            "    - x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2024-58097",
                            "    - wifi: ath11k: fix RCU stall while reaping monitor destination ring",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-68365",
                            "    - fs/ntfs3: Initialize allocated memory before use",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-37926",
                            "    - ksmbd: fix use-after-free in ksmbd_session_rpc_open",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23030",
                            "    - phy: rockchip: inno-usb2: Fix a double free bug in",
                            "      rockchip_usb2phy_probe()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23025",
                            "    - mm/page_alloc: prevent pcp corruption with SMP=n",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71186",
                            "    - dmaengine: stm32: dmamux: fix device leak on route allocation",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23078",
                            "    - ALSA: scarlett2: Fix buffer overflow in config retrieval",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23142",
                            "    - mm/damon/sysfs-scheme: cleanup access_pattern subdirs on scheme dir",
                            "      setup failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23075",
                            "    - can: esd_usb: esd_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-68725",
                            "    - bpf: Do not let BPF test infra emit invalid GSO types to stack",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23097",
                            "    - migrate: correct lock ordering for hugetlb file folios",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23108",
                            "    - can: usb_8dev: usb_8dev_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23080",
                            "    - can: mcba_usb: mcba_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23061",
                            "    - can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23058",
                            "    - can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23085",
                            "    - irqchip/gic-v3-its: Avoid truncating memory addresses",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23116",
                            "    - pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23098",
                            "    - netrom: fix double-free in nr_route_frame()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23063",
                            "    - uacce: ensure safe queue release with state management",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23056",
                            "    - uacce: implement mremap in uacce_vm_ops to return -EPERM",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23094",
                            "    - uacce: fix isolate sysfs check condition",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23096",
                            "    - uacce: fix cdev handling in the cleanup path",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23091",
                            "    - intel_th: fix device leak on output open()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23088",
                            "    - tracing: Fix crash on synthetic stacktrace field usage",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23090",
                            "    - slimbus: core: fix device reference leak on report present",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23128",
                            "    - arm64: Set __nocfi on swsusp_arch_resume()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23107",
                            "    - arm64/fpsimd: signal: Allocate SSVE storage when restoring ZA",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23073",
                            "    - wifi: rsi: Fix memory corruption due to not set vif driver data size",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23135",
                            "    - wifi: ath12k: fix dma_free_coherent() pointer",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23133",
                            "    - wifi: ath10k: fix dma_free_coherent() pointer",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71200",
                            "    - mmc: sdhci-of-dwcmshc: Prevent illegal clock reduction in HS200/HS400",
                            "      mode",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23089",
                            "    - ALSA: usb-audio: Fix use-after-free in snd_usb_mixer_free()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23076",
                            "    - ALSA: ctxfi: Fix potential OOB access in audio mixer handling",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71199",
                            "    - iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc",
                            "      driver",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23101",
                            "    - leds: led-class: Only Add LED to leds_list when it is fully ready",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23064",
                            "    - net/sched: act_ife: avoid possible NULL deref",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23086",
                            "    - vsock/virtio: cap TX credit to local buffer size",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23069",
                            "    - vsock/virtio: fix potential underflow in virtio_transport_get_credit()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23119",
                            "    - bonding: provide a net pointer to __skb_flow_dissect()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23084",
                            "    - be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23124",
                            "    - ipv6: annotate data-race in ndisc_router_discovery()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23121",
                            "    - mISDN: annotate data-race around dev->work",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23126",
                            "    - netdevsim: fix a race issue related to the operation on bpf_bound_progs",
                            "      list",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23059",
                            "    - scsi: qla2xxx: Sanitize payload size to prevent member overflow",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23110",
                            "    - scsi: core: Wake up the error handler when final completions race",
                            "      against each other",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23071",
                            "    - regmap: Fix race condition in hwspinlock irqsave routine",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23068",
                            "    - spi: spi-sprd-adi: Fix double free in probe error path",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23123",
                            "    - interconnect: debugfs: initialize src_node and dst_node to empty strings",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71198",
                            "    - iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event",
                            "      detection",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23113",
                            "    - io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23062",
                            "    - platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23131",
                            "    - platform/x86: hp-bioscfg: Fix kobject warnings for empty attribute names",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23087",
                            "    - scsi: xen: scsiback: Fix potential memory leak in scsiback_remove()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71197",
                            "    - w1: therm: Fix off-by-one buffer overflow in alarms_store",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23105",
                            "    - net/sched: qfq: Use cl_is_active to determine whether class is active in",
                            "      qfq_rm_from_ag",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23103",
                            "    - ipvlan: Make the addrs_lock be per port",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23120",
                            "    - l2tp: avoid one data-race in l2tp_tunnel_del_work()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23083",
                            "    - fou: Don't allow 0 for FOU_ATTR_IPPROTO.",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23095",
                            "    - gue: Fix skb memleak with inner IP protocol 0.",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23125",
                            "    - sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23099",
                            "    - bonding: limit BOND_MODE_8023AD to Ethernet devices",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71194",
                            "    - btrfs: fix deadlock in wait_current_trans() due to ignored transaction",
                            "      type",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71185",
                            "    - dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23026",
                            "    - dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71188",
                            "    - dmaengine: lpc18xx-dmamux: fix device leak on route allocation",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71163",
                            "    - dmaengine: idxd: fix device leaks on compat bind and unbind",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71189",
                            "    - dmaengine: dw: dmamux: fix OF node leak on route allocation failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71190",
                            "    - dmaengine: bcm-sba-raid: fix device leak on probe",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71191",
                            "    - dmaengine: at_hdmac: fix device leak on of_dma_xlate()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23049",
                            "    - drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23144",
                            "    - mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23145",
                            "    - ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22997",
                            "    - net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session",
                            "      upon receiving the second rts",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23031",
                            "    - can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23032",
                            "    - null_blk: fix kmemleak by releasing references to fault configfs items",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23033",
                            "    - dmaengine: omap-dma: fix dma_pool resource leak in error paths",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71196",
                            "    - phy: stm32-usphyc: Fix off by one in probe()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71193",
                            "    - phy: qcom-qusb2: Fix NULL pointer dereference on early suspend",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71162",
                            "    - dmaengine: tegra-adma: Fix use-after-free",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71195",
                            "    - dmaengine: xilinx: xdma: Fix regmap max_register",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23006",
                            "    - ASoC: tlv320adcx140: fix null pointer",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22999",
                            "    - net/sched: sch_qfq: do not free existing class in qfq_change_class()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23010",
                            "    - ipv6: Fix use-after-free in inet6_addr_del().",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23054",
                            "    - net: hv_netvsc: reject RSS hash key programming without RX indirection",
                            "      table",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23011",
                            "    - ipv4: ip_gre: make ipgre_header() robust",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23001",
                            "    - macvlan: fix possible UAF in macvlan_forward_source()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23003",
                            "    - ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23141",
                            "    - btrfs: send: check for inline extents in range_is_hole_in_parent()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22998",
                            "    - nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23037",
                            "    - can: etas_es58x: allow partial RX URB allocation to succeed",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23038",
                            "    - pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058)",
                            "    - NFSD: Fix permission check for read access to executable-only files",
                            "    - 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",
                            "    - counter: 104-quad-8: Fix incorrect return value in IRQ handler",
                            "    - drm/pl111: Fix error handling in pl111_amba_probe",
                            "    - drm/radeon: Remove __counted_by from ClockInfoArray.clockInfo[]",
                            "    - gpio: rockchip: mark the GPIO controller as sleeping",
                            "    - pinctrl: qcom: lpass-lpi: mark the GPIO controller as sleeping",
                            "    - net: Add locking to protect skb->dev access in ip_output",
                            "    - nfsd: Fix a regression in nfsd_setattr()",
                            "    - nfsd: Fix NFSv3 atomicity bugs in nfsd_setattr()",
                            "    - nfsd: set security label during create operations",
                            "    - 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",
                            "    - dm-snapshot: fix 'scheduling while atomic' on real-time kernels",
                            "    - NFSv4: ensure the open stateid seqid doesn't go backwards",
                            "    - NFS: Fix up the automount fs_context to use the correct cred",
                            "    - smb/client: fix NT_STATUS_UNABLE_TO_FREE_VM value",
                            "    - smb/client: fix NT_STATUS_DEVICE_DOOR_OPEN value",
                            "    - smb/client: fix NT_STATUS_NO_DATA_DETECTED value",
                            "    - scsi: ipr: Enable/disable IRQD_NO_BALANCING during reset",
                            "    - scsi: ufs: core: Fix EH failure after W-LUN resume error",
                            "    - 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",
                            "    - arm64: dts: imx8mp: Fix LAN8740Ai PHY reference clock on DH electronics",
                            "      i.MX8M Plus DHCOM",
                            "    - netfilter: nft_synproxy: avoid possible data-race on update operation",
                            "    - gpio: pca953x: Add support for level-triggered interrupts",
                            "    - gpio: pca953x: handle short interrupt pulses on PCAL devices",
                            "    - netfilter: nf_tables: fix memory leak in nf_tables_newrule()",
                            "    - 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",
                            "    - net: wwan: iosm: Fix memory leak in ipc_mux_deinit()",
                            "    - bnxt_en: Fix potential data corruption with HW GRO/LRO",
                            "    - net: enetc: fix build warning when PAGE_SIZE is greater than 128K",
                            "    - arp: do not assume dev_hard_header() does not change skb->head",
                            "    - ALSA: ac97bus: Use guard() for mutex locks",
                            "    - NFS: trace: show TIMEDOUT instead of 0x6e",
                            "    - nfs_common: factor out nfs_errtbl and nfs_stat_to_errno",
                            "    - NFSD: Remove NFSERR_EAGAIN",
                            "    - bpf: Fix an issue in bpf_prog_test_run_xdp when page size greater than",
                            "      4K",
                            "    - bpf: Make variables in bpf_prog_test_run_xdp less confusing",
                            "    - bpf: Support specifying linear xdp packet data size for",
                            "      BPF_PROG_TEST_RUN",
                            "    - powercap: fix race condition in register_control_type()",
                            "    - powercap: fix sscanf() error return value handling",
                            "    - ALSA: usb-audio: Update for native DSD support quirks",
                            "    - ASoC: amd: yc: Add quirk for Honor MagicBook X16 2025",
                            "    - ASoC: fsl_sai: Add missing registers to cache default",
                            "    - scsi: sg: Fix occasional bogus elapsed time that exceeds timeout",
                            "    - bpf: test_run: Fix ctx leak in bpf_prog_test_run_xdp error path",
                            "    - ASoC: rockchip: Fix Wvoid-pointer-to-enum-cast warning (again)",
                            "    - btrfs: tracepoints: use btrfs_root_id() to get the id of a root",
                            "    - crypto: qat - fix duplicate restarting msg during AER error",
                            "    - netfilter: nft_set_pipapo: fix range overlap detection",
                            "    - vsock: Make accept()ed sockets use custom setsockopt()",
                            "    - btrfs: only enforce free space tree if v1 cache is required for bs < ps",
                            "      cases",
                            "    - riscv: pgtable: Cleanup useless VA_USER_XXX definitions",
                            "    - idpf: keep the netdev when a reset fails",
                            "    - net: sfp: extend Potron XGSPON quirk to cover additional EEPROM variant",
                            "    - ata: libata-core: Disable LPM on ST2000DM008-2FR102",
                            "    - drm/amd/display: Fix DP no audio issue",
                            "    - ALSA: hda/realtek: enable woofer speakers on Medion NM14LNL",
                            "    - spi: cadence-quadspi: Prevent lost complete() call during indirect read",
                            "    - ALSA: hda: intel-dsp-config: Prefer legacy driver as fallback",
                            "    - Upstream stable to v6.6.121, v6.12.66",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71184",
                            "    - btrfs: fix NULL dereference on root when tracing inode eviction",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71182",
                            "    - can: j1939: make j1939_session_activate() fail if device is no longer",
                            "      registered",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71160",
                            "    - netfilter: nf_tables: avoid chain re-validation if possible",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22994",
                            "    - bpf: Fix reference count leak in bpf_prog_test_run_xdp()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23140",
                            "    - bpf, test_run: Subtract size of xdp_frame from allowed metadata size",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71192",
                            "    - ALSA: ac97: fix a double free in snd_ac97_controller_register()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23021",
                            "    - net: usb: pegasus: fix memory leak in update_eth_regs_async()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22976",
                            "    - net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate",
                            "      in qfq_reset",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22979",
                            "    - net: fix memory leak in skb_segment_list for GRO packets",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22977",
                            "    - net: sock: fix hardened usercopy panic in sock_recv_errqueue",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22982",
                            "    - net: mscc: ocelot: Fix crash when adding interface under a lag",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23019",
                            "    - net: marvell: prestera: fix NULL dereference on devlink_alloc() failure",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23139",
                            "    - netfilter: nf_conncount: update last_gc only when GC has been performed",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-40149",
                            "    - tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock().",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-68803",
                            "    - NFSD: NFSv4 file creation neglects setting ACL",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23047",
                            "    - libceph: make calc_target() set t->paused, not just clear it",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23136",
                            "    - libceph: reset sparse-read state in osd_fault()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22992",
                            "    - libceph: return the handler error from mon_handle_auth_done()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22991",
                            "    - libceph: make free_choose_arg_map() resilient to partial allocation",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22990",
                            "    - libceph: replace overzealous BUG_ON in osdmap_apply_incremental()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22984",
                            "    - libceph: prevent potential out-of-bounds reads in handle_auth_done()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22978",
                            "    - wifi: avoid kernel-infoleak from struct iw_point",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71180",
                            "    - counter: interrupt-cnt: Drop IRQF_NO_THREAD flag",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71183",
                            "    - btrfs: always detect conflicting inodes when logging inode refs",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23020",
                            "    - net: 3com: 3c59x: fix possible null dereference in vortex_probe1()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22980",
                            "    - nfsd: provide locking for v4_end_grace",
                            "  * CVE-2024-50004",
                            "    - drm/amd/display: update DML2 policy",
                            "      EnhancedPrefetchScheduleAccelerationFinal DCN35",
                            "  * CVE-2026-23274",
                            "    - netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels",
                            "  * CVE-2026-23351",
                            "    - netfilter: nft_set_pipapo: split gc into unlink and reclaim phase",
                            "  * CVE-2026-23231",
                            "    - netfilter: nf_tables: fix use-after-free in nf_tables_addchain()",
                            "  * macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "    path (LP: #2144380) // CVE-2026-23209",
                            "    - macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "      path",
                            "  * CVE-2026-23112",
                            "    - nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-114.114~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2147981,
                            2148397,
                            2146465,
                            2147982,
                            2147447,
                            2147400,
                            2147065,
                            2144577,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2145171,
                            2144060,
                            2144006,
                            2144914,
                            2143152,
                            2143083,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144380
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 17 Apr 2026 10:49:46 +0200"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23231",
                                "url": "https://ubuntu.com/security/CVE-2026-23231",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-03-04 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23209",
                                "url": "https://ubuntu.com/security/CVE-2026-23209",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23112",
                                "url": "https://ubuntu.com/security/CVE-2026-23112",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-111.111~22.04.1 -proposed tracker (LP: #2147889)",
                            "",
                            "  [ Ubuntu: 6.8.0-111.111 ]",
                            "",
                            "  * noble/linux: 6.8.0-111.111 -proposed tracker (LP: #2147890)",
                            "  * CVE-2026-23231",
                            "    - netfilter: nf_tables: fix use-after-free in nf_tables_addchain()",
                            "  * macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "    path (LP: #2144380) // CVE-2026-23209",
                            "    - macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "      path",
                            "  * CVE-2026-23112",
                            "    - nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-111.111~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2147889,
                            2147890,
                            2144380
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Tue, 14 Apr 2026 17:47:01 +0200"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2024-36347",
                                "url": "https://ubuntu.com/security/CVE-2024-36347",
                                "cve_description": "Improper signature verification in AMD CPU ROM microcode patch loader may allow an attacker with local administrator privilege to load malicious microcode, potentially resulting in loss of integrity of x86 instruction execution, loss of confidentiality and integrity of data in x86 CPU privileged context and compromise of SMM execution environment.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-06-27 23:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40164",
                                "url": "https://ubuntu.com/security/CVE-2025-40164",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Fix using smp_processor_id() in preemptible code warnings  Syzbot reported the following warning:  BUG: using smp_processor_id() in preemptible [00000000] code: dhcpcd/2879 caller is usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331 CPU: 1 UID: 0 PID: 2879 Comm: dhcpcd Not tainted 6.15.0-rc4-syzkaller-00098-g615dca38c2ea #0 PREEMPT(voluntary) Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120  check_preemption_disabled+0xd0/0xe0 lib/smp_processor_id.c:49  usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331  usbnet_resume_rx+0x4b/0x170 drivers/net/usb/usbnet.c:708  usbnet_change_mtu+0x1be/0x220 drivers/net/usb/usbnet.c:417  __dev_set_mtu net/core/dev.c:9443 [inline]  netif_set_mtu_ext+0x369/0x5c0 net/core/dev.c:9496  netif_set_mtu+0xb0/0x160 net/core/dev.c:9520  dev_set_mtu+0xae/0x170 net/core/dev_api.c:247  dev_ifsioc+0xa31/0x18d0 net/core/dev_ioctl.c:572  dev_ioctl+0x223/0x10e0 net/core/dev_ioctl.c:821  sock_do_ioctl+0x19d/0x280 net/socket.c:1204  sock_ioctl+0x42f/0x6a0 net/socket.c:1311  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+0x190/0x200 fs/ioctl.c:892  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  For historical and portability reasons, the netif_rx() is usually run in the softirq or interrupt context, this commit therefore add local_bh_disable/enable() protection in the usbnet_resume_rx().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-12 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40325",
                                "url": "https://ubuntu.com/security/CVE-2025-40325",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid10: wait barrier before returning discard request with REQ_NOWAIT  raid10_handle_discard should wait barrier before returning a discard bio which has REQ_NOWAIT. And there is no need to print warning calltrace if a discard bio has REQ_NOWAIT flag. Quality engineer usually checks dmesg and reports error if dmesg has warning/error calltrace.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-18 07:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68206",
                                "url": "https://ubuntu.com/security/CVE-2025-68206",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_ct: add seqadj extension for natted connections  Sequence adjustment may be required for FTP traffic with PASV/EPSV modes. due to need to re-write packet payload (IP, port) on the ftp control connection. This can require changes to the TCP length and expected seq / ack_seq.  The easiest way to reproduce this issue is with PASV mode. Example ruleset: table inet ftp_nat {         ct helper ftp_helper {                 type \"ftp\" protocol tcp                 l3proto inet         }          chain prerouting {                 type filter hook prerouting priority 0; policy accept;                 tcp dport 21 ct state new ct helper set \"ftp_helper\"         } } table ip nat {         chain prerouting {                 type nat hook prerouting priority -100; policy accept;                 tcp dport 21 dnat ip prefix to ip daddr map { \t\t\t192.168.100.1 : 192.168.13.2/32 }         }          chain postrouting {                 type nat hook postrouting priority 100 ; policy accept;                 tcp sport 21 snat ip prefix to ip saddr map { \t\t\t192.168.13.2 : 192.168.100.1/32 }         } }  Note that the ftp helper gets assigned *after* the dnat setup.  The inverse (nat after helper assign) is handled by an existing check in nf_nat_setup_info() and will not show the problem.  Topoloy:   +-------------------+     +----------------------------------+  | FTP: 192.168.13.2 | <-> | NAT: 192.168.13.3, 192.168.100.1 |  +-------------------+     +----------------------------------+                                       |                          +-----------------------+                          | Client: 192.168.100.2 |                          +-----------------------+  ftp nat changes do not work as expected in this case: Connected to 192.168.100.1. [..] ftp> epsv EPSV/EPRT on IPv4 off. ftp> ls 227 Entering passive mode (192,168,100,1,209,129). 421 Service not available, remote server has closed connection.  Kernel logs: Missing nfct_seqadj_ext_add() setup call WARNING: CPU: 1 PID: 0 at net/netfilter/nf_conntrack_seqadj.c:41 [..]  __nf_nat_mangle_tcp_packet+0x100/0x160 [nf_nat]  nf_nat_ftp+0x142/0x280 [nf_nat_ftp]  help+0x4d1/0x880 [nf_conntrack_ftp]  nf_confirm+0x122/0x2e0 [nf_conntrack]  nf_hook_slow+0x3c/0xb0  ..  Fix this by adding the required extension when a conntrack helper is assigned to a connection that has a nat binding.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15: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-71135",
                                "url": "https://ubuntu.com/security/CVE-2025-71135",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid5: fix possible null-pointer dereferences in raid5_store_group_thread_cnt()  The variable mddev->private is first assigned to conf and then checked:    conf = mddev->private;   if (!conf) ...  If conf is NULL, then mddev->private is also NULL. In this case, null-pointer dereferences can occur when calling raid5_quiesce():    raid5_quiesce(mddev, true);   raid5_quiesce(mddev, false);  since mddev->private is assigned to conf again in raid5_quiesce(), and conf is dereferenced in several places, for example:    conf->quiesce = 0;   wake_up(&conf->wait_for_quiescent);  To fix this issue, the function should unlock mddev and return before invoking raid5_quiesce() when conf is NULL, following the existing pattern in raid5_change_consistency_policy().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38234",
                                "url": "https://ubuntu.com/security/CVE-2025-38234",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/rt: Fix race in push_rt_task  Overview ======== When a CPU chooses to call push_rt_task and picks a task to push to another CPU's runqueue then it will call find_lock_lowest_rq method which would take a double lock on both CPUs' runqueues. If one of the locks aren't readily available, it may lead to dropping the current runqueue lock and reacquiring both the locks at once. During this window it is possible that the task is already migrated and is running on some other CPU. These cases are already handled. However, if the task is migrated and has already been executed and another CPU is now trying to wake it up (ttwu) such that it is queued again on the runqeue (on_rq is 1) and also if the task was run by the same CPU, then the current checks will pass even though the task was migrated out and is no longer in the pushable tasks list.  Crashes ======= This bug resulted in quite a few flavors of crashes triggering kernel panics with various crash signatures such as assert failures, page faults, null pointer dereferences, and queue corruption errors all coming from scheduler itself.  Some of the crashes: -> kernel BUG at kernel/sched/rt.c:1616! BUG_ON(idx >= MAX_RT_PRIO)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? pick_next_task_rt+0x6e/0x1d0    ? do_error_trap+0x64/0xa0    ? pick_next_task_rt+0x6e/0x1d0    ? exc_invalid_op+0x4c/0x60    ? pick_next_task_rt+0x6e/0x1d0    ? asm_exc_invalid_op+0x12/0x20    ? pick_next_task_rt+0x6e/0x1d0    __schedule+0x5cb/0x790    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: kernel NULL pointer dereference, address: 00000000000000c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? __warn+0x8a/0xe0    ? exc_page_fault+0x3d6/0x520    ? asm_exc_page_fault+0x1e/0x30    ? pick_next_task_rt+0xb5/0x1d0    ? pick_next_task_rt+0x8c/0x1d0    __schedule+0x583/0x7e0    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: unable to handle page fault for address: ffff9464daea5900    kernel BUG at kernel/sched/rt.c:1861! BUG_ON(rq->cpu != task_cpu(p))  -> kernel BUG at kernel/sched/rt.c:1055! BUG_ON(!rq->nr_running)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? dequeue_top_rt_rq+0xa2/0xb0    ? do_error_trap+0x64/0xa0    ? dequeue_top_rt_rq+0xa2/0xb0    ? exc_invalid_op+0x4c/0x60    ? dequeue_top_rt_rq+0xa2/0xb0    ? asm_exc_invalid_op+0x12/0x20    ? dequeue_top_rt_rq+0xa2/0xb0    dequeue_rt_entity+0x1f/0x70    dequeue_task_rt+0x2d/0x70    __schedule+0x1a8/0x7e0    ? blk_finish_plug+0x25/0x40    schedule+0x3c/0xb0    futex_wait_queue_me+0xb6/0x120    futex_wait+0xd9/0x240    do_futex+0x344/0xa90    ? get_mm_exe_file+0x30/0x60    ? audit_exe_compare+0x58/0x70    ? audit_filter_rules.constprop.26+0x65e/0x1220    __x64_sys_futex+0x148/0x1f0    do_syscall_64+0x30/0x80    entry_SYSCALL_64_after_hwframe+0x62/0xc7  -> BUG: unable to handle page fault for address: ffff8cf3608bc2c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? spurious_kernel_fault+0x171/0x1c0    ? exc_page_fault+0x3b6/0x520    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? asm_exc_page_fault+0x1e/0x30    ? _cond_resched+0x15/0x30    ? futex_wait_queue_me+0xc8/0x120    ? futex_wait+0xd9/0x240    ? try_to_wake_up+0x1b8/0x490    ? futex_wake+0x78/0x160    ? do_futex+0xcd/0xa90    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? plist_del+0x6a/0xd0    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? dequeue_pushable_task+0x20/0x70    ? __schedule+0x382/0x7e0    ? asm_sysvec_reschedule_i ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-07-04 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68811",
                                "url": "https://ubuntu.com/security/CVE-2025-68811",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: use rc_pageoff for memcpy byte offset  svc_rdma_copy_inline_range added rc_curpage (page index) to the page base instead of the byte offset rc_pageoff. Use rc_pageoff so copies land within the current page.  Found by ZeroPath (https://zeropath.com)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68810",
                                "url": "https://ubuntu.com/security/CVE-2025-68810",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot  Reject attempts to disable KVM_MEM_GUEST_MEMFD on a memslot that was initially created with a guest_memfd binding, as KVM doesn't support toggling KVM_MEM_GUEST_MEMFD on existing memslots.  KVM prevents enabling KVM_MEM_GUEST_MEMFD, but doesn't prevent clearing the flag.  Failure to reject the new memslot results in a use-after-free due to KVM not unbinding from the guest_memfd instance.  Unbinding on a FLAGS_ONLY change is easy enough, and can/will be done as a hardening measure (in anticipation of KVM supporting dirty logging on guest_memfd at some point), but fixing the use-after-free would only address the immediate symptom.    ==================================================================   BUG: KASAN: slab-use-after-free in kvm_gmem_release+0x362/0x400 [kvm]   Write of size 8 at addr ffff8881111ae908 by task repro/745    CPU: 7 UID: 1000 PID: 745 Comm: repro Not tainted 6.18.0-rc6-115d5de2eef3-next-kasan #3 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   Call Trace:    <TASK>    dump_stack_lvl+0x51/0x60    print_report+0xcb/0x5c0    kasan_report+0xb4/0xe0    kvm_gmem_release+0x362/0x400 [kvm]    __fput+0x2fa/0x9d0    task_work_run+0x12c/0x200    do_exit+0x6ae/0x2100    do_group_exit+0xa8/0x230    __x64_sys_exit_group+0x3a/0x50    x64_sys_call+0x737/0x740    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f581f2eac31    </TASK>    Allocated by task 745 on cpu 6 at 9.746971s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_kmalloc+0x77/0x90    kvm_set_memory_region.part.0+0x652/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53    Freed by task 745 on cpu 6 at 9.747467s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_save_free_info+0x37/0x50    __kasan_slab_free+0x3b/0x60    kfree+0xf5/0x440    kvm_set_memslot+0x3c2/0x1160 [kvm]    kvm_set_memory_region.part.0+0x86a/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71109",
                                "url": "https://ubuntu.com/security/CVE-2025-71109",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  MIPS: ftrace: Fix memory corruption when kernel is located beyond 32 bits  Since commit e424054000878 (\"MIPS: Tracing: Reduce the overhead of dynamic Function Tracer\"), the macro UASM_i_LA_mostly has been used, and this macro can generate more than 2 instructions. At the same time, the code in ftrace assumes that no more than 2 instructions can be generated, which is why it stores them in an int[2] array. However, as previously noted, the macro UASM_i_LA_mostly (and now UASM_i_LA) causes a buffer overflow when _mcount is beyond 32 bits. This leads to corruption of the variables located in the __read_mostly section.  This corruption was observed because the variable __cpu_primary_thread_mask was corrupted, causing a hang very early during boot.  This fix prevents the corruption by avoiding the generation of instructions if they could exceed 2 instructions in length. Fortunately, insn_la_mcount is only used if the instrumented code is located outside the kernel code section, so dynamic ftrace can still be used, albeit in a more limited scope. This is still preferable to corrupting memory and/or crashing the kernel.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68770",
                                "url": "https://ubuntu.com/security/CVE-2025-68770",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bnxt_en: Fix XDP_TX path  For XDP_TX action in bnxt_rx_xdp(), clearing of the event flags is not correct.  __bnxt_poll_work() -> bnxt_rx_pkt() -> bnxt_rx_xdp() may be looping within NAPI and some event flags may be set in earlier iterations.  In particular, if BNXT_TX_EVENT is set earlier indicating some XDP_TX packets are ready and pending, it will be cleared if it is XDP_TX action again.  Normally, we will set BNXT_TX_EVENT again when we successfully call __bnxt_xmit_xdp().  But if the TX ring has no more room, the flag will not be set.  This will cause the TX producer to be ahead but the driver will not hit the TX doorbell.  For multi-buf XDP_TX, there is no need to clear the event flags and set BNXT_AGG_EVENT.  The BNXT_AGG_EVENT flag should have been set earlier in bnxt_rx_pkt().  The visible symptom of this is that the RX ring associated with the TX XDP ring will eventually become empty and all packets will be dropped. Because this condition will cause the driver to not refill the RX ring seeing that the TX ring has forever pending XDP_TX packets.  The fix is to only clear BNXT_RX_EVENT when we have successfully called __bnxt_xmit_xdp().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71072",
                                "url": "https://ubuntu.com/security/CVE-2025-71072",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  shmem: fix recovery on rename failures  maple_tree insertions can fail if we are seriously short on memory; simple_offset_rename() does not recover well if it runs into that. The same goes for simple_offset_rename_exchange().  Moreover, shmem_whiteout() expects that if it succeeds, the caller will progress to d_move(), i.e. that shmem_rename2() won't fail past the successful call of shmem_whiteout().  Not hard to fix, fortunately - mtree_store() can't fail if the index we are trying to store into is already present in the tree as a singleton.  For simple_offset_rename_exchange() that's enough - we just need to be careful about the order of operations.  For simple_offset_rename() solution is to preinsert the target into the tree for new_dir; the rest can be done without any potentially failing operations.  That preinsertion has to be done in shmem_rename2() rather than in simple_offset_rename() itself - otherwise we'd need to deal with the possibility of failure after successful shmem_whiteout().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68374",
                                "url": "https://ubuntu.com/security/CVE-2025-68374",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: fix rcu protection in md_wakeup_thread  We attempted to use RCU to protect the pointer 'thread', but directly passed the value when calling md_wakeup_thread(). This means that the RCU pointer has been acquired before rcu_read_lock(), which renders rcu_read_lock() ineffective and could lead to a use-after-free.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68378",
                                "url": "https://ubuntu.com/security/CVE-2025-68378",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix stackmap overflow check in __bpf_get_stackid()  Syzkaller reported a KASAN slab-out-of-bounds write in __bpf_get_stackid() when copying stack trace data. The issue occurs when the perf trace  contains more stack entries than the stack map bucket can hold,  leading to an out-of-bounds write in the bucket's data array.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-57795",
                                "url": "https://ubuntu.com/security/CVE-2024-57795",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Remove the direct link to net_device  The similar patch in siw is in the link: https://git.kernel.org/rdma/rdma/c/16b87037b48889  This problem also occurred in RXE. The following analyze this problem. In the following Call Traces: \" BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 net/core/dev.c:8782 Read of size 4 at addr ffff8880554640b0 by task kworker/1:4/5295  CPU: 1 UID: 0 PID: 5295 Comm: kworker/1:4 Not tainted 6.12.0-rc3-syzkaller-00399-g9197b73fd7bb #0 Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: infiniband ib_cache_event_task 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:377 [inline]  print_report+0x169/0x550 mm/kasan/report.c:488  kasan_report+0x143/0x180 mm/kasan/report.c:601  dev_get_flags+0x188/0x1d0 net/core/dev.c:8782  rxe_query_port+0x12d/0x260 drivers/infiniband/sw/rxe/rxe_verbs.c:60  __ib_query_port drivers/infiniband/core/device.c:2111 [inline]  ib_query_port+0x168/0x7d0 drivers/infiniband/core/device.c:2143  ib_cache_update+0x1a9/0xb80 drivers/infiniband/core/cache.c:1494  ib_cache_event_task+0xf3/0x1e0 drivers/infiniband/core/cache.c:1568  process_one_work kernel/workqueue.c:3229 [inline]  process_scheduled_works+0xa65/0x1850 kernel/workqueue.c:3310  worker_thread+0x870/0xd30 kernel/workqueue.c:3391  kthread+0x2f2/0x390 kernel/kthread.c:389  ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:147  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244  </TASK> \"  1). In the link [1],  \"  infiniband syz2: set down \"  This means that on 839.350575, the event ib_cache_event_task was sent andi queued in ib_wq.  2). In the link [1],  \"  team0 (unregistering): Port device team_slave_0 removed \"  It indicates that before 843.251853, the net device should be freed.  3). In the link [1],  \"  BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 \"  This means that on 850.559070, this slab-use-after-free problem occurred.  In all, on 839.350575, the event ib_cache_event_task was sent and queued in ib_wq,  before 843.251853, the net device veth was freed.  on 850.559070, this event was executed, and the mentioned freed net device was called. Thus, the above call trace occurred.  [1] https://syzkaller.appspot.com/x/log.txt?x=12e7025f980000",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-01-15 13: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-71140",
                                "url": "https://ubuntu.com/security/CVE-2025-71140",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: mediatek: vcodec: Use spinlock for context list protection lock  Previously a mutex was added to protect the encoder and decoder context lists from unexpected changes originating from the SCP IP block, causing the context pointer to go invalid, resulting in a NULL pointer dereference in the IPI handler.  Turns out on the MT8173, the VPU IPI handler is called from hard IRQ context. This causes a big warning from the scheduler. This was first reported downstream on the ChromeOS kernels, but is also reproducible on mainline using Fluster with the FFmpeg v4l2m2m decoders. Even though the actual capture format is not supported, the affected code paths are triggered.  Since this lock just protects the context list and operations on it are very fast, it should be OK to switch to a spinlock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-68772",
                                "url": "https://ubuntu.com/security/CVE-2025-68772",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating compression context during writeback  Bai, Shuangpeng <sjb7183@psu.edu> reported a bug as below:  Oops: divide error: 0000 [#1] SMP KASAN PTI CPU: 0 UID: 0 PID: 11441 Comm: syz.0.46 Not tainted 6.17.0 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP: 0010:f2fs_all_cluster_page_ready+0x106/0x550 fs/f2fs/compress.c:857 Call Trace:  <TASK>  f2fs_write_cache_pages fs/f2fs/data.c:3078 [inline]  __f2fs_write_data_pages fs/f2fs/data.c:3290 [inline]  f2fs_write_data_pages+0x1c19/0x3600 fs/f2fs/data.c:3317  do_writepages+0x38e/0x640 mm/page-writeback.c:2634  filemap_fdatawrite_wbc mm/filemap.c:386 [inline]  __filemap_fdatawrite_range mm/filemap.c:419 [inline]  file_write_and_wait_range+0x2ba/0x3e0 mm/filemap.c:794  f2fs_do_sync_file+0x6e6/0x1b00 fs/f2fs/file.c:294  generic_write_sync include/linux/fs.h:3043 [inline]  f2fs_file_write_iter+0x76e/0x2700 fs/f2fs/file.c:5259  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x7e9/0xe00 fs/read_write.c:686  ksys_write+0x19d/0x2d0 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xf7/0x470 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The bug was triggered w/ below race condition:  fsync\t\t\t\tsetattr\t\t\tioctl - f2fs_do_sync_file  - file_write_and_wait_range   - f2fs_write_cache_pages   : inode is non-compressed   : cc.cluster_size =     F2FS_I(inode)->i_cluster_size = 0    - tag_pages_for_writeback \t\t\t\t- f2fs_setattr \t\t\t\t - truncate_setsize \t\t\t\t - f2fs_truncate \t\t\t\t\t\t\t- f2fs_fileattr_set \t\t\t\t\t\t\t - f2fs_setflags_common \t\t\t\t\t\t\t  - set_compress_context \t\t\t\t\t\t\t  : F2FS_I(inode)->i_cluster_size = 4 \t\t\t\t\t\t\t  : set_inode_flag(inode, FI_COMPRESSED_FILE)    - f2fs_compressed_file    : return true    - f2fs_all_cluster_page_ready    : \"pgidx % cc->cluster_size\" trigger dividing 0 issue  Let's change as below to fix this issue: - introduce a new atomic type variable .writeback in structure f2fs_inode_info to track the number of threads which calling f2fs_write_cache_pages(). - use .i_sem lock to protect .writeback update. - check .writeback before update compression context in f2fs_setflags_common() to avoid race w/ ->writepages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15: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-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-71141",
                                "url": "https://ubuntu.com/security/CVE-2025-71141",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/tilcdc: Fix removal actions in case of failed probe  The drm_kms_helper_poll_fini() and drm_atomic_helper_shutdown() helpers should only be called when the device has been successfully registered. Currently, these functions are called unconditionally in tilcdc_fini(), which causes warnings during probe deferral scenarios.  [    7.972317] WARNING: CPU: 0 PID: 23 at drivers/gpu/drm/drm_atomic_state_helper.c:175 drm_atomic_helper_crtc_duplicate_state+0x60/0x68 ... [    8.005820]  drm_atomic_helper_crtc_duplicate_state from drm_atomic_get_crtc_state+0x68/0x108 [    8.005858]  drm_atomic_get_crtc_state from drm_atomic_helper_disable_all+0x90/0x1c8 [    8.005885]  drm_atomic_helper_disable_all from drm_atomic_helper_shutdown+0x90/0x144 [    8.005911]  drm_atomic_helper_shutdown from tilcdc_fini+0x68/0xf8 [tilcdc] [    8.005957]  tilcdc_fini [tilcdc] from tilcdc_pdev_probe+0xb0/0x6d4 [tilcdc]  Fix this by rewriting the failed probe cleanup path using the standard goto error handling pattern, which ensures that cleanup functions are only called on successfully initialized resources. Additionally, remove the now-unnecessary is_registered flag.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 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-71088",
                                "url": "https://ubuntu.com/security/CVE-2025-71088",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fallback earlier on simult connection  Syzkaller reports a simult-connect race leading to inconsistent fallback status:    WARNING: CPU: 3 PID: 33 at net/mptcp/subflow.c:1515 subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Modules linked in:   CPU: 3 UID: 0 PID: 33 Comm: ksoftirqd/3 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:subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Code: 89 ee e8 78 61 3c f6 40 84 ed 75 21 e8 8e 66 3c f6 44 89 fe bf 07 00 00 00 e8 c1 61 3c f6 41 83 ff 07 74 09 e8 76 66 3c f6 90 <0f> 0b 90 e8 6d 66 3c f6 48 89 df e8 e5 ad ff ff 31 ff 89 c5 89 c6   RSP: 0018:ffffc900006cf338 EFLAGS: 00010246   RAX: 0000000000000000 RBX: ffff888031acd100 RCX: ffffffff8b7f2abf   RDX: ffff88801e6ea440 RSI: ffffffff8b7f2aca RDI: 0000000000000005   RBP: 0000000000000000 R08: 0000000000000005 R09: 0000000000000007   R10: 0000000000000004 R11: 0000000000002c10 R12: ffff88802ba69900   R13: 1ffff920000d9e67 R14: ffff888046f81800 R15: 0000000000000004   FS:  0000000000000000(0000) GS:ffff8880d69bc000(0000) knlGS:0000000000000000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 0000560fc0ca1670 CR3: 0000000032c3a000 CR4: 0000000000352ef0   Call Trace:    <TASK>    tcp_data_queue+0x13b0/0x4f90 net/ipv4/tcp_input.c:5197    tcp_rcv_state_process+0xfdf/0x4ec0 net/ipv4/tcp_input.c:6922    tcp_v6_do_rcv+0x492/0x1740 net/ipv6/tcp_ipv6.c:1672    tcp_v6_rcv+0x2976/0x41e0 net/ipv6/tcp_ipv6.c:1918    ip6_protocol_deliver_rcu+0x188/0x1520 net/ipv6/ip6_input.c:438    ip6_input_finish+0x1e4/0x4b0 net/ipv6/ip6_input.c:489    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ip6_input+0x105/0x2f0 net/ipv6/ip6_input.c:500    dst_input include/net/dst.h:471 [inline]    ip6_rcv_finish net/ipv6/ip6_input.c:79 [inline]    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ipv6_rcv+0x264/0x650 net/ipv6/ip6_input.c:311    __netif_receive_skb_one_core+0x12d/0x1e0 net/core/dev.c:5979    __netif_receive_skb+0x1d/0x160 net/core/dev.c:6092    process_backlog+0x442/0x15e0 net/core/dev.c:6444    __napi_poll.constprop.0+0xba/0x550 net/core/dev.c:7494    napi_poll net/core/dev.c:7557 [inline]    net_rx_action+0xa9f/0xfe0 net/core/dev.c:7684    handle_softirqs+0x216/0x8e0 kernel/softirq.c:579    run_ksoftirqd kernel/softirq.c:968 [inline]    run_ksoftirqd+0x3a/0x60 kernel/softirq.c:960    smpboot_thread_fn+0x3f7/0xae0 kernel/smpboot.c:160    kthread+0x3c2/0x780 kernel/kthread.c:463    ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148    ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245    </TASK>  The TCP subflow can process the simult-connect syn-ack packet after transitioning to TCP_FIN1 state, bypassing the MPTCP fallback check, as the sk_state_change() callback is not invoked for * -> FIN_WAIT1 transitions.  That will move the msk socket to an inconsistent status and the next incoming data will hit the reported splat.  Close the race moving the simult-fallback check at the earliest possible stage - that is at syn-ack generation time.  About the fixes tags: [2] was supposed to also fix this issue introduced by [3]. [1] is required as a dependence: it was not explicitly marked as a fix, but it is one and it has already been backported before [3]. In other words, this commit should be backported up to [3], including [2] and [1] if that's not already there.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71065",
                                "url": "https://ubuntu.com/security/CVE-2025-71065",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid potential deadlock  As Jiaming Zhang and syzbot reported, there is potential deadlock in f2fs as below:  Chain exists of:   &sbi->cp_rwsem --> fs_reclaim --> sb_internal#2   Possible unsafe locking scenario:         CPU0                    CPU1        ----                    ----   rlock(sb_internal#2);                                lock(fs_reclaim);                                lock(sb_internal#2);   rlock(&sbi->cp_rwsem);   *** DEADLOCK ***  3 locks held by kswapd0/73:  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat mm/vmscan.c:7015 [inline]  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0x951/0x2800 mm/vmscan.c:7389  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_trylock_shared fs/super.c:562 [inline]  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_cache_scan+0x91/0x4b0 fs/super.c:197  #2: ffff888011840610 (sb_internal#2){.+.+}-{0:0}, at: f2fs_evict_inode+0x8d9/0x1b60 fs/f2fs/inode.c:890  stack backtrace: CPU: 0 UID: 0 PID: 73 Comm: kswapd0 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 Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_circular_bug+0x2ee/0x310 kernel/locking/lockdep.c:2043  check_noncircular+0x134/0x160 kernel/locking/lockdep.c:2175  check_prev_add kernel/locking/lockdep.c:3165 [inline]  check_prevs_add kernel/locking/lockdep.c:3284 [inline]  validate_chain+0xb9b/0x2140 kernel/locking/lockdep.c:3908  __lock_acquire+0xab9/0xd20 kernel/locking/lockdep.c:5237  lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5868  down_read+0x46/0x2e0 kernel/locking/rwsem.c:1537  f2fs_down_read fs/f2fs/f2fs.h:2278 [inline]  f2fs_lock_op fs/f2fs/f2fs.h:2357 [inline]  f2fs_do_truncate_blocks+0x21c/0x10c0 fs/f2fs/file.c:791  f2fs_truncate_blocks+0x10a/0x300 fs/f2fs/file.c:867  f2fs_truncate+0x489/0x7c0 fs/f2fs/file.c:925  f2fs_evict_inode+0x9f2/0x1b60 fs/f2fs/inode.c:897  evict+0x504/0x9c0 fs/inode.c:810  f2fs_evict_inode+0x1dc/0x1b60 fs/f2fs/inode.c:853  evict+0x504/0x9c0 fs/inode.c:810  dispose_list fs/inode.c:852 [inline]  prune_icache_sb+0x21b/0x2c0 fs/inode.c:1000  super_cache_scan+0x39b/0x4b0 fs/super.c:224  do_shrink_slab+0x6ef/0x1110 mm/shrinker.c:437  shrink_slab_memcg mm/shrinker.c:550 [inline]  shrink_slab+0x7ef/0x10d0 mm/shrinker.c:628  shrink_one+0x28a/0x7c0 mm/vmscan.c:4955  shrink_many mm/vmscan.c:5016 [inline]  lru_gen_shrink_node mm/vmscan.c:5094 [inline]  shrink_node+0x315d/0x3780 mm/vmscan.c:6081  kswapd_shrink_node mm/vmscan.c:6941 [inline]  balance_pgdat mm/vmscan.c:7124 [inline]  kswapd+0x147c/0x2800 mm/vmscan.c:7389  kthread+0x70e/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>  The root cause is deadlock among four locks as below:  kswapd - fs_reclaim\t\t\t\t--- Lock A  - shrink_one   - evict    - f2fs_evict_inode     - sb_start_intwrite\t\t\t--- Lock B  - iput  - evict   - f2fs_evict_inode    - sb_start_intwrite\t\t\t--- Lock B    - f2fs_truncate     - f2fs_truncate_blocks      - f2fs_do_truncate_blocks       - f2fs_lock_op\t\t\t--- Lock C  ioctl - f2fs_ioc_commit_atomic_write  - f2fs_lock_op\t\t\t\t--- Lock C   - __f2fs_commit_atomic_write    - __replace_atomic_write_block     - f2fs_get_dnode_of_data      - __get_node_folio       - f2fs_check_nid_range        - f2fs_handle_error         - f2fs_record_errors          - f2fs_down_write\t\t--- Lock D  open - do_open  - do_truncate   - security_inode_need_killpriv    - f2fs_getxattr     - lookup_all_xattrs      - f2fs_handle_error       - f2fs_record_errors        - f2fs_down_write\t\t--- Lock D         - f2fs_commit_super          - read_mapping_folio           - filemap_alloc_folio_noprof            - prepare_alloc_pages             - fs_reclaim_acquire\t--- Lock A  In order to a ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68345",
                                "url": "https://ubuntu.com/security/CVE-2025-68345",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: hda: cs35l41: Fix NULL pointer dereference in cs35l41_hda_read_acpi()  The acpi_get_first_physical_node() function can return NULL, in which case the get_device() function also returns NULL, but this value is then dereferenced without checking,so add a check to prevent a crash.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11: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-71130",
                                "url": "https://ubuntu.com/security/CVE-2025-71130",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/gem: Zero-initialize the eb.vma array in i915_gem_do_execbuffer  Initialize the eb.vma array with values of 0 when the eb structure is first set up. In particular, this sets the eb->vma[i].vma pointers to NULL, simplifying cleanup and getting rid of the bug described below.  During the execution of eb_lookup_vmas(), the eb->vma array is successively filled up with struct eb_vma objects. This process includes calling eb_add_vma(), which might fail; however, even in the event of failure, eb->vma[i].vma is set for the currently processed buffer.  If eb_add_vma() fails, eb_lookup_vmas() returns with an error, which prompts a call to eb_release_vmas() to clean up the mess. Since eb_lookup_vmas() might fail during processing any (possibly not first) buffer, eb_release_vmas() checks whether a buffer's vma is NULL to know at what point did the lookup function fail.  In eb_lookup_vmas(), eb->vma[i].vma is set to NULL if either the helper function eb_lookup_vma() or eb_validate_vma() fails. eb->vma[i+1].vma is set to NULL in case i915_gem_object_userptr_submit_init() fails; the current one needs to be cleaned up by eb_release_vmas() at this point, so the next one is set. If eb_add_vma() fails, neither the current nor the next vma is set to NULL, which is a source of a NULL deref bug described in the issue linked in the Closes tag.  When entering eb_lookup_vmas(), the vma pointers are set to the slab poison value, instead of NULL. This doesn't matter for the actual lookup, since it gets overwritten anyway, however the eb_release_vmas() function only recognizes NULL as the stopping value, hence the pointers are being set to NULL as they go in case of intermediate failure. This patch changes the approach to filling them all with NULL at the start instead, rather than handling that manually during failure.  (cherry picked from commit 08889b706d4f0b8d2352b7ca29c2d8df4d0787cd)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71138",
                                "url": "https://ubuntu.com/security/CVE-2025-71138",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/msm/dpu: Add missing NULL pointer check for pingpong interface  It is checked almost always in dpu_encoder_phys_wb_setup_ctl(), but in a single place the check is missing. Also use convenient locals instead of phys_enc->* where available.  Patchwork: https://patchwork.freedesktop.org/patch/693860/",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16: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-71129",
                                "url": "https://ubuntu.com/security/CVE-2025-71129",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: BPF: Sign extend kfunc call arguments  The kfunc calls are native calls so they should follow LoongArch calling conventions. Sign extend its arguments properly to avoid kernel panic. This is done by adding a new emit_abi_ext() helper. The emit_abi_ext() helper performs extension in place meaning a value already store in the target register (Note: this is different from the existing sign_extend() helper and thus we can't reuse it).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-71143",
                                "url": "https://ubuntu.com/security/CVE-2025-71143",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  clk: samsung: exynos-clkout: Assign .num before accessing .hws  Commit f316cdff8d67 (\"clk: Annotate struct clk_hw_onecell_data with __counted_by\") annotated the hws member of 'struct clk_hw_onecell_data' with __counted_by, which informs the bounds sanitizer (UBSAN_BOUNDS) about the number of elements in .hws[], so that it can warn when .hws[] is accessed out of bounds. As noted in that change, the __counted_by member must be initialized with the number of elements before the first array access happens, otherwise there will be a warning from each access prior to the initialization because the number of elements is zero. This occurs in exynos_clkout_probe() due to .num being assigned after .hws[] has been accessed:    UBSAN: array-index-out-of-bounds in drivers/clk/samsung/clk-exynos-clkout.c:178:18   index 0 is out of range for type 'clk_hw *[*]'  Move the .num initialization to before the first access of .hws[], clearing up the warning.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-71089",
                                "url": "https://ubuntu.com/security/CVE-2025-71089",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu: disable SVA when CONFIG_X86 is set  Patch series \"Fix stale IOTLB entries for kernel address space\", v7.  This proposes a fix for a security vulnerability related to IOMMU Shared Virtual Addressing (SVA).  In an SVA context, an IOMMU can cache kernel page table entries.  When a kernel page table page is freed and reallocated for another purpose, the IOMMU might still hold stale, incorrect entries.  This can be exploited to cause a use-after-free or write-after-free condition, potentially leading to privilege escalation or data corruption.  This solution introduces a deferred freeing mechanism for kernel page table pages, which provides a safe window to notify the IOMMU to invalidate its caches before the page is reused.   This patch (of 8):  In the IOMMU Shared Virtual Addressing (SVA) context, the IOMMU hardware shares and walks the CPU's page tables.  The x86 architecture maps the kernel's virtual address space into the upper portion of every process's page table.  Consequently, in an SVA context, the IOMMU hardware can walk and cache kernel page table entries.  The Linux kernel currently lacks a notification mechanism for kernel page table changes, specifically when page table pages are freed and reused. The IOMMU driver is only notified of changes to user virtual address mappings.  This can cause the IOMMU's internal caches to retain stale entries for kernel VA.  Use-After-Free (UAF) and Write-After-Free (WAF) conditions arise when kernel page table pages are freed and later reallocated.  The IOMMU could misinterpret the new data as valid page table entries.  The IOMMU might then walk into attacker-controlled memory, leading to arbitrary physical memory DMA access or privilege escalation.  This is also a Write-After-Free issue, as the IOMMU will potentially continue to write Accessed and Dirty bits to the freed memory while attempting to walk the stale page tables.  Currently, SVA contexts are unprivileged and cannot access kernel mappings.  However, the IOMMU will still walk kernel-only page tables all the way down to the leaf entries, where it realizes the mapping is for the kernel and errors out.  This means the IOMMU still caches these intermediate page table entries, making the described vulnerability a real concern.  Disable SVA on x86 architecture until the IOMMU can receive notification to flush the paging cache before freeing the CPU kernel page table pages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16: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-71153",
                                "url": "https://ubuntu.com/security/CVE-2025-71153",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix memory leak in get_file_all_info()  In get_file_all_info(), if vfs_getattr() fails, the function returns immediately without freeing the allocated filename, leading to a memory leak.  Fix this by freeing the filename before returning in this error case.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 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-71095",
                                "url": "https://ubuntu.com/security/CVE-2025-71095",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: stmmac: fix the crash issue for zero copy XDP_TX action  There is a crash issue when running zero copy XDP_TX action, the crash log is shown below.  [  216.122464] Unable to handle kernel paging request at virtual address fffeffff80000000 [  216.187524] Internal error: Oops: 0000000096000144 [#1]  SMP [  216.301694] Call trace: [  216.304130]  dcache_clean_poc+0x20/0x38 (P) [  216.308308]  __dma_sync_single_for_device+0x1bc/0x1e0 [  216.313351]  stmmac_xdp_xmit_xdpf+0x354/0x400 [  216.317701]  __stmmac_xdp_run_prog+0x164/0x368 [  216.322139]  stmmac_napi_poll_rxtx+0xba8/0xf00 [  216.326576]  __napi_poll+0x40/0x218 [  216.408054] Kernel panic - not syncing: Oops: Fatal exception in interrupt  For XDP_TX action, the xdp_buff is converted to xdp_frame by xdp_convert_buff_to_frame(). The memory type of the resulting xdp_frame depends on the memory type of the xdp_buff. For page pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_POOL. For zero copy XSK pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_ORDER0. However, stmmac_xdp_xmit_back() does not check the memory type and always uses the page pool type, this leads to invalid mappings and causes the crash. Therefore, check the xdp_buff memory type in stmmac_xdp_xmit_back() to fix this issue.",
                                "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-71101",
                                "url": "https://ubuntu.com/security/CVE-2025-71101",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix out-of-bounds array access in ACPI package parsing  The hp_populate_*_elements_from_package() functions in the hp-bioscfg driver contain out-of-bounds array access vulnerabilities.  These functions parse ACPI packages into internal data structures using a for loop with index variable 'elem' that iterates through enum_obj/integer_obj/order_obj/password_obj/string_obj arrays.  When processing multi-element fields like PREREQUISITES and ENUM_POSSIBLE_VALUES, these functions read multiple consecutive array elements using expressions like 'enum_obj[elem + reqs]' and 'enum_obj[elem + pos_values]' within nested loops.  The bug is that the bounds check only validated elem, but did not consider the additional offset when accessing elem + reqs or elem + pos_values.  The fix changes the bounds check to validate the actual accessed index.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16: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-71071",
                                "url": "https://ubuntu.com/security/CVE-2025-71071",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu/mediatek: fix use-after-free on probe deferral  The driver is dropping the references taken to the larb devices during probe after successful lookup as well as on errors. This can potentially lead to a use-after-free in case a larb device has not yet been bound to its driver so that the iommu driver probe defers.  Fix this by keeping the references as expected while the iommu driver is bound.",
                                "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-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-71149",
                                "url": "https://ubuntu.com/security/CVE-2025-71149",
                                "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68778",
                                "url": "https://ubuntu.com/security/CVE-2025-68778",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: don't log conflicting inode if it's a dir moved in the current transaction  We can't log a conflicting inode if it's a directory and it was moved from one parent directory to another parent directory in the current transaction, as this can result an attempt to have a directory with two hard links during log replay, one for the old parent directory and another for the new parent directory.  The following scenario triggers that issue:  1) We have directories \"dir1\" and \"dir2\" created in a past transaction.    Directory \"dir1\" has inode A as its parent directory;  2) We move \"dir1\" to some other directory;  3) We create a file with the name \"dir1\" in directory inode A;  4) We fsync the new file. This results in logging the inode of the new file    and the inode for the directory \"dir1\" that was previously moved in the    current transaction. So the log tree has the INODE_REF item for the    new location of \"dir1\";  5) We move the new file to some other directory. This results in updating    the log tree to included the new INODE_REF for the new location of the    file and removes the INODE_REF for the old location. This happens    during the rename when we call btrfs_log_new_name();  6) We fsync the file, and that persists the log tree changes done in the    previous step (btrfs_log_new_name() only updates the log tree in    memory);  7) We have a power failure;  8) Next time the fs is mounted, log replay happens and when processing    the inode for directory \"dir1\" we find a new INODE_REF and add that    link, but we don't remove the old link of the inode since we have    not logged the old parent directory of the directory inode \"dir1\".  As a result after log replay finishes when we trigger writeback of the subvolume tree's extent buffers, the tree check will detect that we have a directory a hard link count of 2 and we get a mount failure. The errors and stack traces reported in dmesg/syslog are like this:     [ 3845.729764] BTRFS info (device dm-0): start tree-log replay    [ 3845.730304] page: refcount:3 mapcount:0 mapping:000000005c8a3027 index:0x1d00 pfn:0x11510c    [ 3845.731236] memcg:ffff9264c02f4e00    [ 3845.731751] aops:btree_aops [btrfs] ino:1    [ 3845.732300] flags: 0x17fffc00000400a(uptodate|private|writeback|node=0|zone=2|lastcpupid=0x1ffff)    [ 3845.733346] raw: 017fffc00000400a 0000000000000000 dead000000000122 ffff9264d978aea8    [ 3845.734265] raw: 0000000000001d00 ffff92650e6d4738 00000003ffffffff ffff9264c02f4e00    [ 3845.735305] page dumped because: eb page dump    [ 3845.735981] BTRFS critical (device dm-0): corrupt leaf: root=5 block=30408704 slot=6 ino=257, invalid nlink: has 2 expect no more than 1 for dir    [ 3845.737786] BTRFS info (device dm-0): leaf 30408704 gen 10 total ptrs 17 free space 14881 owner 5    [ 3845.737789] BTRFS info (device dm-0): refs 4 lock_owner 0 current 30701    [ 3845.737792] \titem 0 key (256 INODE_ITEM 0) itemoff 16123 itemsize 160    [ 3845.737794] \t\tinode generation 3 transid 9 size 16 nbytes 16384    [ 3845.737795] \t\tblock group 0 mode 40755 links 1 uid 0 gid 0    [ 3845.737797] \t\trdev 0 sequence 2 flags 0x0    [ 3845.737798] \t\tatime 1764259517.0    [ 3845.737800] \t\tctime 1764259517.572889464    [ 3845.737801] \t\tmtime 1764259517.572889464    [ 3845.737802] \t\totime 1764259517.0    [ 3845.737803] \titem 1 key (256 INODE_REF 256) itemoff 16111 itemsize 12    [ 3845.737805] \t\tindex 0 name_len 2    [ 3845.737807] \titem 2 key (256 DIR_ITEM 2363071922) itemoff 16077 itemsize 34    [ 3845.737808] \t\tlocation key (257 1 0) type 2    [ 3845.737810] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737811] \titem 3 key (256 DIR_ITEM 2676584006) itemoff 16043 itemsize 34    [ 3845.737813] \t\tlocation key (258 1 0) type 2    [ 3845.737814] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737815] \titem 4 key (256 DIR_INDEX 2) itemoff 16009 itemsize 34    [ 3845.737816] \t\tlocation key (257 1 0) type 2    [ ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71119",
                                "url": "https://ubuntu.com/security/CVE-2025-71119",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/kexec: Enable SMT before waking offline CPUs  If SMT is disabled or a partial SMT state is enabled, when a new kernel image is loaded for kexec, on reboot the following warning is observed:  kexec: Waking offline cpu 228. WARNING: CPU: 0 PID: 9062 at arch/powerpc/kexec/core_64.c:223 kexec_prepare_cpus+0x1b0/0x1bc [snip]  NIP kexec_prepare_cpus+0x1b0/0x1bc  LR  kexec_prepare_cpus+0x1a0/0x1bc  Call Trace:   kexec_prepare_cpus+0x1a0/0x1bc (unreliable)   default_machine_kexec+0x160/0x19c   machine_kexec+0x80/0x88   kernel_kexec+0xd0/0x118   __do_sys_reboot+0x210/0x2c4   system_call_exception+0x124/0x320   system_call_vectored_common+0x15c/0x2ec  This occurs as add_cpu() fails due to cpu_bootable() returning false for CPUs that fail the cpu_smt_thread_allowed() check or non primary threads if SMT is disabled.  Fix the issue by enabling SMT and resetting the number of SMT threads to the number of threads per core, before attempting to wake up all present CPUs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-71148",
                                "url": "https://ubuntu.com/security/CVE-2025-71148",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: restore destructor on submit failure  handshake_req_submit() replaces sk->sk_destruct but never restores it when submission fails before the request is hashed. handshake_sk_destruct() then returns early and the original destructor never runs, leaking the socket. Restore sk_destruct on the error path.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15: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-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-71107",
                                "url": "https://ubuntu.com/security/CVE-2025-71107",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: ensure node page reads complete before f2fs_put_super() finishes  Xfstests generic/335, generic/336 sometimes crash with the following message:  F2FS-fs (dm-0): detect filesystem reference count leak during umount, type: 9, count: 1 ------------[ cut here ]------------ kernel BUG at fs/f2fs/super.c:1939! Oops: invalid opcode: 0000 [#1] SMP NOPTI CPU: 1 UID: 0 PID: 609351 Comm: umount Tainted: G        W          6.17.0-rc5-xfstests-g9dd1835ecda5 #1 PREEMPT(none) Tainted: [W]=WARN Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:f2fs_put_super+0x3b3/0x3c0 Call Trace:  <TASK>  generic_shutdown_super+0x7e/0x190  kill_block_super+0x1a/0x40  kill_f2fs_super+0x9d/0x190  deactivate_locked_super+0x30/0xb0  cleanup_mnt+0xba/0x150  task_work_run+0x5c/0xa0  exit_to_user_mode_loop+0xb7/0xc0  do_syscall_64+0x1ae/0x1c0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  </TASK> ---[ end trace 0000000000000000 ]---  It appears that sometimes it is possible that f2fs_put_super() is called before all node page reads are completed. Adding a call to f2fs_wait_on_all_pages() for F2FS_RD_NODE fixes the problem.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15: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-71126",
                                "url": "https://ubuntu.com/security/CVE-2025-71126",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: avoid deadlock on fallback while reinjecting  Jakub reported an MPTCP deadlock at fallback time:   WARNING: possible recursive locking detected  6.18.0-rc7-virtme #1 Not tainted  --------------------------------------------  mptcp_connect/20858 is trying to acquire lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_try_fallback+0xd8/0x280   but task is already holding lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   other info that might help us debug this:   Possible unsafe locking scenario:          CPU0         ----    lock(&msk->fallback_lock);    lock(&msk->fallback_lock);    *** DEADLOCK ***    May be due to missing lock nesting notation   3 locks held by mptcp_connect/20858:   #0: ff1100001da18290 (sk_lock-AF_INET){+.+.}-{0:0}, at: mptcp_sendmsg+0x114/0x1bc0   #1: ff1100001db40fd0 (k-sk_lock-AF_INET#2){+.+.}-{0:0}, at: __mptcp_retrans+0x2cb/0xaa0   #2: ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   stack backtrace:  CPU: 0 UID: 0 PID: 20858 Comm: mptcp_connect Not tainted 6.18.0-rc7-virtme #1 PREEMPT(full)  Hardware name: Bochs, BIOS Bochs 01/01/2011  Call Trace:   <TASK>   dump_stack_lvl+0x6f/0xa0   print_deadlock_bug.cold+0xc0/0xcd   validate_chain+0x2ff/0x5f0   __lock_acquire+0x34c/0x740   lock_acquire.part.0+0xbc/0x260   _raw_spin_lock_bh+0x38/0x50   __mptcp_try_fallback+0xd8/0x280   mptcp_sendmsg_frag+0x16c2/0x3050   __mptcp_retrans+0x421/0xaa0   mptcp_release_cb+0x5aa/0xa70   release_sock+0xab/0x1d0   mptcp_sendmsg+0xd5b/0x1bc0   sock_write_iter+0x281/0x4d0   new_sync_write+0x3c5/0x6f0   vfs_write+0x65e/0xbb0   ksys_write+0x17e/0x200   do_syscall_64+0xbb/0xfd0   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7fa5627cbc5e  Code: 4d 89 d8 e8 14 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa  RSP: 002b:00007fff1fe14700 EFLAGS: 00000202 ORIG_RAX: 0000000000000001  RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00007fa5627cbc5e  RDX: 0000000000001f9c RSI: 00007fff1fe16984 RDI: 0000000000000005  RBP: 00007fff1fe14710 R08: 0000000000000000 R09: 0000000000000000  R10: 0000000000000000 R11: 0000000000000202 R12: 00007fff1fe16920  R13: 0000000000002000 R14: 0000000000001f9c R15: 0000000000001f9c  The packet scheduler could attempt a reinjection after receiving an MP_FAIL and before the infinite map has been transmitted, causing a deadlock since MPTCP needs to do the reinjection atomically from WRT fallback.  Address the issue explicitly avoiding the reinjection in the critical scenario. Note that this is the only fallback critical section that could potentially send packets and hit the double-lock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-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-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-71151",
                                "url": "https://ubuntu.com/security/CVE-2025-71151",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cifs: Fix memory and information leak in smb3_reconfigure()  In smb3_reconfigure(), if smb3_sync_session_ctx_passwords() fails, the function returns immediately without freeing and erasing the newly allocated new_password and new_password2. This causes both a memory leak and a potential information leak.  Fix this by calling kfree_sensitive() on both password buffers before returning in this error case.",
                                "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-68773",
                                "url": "https://ubuntu.com/security/CVE-2025-68773",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: fsl-cpm: Check length parity before switching to 16 bit mode  Commit fc96ec826bce (\"spi: fsl-cpm: Use 16 bit mode for large transfers with even size\") failed to make sure that the size is really even before switching to 16 bit mode. Until recently the problem went unnoticed because kernfs uses a pre-allocated bounce buffer of size PAGE_SIZE for reading EEPROM.  But commit 8ad6249c51d0 (\"eeprom: at25: convert to spi-mem API\") introduced an additional dynamically allocated bounce buffer whose size is exactly the size of the transfer, leading to a buffer overrun in the fsl-cpm driver when that size is odd.  Add the missing length parity verification and remain in 8 bit mode when the length is not even.",
                                "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-68806",
                                "url": "https://ubuntu.com/security/CVE-2025-68806",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix buffer validation by including null terminator size in EA length  The smb2_set_ea function, which handles Extended Attributes (EA), was performing buffer validation checks that incorrectly omitted the size of the null terminating character (+1 byte) for EA Name. This patch fixes the issue by explicitly adding '+ 1' to EaNameLength where the null terminator is expected to be present in the buffer, ensuring the validation accurately reflects the total required buffer size.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71150",
                                "url": "https://ubuntu.com/security/CVE-2025-71150",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix refcount leak when invalid session is found on session lookup  When a session is found but its state is not SMB2_SESSION_VALID, It indicates that no valid session was found, but it is missing to decrement the reference count acquired by the session lookup, which results in a reference count leak. This patch fixes the issue by explicitly calling ksmbd_user_session_put to release the reference to the session.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68786",
                                "url": "https://ubuntu.com/security/CVE-2025-68786",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: skip lock-range check on equal size to avoid size==0 underflow  When size equals the current i_size (including 0), the code used to call check_lock_range(filp, i_size, size - 1, WRITE), which computes `size - 1` and can underflow for size==0. Skip the equal case.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68789",
                                "url": "https://ubuntu.com/security/CVE-2025-68789",
                                "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                                "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-68775",
                                "url": "https://ubuntu.com/security/CVE-2025-68775",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: duplicate handshake cancellations leak socket  When a handshake request is cancelled it is removed from the handshake_net->hn_requests list, but it is still present in the handshake_rhashtbl until it is destroyed.  If a second cancellation request arrives for the same handshake request, then remove_pending() will return false... and assuming HANDSHAKE_F_REQ_COMPLETED isn't set in req->hr_flags, we'll continue processing through the out_true label, where we put another reference on the sock and a refcount underflow occurs.  This can happen for example if a handshake times out - particularly if the SUNRPC client sends the AUTH_TLS probe to the server but doesn't follow it up with the ClientHello due to a problem with tlshd.  When the timeout is hit on the server, the server will send a FIN, which triggers a cancellation request via xs_reset_transport().  When the timeout is hit on the client, another cancellation request happens via xs_tls_handshake_sync().  Add a test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED) in the pending cancel path so duplicate cancels can be detected.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15: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-71122",
                                "url": "https://ubuntu.com/security/CVE-2025-71122",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommufd/selftest: Check for overflow in IOMMU_TEST_OP_ADD_RESERVED  syzkaller found it could overflow math in the test infrastructure and cause a WARN_ON by corrupting the reserved interval tree. This only effects test kernels with CONFIG_IOMMUFD_TEST.  Validate the user input length in the test ioctl.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-68809",
                                "url": "https://ubuntu.com/security/CVE-2025-68809",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: vfs: fix race on m_flags in vfs_cache  ksmbd maintains delete-on-close and pending-delete state in ksmbd_inode->m_flags. In vfs_cache.c this field is accessed under inconsistent locking: some paths read and modify m_flags under ci->m_lock while others do so without taking the lock at all.  Examples:   - ksmbd_query_inode_status() and __ksmbd_inode_close() use    ci->m_lock when checking or updating m_flags.  - ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete() and ksmbd_fd_set_delete_on_close()    used to read and modify m_flags without ci->m_lock.  This creates a potential data race on m_flags when multiple threads open, close and delete the same file concurrently. In the worst case delete-on-close and pending-delete bits can be lost or observed in an inconsistent state, leading to confusing delete semantics (files that stay on disk after delete-on-close, or files that disappear while still in use).  Fix it by:   - Making ksmbd_query_inode_status() look at m_flags under ci->m_lock    after dropping inode_hash_lock.  - Adding ci->m_lock protection to all helpers that read or modify    m_flags (ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete(), ksmbd_fd_set_delete_on_close()).  - Keeping the existing ci->m_lock protection in __ksmbd_inode_close(),    and moving the actual unlink/xattr removal outside the lock.  This unifies the locking around m_flags and removes the data race while preserving the existing delete-on-close behaviour.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68817",
                                "url": "https://ubuntu.com/security/CVE-2025-68817",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency  Under high concurrency, A tree-connection object (tcon) is freed on a disconnect path while another path still holds a reference and later executes *_put()/write on it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16: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-71067",
                                "url": "https://ubuntu.com/security/CVE-2025-71067",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs: set dummy blocksize to read boot_block when mounting  When mounting, sb->s_blocksize is used to read the boot_block without being defined or validated. Set a dummy blocksize before attempting to read the boot_block.  The issue can be triggered with the following syz reproducer:    mkdirat(0xffffffffffffff9c, &(0x7f0000000080)='./file1\\x00', 0x0)   r4 = openat$nullb(0xffffffffffffff9c, &(0x7f0000000040), 0x121403, 0x0)   ioctl$FS_IOC_SETFLAGS(r4, 0x40081271, &(0x7f0000000980)=0x4000)   mount(&(0x7f0000000140)=@nullb, &(0x7f0000000040)='./cgroup\\x00',         &(0x7f0000000000)='ntfs3\\x00', 0x2208004, 0x0)   syz_clone(0x88200200, 0x0, 0x0, 0x0, 0x0, 0x0)  Here, the ioctl sets the bdev block size to 16384. During mount, get_tree_bdev_flags() calls sb_set_blocksize(sb, block_size(bdev)), but since block_size(bdev) > PAGE_SIZE, sb_set_blocksize() leaves sb->s_blocksize at zero.  Later, ntfs_init_from_boot() attempts to read the boot_block while sb->s_blocksize is still zero, which triggers the bug.  [almaz.alexandrovich@paragon-software.com: changed comment style, added return value handling]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16: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-68798",
                                "url": "https://ubuntu.com/security/CVE-2025-68798",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf/x86/amd: Check event before enable to avoid GPF  On AMD machines cpuc->events[idx] can become NULL in a subtle race condition with NMI->throttle->x86_pmu_stop().  Check event for NULL in amd_pmu_enable_all() before enable to avoid a GPF. This appears to be an AMD only issue.  Syzkaller reported a GPF in amd_pmu_enable_all.  INFO: NMI handler (perf_event_nmi_handler) took too long to run: 13.143     msecs Oops: general protection fault, probably for non-canonical address     0xdffffc0000000034: 0000  PREEMPT SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x00000000000001a0-0x00000000000001a7] CPU: 0 UID: 0 PID: 328415 Comm: repro_36674776 Not tainted 6.12.0-rc1-syzk RIP: 0010:x86_pmu_enable_event (arch/x86/events/perf_event.h:1195     arch/x86/events/core.c:1430) RSP: 0018:ffff888118009d60 EFLAGS: 00010012 RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000000034 RSI: 0000000000000000 RDI: 00000000000001a0 RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000002 R13: ffff88811802a440 R14: ffff88811802a240 R15: ffff8881132d8601 FS:  00007f097dfaa700(0000) GS:ffff888118000000(0000) GS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000200001c0 CR3: 0000000103d56000 CR4: 00000000000006f0 Call Trace:  <IRQ> amd_pmu_enable_all (arch/x86/events/amd/core.c:760 (discriminator 2)) x86_pmu_enable (arch/x86/events/core.c:1360) event_sched_out (kernel/events/core.c:1191 kernel/events/core.c:1186     kernel/events/core.c:2346) __perf_remove_from_context (kernel/events/core.c:2435) event_function (kernel/events/core.c:259) remote_function (kernel/events/core.c:92 (discriminator 1)     kernel/events/core.c:72 (discriminator 1)) __flush_smp_call_function_queue (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207 ./include/trace/events/csd.h:64     kernel/smp.c:135 kernel/smp.c:540) __sysvec_call_function_single (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207     ./arch/x86/include/asm/trace/irq_vectors.h:99 arch/x86/kernel/smp.c:272) sysvec_call_function_single (arch/x86/kernel/smp.c:266 (discriminator 47)     arch/x86/kernel/smp.c:266 (discriminator 47))  </IRQ>",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68794",
                                "url": "https://ubuntu.com/security/CVE-2025-68794",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iomap: adjust read range correctly for non-block-aligned positions  iomap_adjust_read_range() assumes that the position and length passed in are block-aligned. This is not always the case however, as shown in the syzbot generated case for erofs. This causes too many bytes to be skipped for uptodate blocks, which results in returning the incorrect position and length to read in. If all the blocks are uptodate, this underflows length and returns a position beyond the folio.  Fix the calculation to also take into account the block offset when calculating how many bytes can be skipped for uptodate blocks.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16: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-68766",
                                "url": "https://ubuntu.com/security/CVE-2025-68766",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()  If irq_domain_translate_twocell() sets \"hwirq\" to >= MCHP_EIC_NIRQ (2) then it results in an out of bounds access.  The code checks for invalid values, but doesn't set the error code.  Return -EINVAL in that case, instead of returning success.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68756",
                                "url": "https://ubuntu.com/security/CVE-2025-68756",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  block: Use RCU in blk_mq_[un]quiesce_tagset() instead of set->tag_list_lock  blk_mq_{add,del}_queue_tag_set() functions add and remove queues from tagset, the functions make sure that tagset and queues are marked as shared when two or more queues are attached to the same tagset. Initially a tagset starts as unshared and when the number of added queues reaches two, blk_mq_add_queue_tag_set() marks it as shared along with all the queues attached to it. When the number of attached queues drops to 1 blk_mq_del_queue_tag_set() need to mark both the tagset and the remaining queues as unshared.  Both functions need to freeze current queues in tagset before setting on unsetting BLK_MQ_F_TAG_QUEUE_SHARED flag. While doing so, both functions hold set->tag_list_lock mutex, which makes sense as we do not want queues to be added or deleted in the process. This used to work fine until commit 98d81f0df70c (\"nvme: use blk_mq_[un]quiesce_tagset\") made the nvme driver quiesce tagset instead of quiscing individual queues. blk_mq_quiesce_tagset() does the job and quiesce the queues in set->tag_list while holding set->tag_list_lock also.  This results in deadlock between two threads with these stacktraces:    __schedule+0x47c/0xbb0   ? timerqueue_add+0x66/0xb0   schedule+0x1c/0xa0   schedule_preempt_disabled+0xa/0x10   __mutex_lock.constprop.0+0x271/0x600   blk_mq_quiesce_tagset+0x25/0xc0   nvme_dev_disable+0x9c/0x250   nvme_timeout+0x1fc/0x520   blk_mq_handle_expired+0x5c/0x90   bt_iter+0x7e/0x90   blk_mq_queue_tag_busy_iter+0x27e/0x550   ? __blk_mq_complete_request_remote+0x10/0x10   ? __blk_mq_complete_request_remote+0x10/0x10   ? __call_rcu_common.constprop.0+0x1c0/0x210   blk_mq_timeout_work+0x12d/0x170   process_one_work+0x12e/0x2d0   worker_thread+0x288/0x3a0   ? rescuer_thread+0x480/0x480   kthread+0xb8/0xe0   ? kthread_park+0x80/0x80   ret_from_fork+0x2d/0x50   ? kthread_park+0x80/0x80   ret_from_fork_asm+0x11/0x20    __schedule+0x47c/0xbb0   ? xas_find+0x161/0x1a0   schedule+0x1c/0xa0   blk_mq_freeze_queue_wait+0x3d/0x70   ? destroy_sched_domains_rcu+0x30/0x30   blk_mq_update_tag_set_shared+0x44/0x80   blk_mq_exit_queue+0x141/0x150   del_gendisk+0x25a/0x2d0   nvme_ns_remove+0xc9/0x170   nvme_remove_namespaces+0xc7/0x100   nvme_remove+0x62/0x150   pci_device_remove+0x23/0x60   device_release_driver_internal+0x159/0x200   unbind_store+0x99/0xa0   kernfs_fop_write_iter+0x112/0x1e0   vfs_write+0x2b1/0x3d0   ksys_write+0x4e/0xb0   do_syscall_64+0x5b/0x160   entry_SYSCALL_64_after_hwframe+0x4b/0x53  The top stacktrace is showing nvme_timeout() called to handle nvme command timeout. timeout handler is trying to disable the controller and as a first step, it needs to blk_mq_quiesce_tagset() to tell blk-mq not to call queue callback handlers. The thread is stuck waiting for set->tag_list_lock as it tries to walk the queues in set->tag_list.  The lock is held by the second thread in the bottom stack which is waiting for one of queues to be frozen. The queue usage counter will drop to zero after nvme_timeout() finishes, and this will not happen because the thread will wait for this mutex forever.  Given that [un]quiescing queue is an operation that does not need to sleep, update blk_mq_[un]quiesce_tagset() to use RCU instead of taking set->tag_list_lock, update blk_mq_{add,del}_queue_tag_set() to use RCU safe list operations. Also, delete INIT_LIST_HEAD(&q->tag_set_list) in blk_mq_del_queue_tag_set() because we can not re-initialize it while the list is being traversed under RCU. The deleted queue will not be added/deleted to/from a tagset and it will be freed in blk_free_queue() after the end of RCU grace period.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68753",
                                "url": "https://ubuntu.com/security/CVE-2025-68753",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: add bounds check in put_user loop for DSP events  In the DSP event handling code, a put_user() loop copies event data. When the user buffer size is not aligned to 4 bytes, it could overwrite beyond the buffer boundary.  Fix by adding a bounds check before put_user().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68347",
                                "url": "https://ubuntu.com/security/CVE-2025-68347",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: fix buffer overflow in hwdep read for DSP events  The DSP event handling code in hwdep_read() could write more bytes to the user buffer than requested, when a user provides a buffer smaller than the event header size (8 bytes).  Fix by using min_t() to clamp the copy size, This ensures we never copy more than the user requested.",
                                "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-68763",
                                "url": "https://ubuntu.com/security/CVE-2025-68763",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: starfive - Correctly handle return of sg_nents_for_len  The return value of sg_nents_for_len was assigned to an unsigned long in starfive_hash_digest, causing negative error codes to be converted to large positive integers.  Add error checking for sg_nents_for_len and return immediately on failure to prevent potential buffer overflows.",
                                "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-68741",
                                "url": "https://ubuntu.com/security/CVE-2025-68741",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Fix improper freeing of purex item  In qla2xxx_process_purls_iocb(), an item is allocated via qla27xx_copy_multiple_pkt(), which internally calls qla24xx_alloc_purex_item().  The qla24xx_alloc_purex_item() function may return a pre-allocated item from a per-adapter pool for small allocations, instead of dynamically allocating memory with kzalloc().  An error handling path in qla2xxx_process_purls_iocb() incorrectly uses kfree() to release the item. If the item was from the pre-allocated pool, calling kfree() on it is a bug that can lead to memory corruption.  Fix this by using the correct deallocation function, qla24xx_free_purex_item(), which properly handles both dynamically allocated and pre-allocated items.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68742",
                                "url": "https://ubuntu.com/security/CVE-2025-68742",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix invalid prog->stats access when update_effective_progs fails  Syzkaller triggers an invalid memory access issue following fault injection in update_effective_progs. The issue can be described as follows:  __cgroup_bpf_detach   update_effective_progs     compute_effective_progs       bpf_prog_array_alloc <-- fault inject   purge_effective_progs     /* change to dummy_bpf_prog */     array->items[index] = &dummy_bpf_prog.prog  ---softirq start--- __do_softirq   ...     __cgroup_bpf_run_filter_skb       __bpf_prog_run_save_cb         bpf_prog_run           stats = this_cpu_ptr(prog->stats)           /* invalid memory access */           flags = u64_stats_update_begin_irqsave(&stats->syncp) ---softirq end---    static_branch_dec(&cgroup_bpf_enabled_key[atype])  The reason is that fault injection caused update_effective_progs to fail and then changed the original prog into dummy_bpf_prog.prog in purge_effective_progs. Then a softirq came, and accessing the members of dummy_bpf_prog.prog in the softirq triggers invalid mem access.  To fix it, skip updating stats when stats is NULL.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16: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-68363",
                                "url": "https://ubuntu.com/security/CVE-2025-68363",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Check skb->transport_header is set in bpf_skb_check_mtu  The bpf_skb_check_mtu helper needs to use skb->transport_header when the BPF_MTU_CHK_SEGS flag is used:  \tbpf_skb_check_mtu(skb, ifindex, &mtu_len, 0, BPF_MTU_CHK_SEGS)  The transport_header is not always set. There is a WARN_ON_ONCE report when CONFIG_DEBUG_NET is enabled + skb->gso_size is set + bpf_prog_test_run is used:  WARNING: CPU: 1 PID: 2216 at ./include/linux/skbuff.h:3071  skb_gso_validate_network_len  bpf_skb_check_mtu  bpf_prog_3920e25740a41171_tc_chk_segs_flag # A test in the next patch  bpf_test_run  bpf_prog_test_run_skb  For a normal ingress skb (not test_run), skb_reset_transport_header is performed but there is plan to avoid setting it as described in commit 2170a1f09148 (\"net: no longer reset transport_header in __netif_receive_skb_core()\").  This patch fixes the bpf helper by checking skb_transport_header_was_set(). The check is done just before skb->transport_header is used, to avoid breaking the existing bpf prog. The WARN_ON_ONCE is limited to bpf_prog_test_run, so targeting bpf-next.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68744",
                                "url": "https://ubuntu.com/security/CVE-2025-68744",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Free special fields when update [lru_,]percpu_hash maps  As [lru_,]percpu_hash maps support BPF_KPTR_{REF,PERCPU}, missing calls to 'bpf_obj_free_fields()' in 'pcpu_copy_value()' could cause the memory referenced by BPF_KPTR_{REF,PERCPU} fields to be held until the map gets freed.  Fix this by calling 'bpf_obj_free_fields()' after 'copy_map_value[,_long]()' in 'pcpu_copy_value()'.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16: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-68755",
                                "url": "https://ubuntu.com/security/CVE-2025-68755",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: most: remove broken i2c driver  The MOST I2C driver has been completely broken for five years without anyone noticing so remove the driver from staging.  Specifically, commit 723de0f9171e (\"staging: most: remove device from interface structure\") started requiring drivers to set the interface device pointer before registration, but the I2C driver was never updated which results in a NULL pointer dereference if anyone ever tries to probe it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68371",
                                "url": "https://ubuntu.com/security/CVE-2025-68371",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: smartpqi: Fix device resources accessed after device removal  Correct possible race conditions during device removal.  Previously, a scheduled work item to reset a LUN could still execute after the device was removed, leading to use-after-free and other resource access issues.  This race condition occurs because the abort handler may schedule a LUN reset concurrently with device removal via sdev_destroy(), leading to use-after-free and improper access to freed resources.    - Check in the device reset handler if the device is still present in     the controller's SCSI device list before running; if not, the reset     is skipped.    - Cancel any pending TMF work that has not started in sdev_destroy().    - Ensure device freeing in sdev_destroy() is done while holding the     LUN reset mutex to avoid races with ongoing resets.",
                                "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-68379",
                                "url": "https://ubuntu.com/security/CVE-2025-68379",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Fix null deref on srq->rq.queue after resize failure  A NULL pointer dereference can occur in rxe_srq_chk_attr() when ibv_modify_srq() is invoked twice in succession under certain error conditions. The first call may fail in rxe_queue_resize(), which leads rxe_srq_from_attr() to set srq->rq.queue = NULL. The second call then triggers a crash (null deref) when accessing srq->rq.queue->buf->index_mask.  Call Trace: <TASK> rxe_modify_srq+0x170/0x480 [rdma_rxe] ? __pfx_rxe_modify_srq+0x10/0x10 [rdma_rxe] ? uverbs_try_lock_object+0x4f/0xa0 [ib_uverbs] ? rdma_lookup_get_uobject+0x1f0/0x380 [ib_uverbs] ib_uverbs_modify_srq+0x204/0x290 [ib_uverbs] ? __pfx_ib_uverbs_modify_srq+0x10/0x10 [ib_uverbs] ? tryinc_node_nr_active+0xe6/0x150 ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x2c0/0x470 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_run_method+0x55a/0x6e0 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ib_uverbs_cmd_verbs+0x54d/0x800 [ib_uverbs] ? __pfx_ib_uverbs_cmd_verbs+0x10/0x10 [ib_uverbs] ? __pfx___raw_spin_lock_irqsave+0x10/0x10 ? __pfx_do_vfs_ioctl+0x10/0x10 ? ioctl_has_perm.constprop.0.isra.0+0x2c7/0x4c0 ? __pfx_ioctl_has_perm.constprop.0.isra.0+0x10/0x10 ib_uverbs_ioctl+0x13e/0x220 [ib_uverbs] ? __pfx_ib_uverbs_ioctl+0x10/0x10 [ib_uverbs] __x64_sys_ioctl+0x138/0x1c0 do_syscall_64+0x82/0x250 ? fdget_pos+0x58/0x4c0 ? ksys_write+0xf3/0x1c0 ? __pfx_ksys_write+0x10/0x10 ? do_syscall_64+0xc8/0x250 ? __pfx_vm_mmap_pgoff+0x10/0x10 ? fget+0x173/0x230 ? fput+0x2a/0x80 ? ksys_mmap_pgoff+0x224/0x4c0 ? do_syscall_64+0xc8/0x250 ? do_user_addr_fault+0x37b/0xfe0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 entry_SYSCALL_64_after_hwframe+0x76/0x7e",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68380",
                                "url": "https://ubuntu.com/security/CVE-2025-68380",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix peer HE MCS assignment  In ath11k_wmi_send_peer_assoc_cmd(), peer's transmit MCS is sent to firmware as receive MCS while peer's receive MCS sent as transmit MCS, which goes against firmwire's definition.  While connecting to a misbehaved AP that advertises 0xffff (meaning not supported) for 160 MHz transmit MCS map, firmware crashes due to 0xffff is assigned to he_mcs->rx_mcs_set field.  \tExt Tag: HE Capabilities \t    [...] \t    Supported HE-MCS and NSS Set \t\t[...] \t        Rx and Tx MCS Maps 160 MHz \t\t    [...] \t            Tx HE-MCS Map 160 MHz: 0xffff  Swap the assignment to fix this issue.  As the HE rate control mask is meant to limit our own transmit MCS, it needs to go via he_mcs->rx_mcs_set field. With the aforementioned swapping done, change is needed as well to apply it to the peer's receive MCS.  Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41 Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11: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-68256",
                                "url": "https://ubuntu.com/security/CVE-2025-68256",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in rtw_get_ie() parser  The Information Element (IE) parser rtw_get_ie() trusted the length byte of each IE without validating that the IE body (len bytes after the 2-byte header) fits inside the remaining frame buffer. A malformed frame can advertise an IE length larger than the available data, causing the parser to increment its pointer beyond the buffer end. This results in out-of-bounds reads or, depending on the pattern, an infinite loop.  Fix by validating that (offset + 2 + len) does not exceed the limit before accepting the IE or advancing to the next element.  This prevents OOB reads and ensures the parser terminates safely on malformed frames.",
                                "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-68265",
                                "url": "https://ubuntu.com/security/CVE-2025-68265",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: fix admin request_queue lifetime  The namespaces can access the controller's admin request_queue, and stale references on the namespaces may exist after tearing down the controller. Ensure the admin request_queue is active by moving the controller's 'put' to after all controller references have been released to ensure no one is can access the request_queue. This fixes a reported use-after-free bug:    BUG: KASAN: slab-use-after-free in blk_queue_enter+0x41c/0x4a0   Read of size 8 at addr ffff88c0a53819f8 by task nvme/3287   CPU: 67 UID: 0 PID: 3287 Comm: nvme Tainted: G            E      6.13.2-ga1582f1a031e #15   Tainted: [E]=UNSIGNED_MODULE   Hardware name: Jabil /EGS 2S MB1, BIOS 1.00 06/18/2025   Call Trace:    <TASK>    dump_stack_lvl+0x4f/0x60    print_report+0xc4/0x620    ? _raw_spin_lock_irqsave+0x70/0xb0    ? _raw_read_unlock_irqrestore+0x30/0x30    ? blk_queue_enter+0x41c/0x4a0    kasan_report+0xab/0xe0    ? blk_queue_enter+0x41c/0x4a0    blk_queue_enter+0x41c/0x4a0    ? __irq_work_queue_local+0x75/0x1d0    ? blk_queue_start_drain+0x70/0x70    ? irq_work_queue+0x18/0x20    ? vprintk_emit.part.0+0x1cc/0x350    ? wake_up_klogd_work_func+0x60/0x60    blk_mq_alloc_request+0x2b7/0x6b0    ? __blk_mq_alloc_requests+0x1060/0x1060    ? __switch_to+0x5b7/0x1060    nvme_submit_user_cmd+0xa9/0x330    nvme_user_cmd.isra.0+0x240/0x3f0    ? force_sigsegv+0xe0/0xe0    ? nvme_user_cmd64+0x400/0x400    ? vfs_fileattr_set+0x9b0/0x9b0    ? cgroup_update_frozen_flag+0x24/0x1c0    ? cgroup_leave_frozen+0x204/0x330    ? nvme_ioctl+0x7c/0x2c0    blkdev_ioctl+0x1a8/0x4d0    ? blkdev_common_ioctl+0x1930/0x1930    ? fdget+0x54/0x380    __x64_sys_ioctl+0x129/0x190    do_syscall_64+0x5b/0x160    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f765f703b0b   Code: ff ff ff 85 c0 79 9b 49 c7 c4 ff ff ff ff 5b 5d 4c 89 e0 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d dd 52 0f 00 f7 d8 64 89 01 48   RSP: 002b:00007ffe2cefe808 EFLAGS: 00000202 ORIG_RAX: 0000000000000010   RAX: ffffffffffffffda RBX: 00007ffe2cefe860 RCX: 00007f765f703b0b   RDX: 00007ffe2cefe860 RSI: 00000000c0484e41 RDI: 0000000000000003   RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000000   R10: 00007f765f611d50 R11: 0000000000000202 R12: 0000000000000003   R13: 00000000c0484e41 R14: 0000000000000001 R15: 00007ffe2cefea60    </TASK>",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15: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-68259",
                                "url": "https://ubuntu.com/security/CVE-2025-68259",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: SVM: Don't skip unrelated instruction if INT3/INTO is replaced  When re-injecting a soft interrupt from an INT3, INT0, or (select) INTn instruction, discard the exception and retry the instruction if the code stream is changed (e.g. by a different vCPU) between when the CPU executes the instruction and when KVM decodes the instruction to get the next RIP.  As effectively predicted by commit 6ef88d6e36c2 (\"KVM: SVM: Re-inject INT3/INTO instead of retrying the instruction\"), failure to verify that the correct INTn instruction was decoded can effectively clobber guest state due to decoding the wrong instruction and thus specifying the wrong next RIP.  The bug most often manifests as \"Oops: int3\" panics on static branch checks in Linux guests.  Enabling or disabling a static branch in Linux uses the kernel's \"text poke\" code patching mechanism.  To modify code while other CPUs may be executing that code, Linux (temporarily) replaces the first byte of the original instruction with an int3 (opcode 0xcc), then patches in the new code stream except for the first byte, and finally replaces the int3 with the first byte of the new code stream.  If a CPU hits the int3, i.e. executes the code while it's being modified, then the guest kernel must look up the RIP to determine how to handle the #BP, e.g. by emulating the new instruction.  If the RIP is incorrect, then this lookup fails and the guest kernel panics.  The bug reproduces almost instantly by hacking the guest kernel to repeatedly check a static branch[1] while running a drgn script[2] on the host to constantly swap out the memory containing the guest's TSS.  [1]: https://gist.github.com/osandov/44d17c51c28c0ac998ea0334edf90b5a [2]: https://gist.github.com/osandov/10e45e45afa29b11e0c7209247afc00b",
                                "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-68263",
                                "url": "https://ubuntu.com/security/CVE-2025-68263",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: ipc: fix use-after-free in ipc_msg_send_request  ipc_msg_send_request() waits for a generic netlink reply using an ipc_msg_table_entry on the stack. The generic netlink handler (handle_generic_event()/handle_response()) fills entry->response under ipc_msg_table_lock, but ipc_msg_send_request() used to validate and free entry->response without holding the same lock.  Under high concurrency this allows a race where handle_response() is copying data into entry->response while ipc_msg_send_request() has just freed it, leading to a slab-use-after-free reported by KASAN in handle_generic_event():    BUG: KASAN: slab-use-after-free in handle_generic_event+0x3c4/0x5f0 [ksmbd]   Write of size 12 at addr ffff888198ee6e20 by task pool/109349   ...   Freed by task:     kvfree     ipc_msg_send_request [ksmbd]     ksmbd_rpc_open -> ksmbd_session_rpc_open [ksmbd]  Fix by: - Taking ipc_msg_table_lock in ipc_msg_send_request() while validating   entry->response, freeing it when invalid, and removing the entry from   ipc_msg_table. - Returning the final entry->response pointer to the caller only after   the hash entry is removed under the lock. - Returning NULL in the error path, preserving the original API   semantics.  This makes all accesses to entry->response consistent with handle_response(), which already updates and fills the response buffer under ipc_msg_table_lock, and closes the race that allowed the UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15: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-2026-23111",
                                "url": "https://ubuntu.com/security/CVE-2026-23111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23209",
                                "url": "https://ubuntu.com/security/CVE-2026-23209",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23074",
                                "url": "https://ubuntu.com/security/CVE-2026-23074",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23060",
                                "url": "https://ubuntu.com/security/CVE-2026-23060",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-110.110~22.04.1 -proposed tracker (LP: #2143477)",
                            "",
                            "  [ Ubuntu: 6.8.0-110.110 ]",
                            "",
                            "  * noble/linux: 6.8.0-110.110 -proposed tracker (LP: #2144887)",
                            "  * ITS mitigation is not enabled on affected CPUs (LP: #2144730)",
                            "    - x86/bugs: Rename CONFIG_RETPOLINE => CONFIG_MITIGATION_RETPOLINE",
                            "    - x86/bugs: Rename CONFIG_RETHUNK => CONFIG_MITIGATION_RETHUNK",
                            "    - [Config] rename config options RETHUNK and RETPOLINE",
                            "",
                            "  [ Ubuntu: 6.8.0-108.108 ]",
                            "",
                            "  * noble/linux: 6.8.0-108.108 -proposed tracker (LP: #2143478)",
                            "  * linux-riscv-6.8 is FTBFS because of missing patches (LP: #2142235)",
                            "    - riscv, bpf: Unify 32-bit sign-extension to emit_sextw",
                            "    - riscv, bpf: Unify 32-bit zero-extension to emit_zextw",
                            "    - riscv, bpf: Simplify sext and zext logics in branch instructions",
                            "    - riscv, bpf: Add necessary Zbb instructions",
                            "    - riscv, bpf: Optimize sign-extention mov insns with Zbb support",
                            "    - riscv, bpf: Optimize bswap insns with Zbb support",
                            "  * ADT test for linux package failed with \"fatal: unable to connect to",
                            "    git.launchpad.net\" (LP: #2143033)",
                            "    - [Packaging] d/t/ubuntu-regression-suite: use https to clone",
                            "  * Coresight fails to build on 6.8.0-102 due to missing function and arg",
                            "    definitions (LP: #2142337)",
                            "    - SAUCE: Revert \"coresight: catu: Support atclk\"",
                            "    - SAUCE: Revert \"coresight: catu: Move ACPI support from AMBA driver to",
                            "      platform driver\"",
                            "    - SAUCE: Revert \"coresight: tmc: Support atclk\"",
                            "    - SAUCE: Revert \"coresight: tmc: Move ACPI support from AMBA driver to",
                            "      platform driver\"",
                            "    - SAUCE: Revert \"Coresight: Set correct cs_mode for TPDM to fix disable",
                            "      issue\"",
                            "    - SAUCE: Revert \"Coresight: Set correct cs_mode for dummy source to fix",
                            "      disable issue\"",
                            "  * efi: Fix swapped arguments to bsearch() in efi_status_to_*() SAUCE patch",
                            "    (LP: #2141276)",
                            "    - SAUCE efi: Fix swapped arguments to bsearch() in efi_status_to_*()",
                            "  * Fix conntrack use after free when ovs hardware offload is enabled",
                            "    (LP: #2139322)",
                            "    - netfilter: conntrack: remove skb argument from nf_ct_refresh",
                            "    - netfilter: conntrack: rework offload nf_conn timeout extension logic",
                            "    - netfilter: conntrack: fix erronous removal of offload bit",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789)",
                            "    - xhci: fix stale flag preventig URBs after link state error is cleared",
                            "    - Revert \"xfrm: destroy xfrm_state synchronously on net exit path\"",
                            "    - xfrm: flush all states in xfrm_state_fini",
                            "    - 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",
                            "    - ftrace: bpf: Fix IPMODIFY + DIRECT in modify_ftrace_direct()",
                            "    - spi: xilinx: increase number of retries before declaring stall",
                            "    - spi: imx: keep dma request disabled before dma transfer setup",
                            "    - drm/vmwgfx: Use kref in vmw_bo_dirty",
                            "    - Bluetooth: btrtl: Avoid loading the config file on security chips",
                            "    - smb: fix invalid username check in smb3_fs_context_parse_param()",
                            "    - ALSA: usb-audio: Add native DSD quirks for PureAudio DAC series",
                            "    - HID: hid-input: Extend Elan ignore battery quirk to USB",
                            "    - pinctrl: qcom: msm: Fix deadlock in pinmux configuration",
                            "    - platform/x86: acer-wmi: Ignore backlight event",
                            "    - HID: apple: Add SONiX AK870 PRO to non_apple_keyboards quirk list",
                            "    - platform/x86: huawei-wmi: add keys for HONOR models",
                            "    - platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list",
                            "    - platform/x86/amd/pmc: Add spurious_8042 to Xbox Ally",
                            "    - HID: elecom: Add support for ELECOM M-XT3URBK (018F)",
                            "    - LoongArch: Mask all interrupts during kexec/kdump",
                            "    - samples: work around glibc redefining some of our defines wrong",
                            "    - wifi: rtw88: Add USB ID 2001:3329 for D-Link AC13U rev. A1",
                            "    - drm/panel: visionox-rm69299: Don't clear all mode flags",
                            "    - USB: Fix descriptor count when handling invalid MBIM extended descriptor",
                            "    - clk: renesas: cpg-mssr: Add missing 1ms delay into reset toggle callback",
                            "    - clk: renesas: Use str_on_off() helper",
                            "    - clk: renesas: Pass sub struct of cpg_mssr_priv to cpg_clk_register",
                            "    - clk: renesas: cpg-mssr: Read back reset registers to assure values",
                            "      latched",
                            "    - HID: logitech-hidpp: Do not assume FAP in hidpp_send_message_sync()",
                            "    - objtool: Fix standalone --hacks=jump_label",
                            "    - objtool: Fix weak symbol detection",
                            "    - sched/fair: Forfeit vruntime on yield",
                            "    - irqchip/irq-bcm7038-l1: Fix section mismatch",
                            "    - irqchip/irq-bcm7120-l2: Fix section mismatch",
                            "    - irqchip/irq-brcmstb-l2: Fix section mismatch",
                            "    - irqchip/imx-mu-msi: Fix section mismatch",
                            "    - irqchip/qcom-irq-combiner: Fix section mismatch",
                            "    - crypto: authenc - Correctly pass EINPROGRESS back up to the caller",
                            "    - 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: Fix measurement unit for odr struct member",
                            "    - arm64: dts: freescale: imx8mp-venice-gw7905-2x: remove duplicate usdhc1",
                            "      props",
                            "    - arm64: dts: imx8mm-venice-gw72xx: remove unused sdhc1 pinctrl",
                            "    - arm64: dts: imx8mp-venice-gw702x: remove off-board uart",
                            "    - arm64: dts: imx8mp-venice-gw702x: remove off-board sdhc1",
                            "    - PCI: rcar-gen2: Drop ARM dependency from PCI_RCAR_GEN2",
                            "    - uio: uio_fsl_elbc_gpcm:: Add null pointer check to",
                            "      uio_fsl_elbc_gpcm_probe",
                            "    - clk: qcom: camcc-sm6350: Specify Titan GDSC power domain as a parent to",
                            "      other",
                            "    - clk: qcom: camcc-sm6350: Fix PLL config of PLL2",
                            "    - 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",
                            "    - arm64: dts: ti: k3-am62p: Fix memory ranges for GPU",
                            "    - firmware: imx: scu-irq: fix OF node leak in",
                            "    - arm64: dts: qcom: sdm845-oneplus: Correct gpio used for slider",
                            "    - phy: mscc: Fix PTP for VSC8574 and VSC8572",
                            "    - sctp: Defer SCTP_DBG_OBJCNT_DEC() to sctp_destroy_sock().",
                            "    - ARM: dts: renesas: gose: Remove superfluous port property",
                            "    - ARM: dts: renesas: r9a06g032-rzn1d400-db: Drop invalid #cells properties",
                            "    - Revert \"mtd: rawnand: marvell: fix layouts\"",
                            "    - mtd: nand: relax ECC parameter validation check",
                            "    - mtd: rawnand: lpc32xx_slc: fix GPIO descriptor leak on probe error and",
                            "      remove",
                            "    - task_work: Fix NMI race condition",
                            "    - x86/dumpstack: Prevent KASAN false positive warnings in __show_regs()",
                            "    - tools/nolibc/stdio: let perror work when NOLIBC_IGNORE_ERRNO is set",
                            "    - soc: qcom: smem: fix hwspinlock resource leak in probe error paths",
                            "    - pinctrl: stm32: fix hwspinlock resource leak in probe function",
                            "    - i3c: fix refcount inconsistency in i3c_master_register",
                            "    - i3c: master: svc: Prevent incomplete IBI transaction",
                            "    - interconnect: qcom: msm8996: add missing link to SLAVE_USB_HS",
                            "    - arm64: dts: qcom: msm8996: add interconnect paths to USB2 controller",
                            "    - interconnect: debugfs: Fix incorrect error handling for NULL path",
                            "    - perf lock contention: Load kernel map before lookup",
                            "    - perf record: skip synthesize event when open evsel failed",
                            "    - power: supply: cw2015: Check devm_delayed_work_autocancel() return code",
                            "    - power: supply: rt9467: Return error on failure in",
                            "      rt9467_set_value_from_ranges()",
                            "    - power: supply: rt9467: Prevent using uninitialized local variable in",
                            "      rt9467_set_value_from_ranges()",
                            "    - 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",
                            "    - fs/9p: Don't open remote file with APPEND mode when writeback cache is",
                            "      used",
                            "    - ARM: dts: am335x-netcom-plus-2xx: add missing GPIO labels",
                            "    - ARM: dts: omap3: beagle-xm: Correct obsolete TWL4030 power compatible",
                            "    - ARM: dts: omap3: n900: Correct obsolete TWL4030 power compatible",
                            "    - x86/boot: Fix page table access in 5-level to 4-level paging transition",
                            "    - efi/libstub: Fix page table access in 5-level to 4-level paging",
                            "      transition",
                            "    - mfd: da9055: Fix missing regmap_del_irq_chip() in error path",
                            "    - 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",
                            "    - scsi: stex: Fix reboot_notifier leak in probe error path",
                            "    - staging: most: i2c: Drop explicit initialization of struct",
                            "      i2c_device_id::driver_data to 0",
                            "    - [Config] remove MOST_I2C driver",
                            "    - dt-bindings: PCI: amlogic: Fix the register name of the DBI region",
                            "    - RDMA/rtrs: server: Fix error handling in get_or_create_srv",
                            "    - ARM: dts: stm32: stm32mp157c-phycore: Fix STMPE811 touchscreen node",
                            "      properties",
                            "    - ntfs3: init run lock for extend inode",
                            "    - scsi: ufs: core: fix incorrect buffer duplication in",
                            "      ufshcd_read_string_desc()",
                            "    - cpufreq/amd-pstate: Call cppc_set_auto_sel() only for online CPUs",
                            "    - powerpc/32: Fix unpaired stwcx. on interrupt exit",
                            "    - wifi: cw1200: Fix potential memory leak in cw1200_bh_rx_helper()",
                            "    - coresight: etm4x: Correct polling IDLE bit",
                            "    - 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",
                            "    - arm64: dts: rockchip: Move the EEPROM to correct I2C bus on Radxa ROCK",
                            "      5A",
                            "    - arm64: dts: rockchip: Add eeprom vcc-supply for Radxa ROCK 5A",
                            "    - ps3disk: use memcpy_{from,to}_bvec index",
                            "    - bpf: Handle return value of ftrace_set_filter_ip in register_fentry",
                            "    - selftests/bpf: Fix failure paths in send_signal test",
                            "    - watchdog: wdat_wdt: Fix ACPI table leak in probe function",
                            "    - watchdog: starfive: Fix resource leak in probe error path",
                            "    - tracefs: fix a leak in eventfs_create_events_dir()",
                            "    - NFSD/blocklayout: Fix minlength check in proc_layoutget",
                            "    - drm/msm/a2xx: stop over-complaining about the legacy firmware",
                            "    - bpf: Improve program stats run-time calculation",
                            "    - powerpc/64s/hash: Restrict stress_hpt_struct memblock region to within",
                            "      RMA limit",
                            "    - powerpc/64s/ptdump: Fix kernel_hash_pagetable dump for ISA v3.00 HPTE",
                            "      format",
                            "    - 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",
                            "    - net/ipv6: Remove expired routes with a separated list of routes.",
                            "    - ipv6: clear RA flags when adding a static route",
                            "    - perf arm-spe: Extend branch operations",
                            "    - perf arm_spe: Fix memset subclass in operation",
                            "    - pwm: bcm2835: Make sure the channel is enabled after pwm_request()",
                            "    - wifi: mac80211: fix CMAC functions not handling errors",
                            "    - mfd: mt6397-irq: Fix missing irq_domain_remove() in error path",
                            "    - mfd: mt6358-irq: Fix missing irq_domain_remove() in error path",
                            "    - phy: renesas: rcar-gen3-usb2: Fix an error handling path in",
                            "      rcar_gen3_phy_usb2_probe()",
                            "    - net: phy: adin1100: Fix software power-down ready condition",
                            "    - cpuset: Treat cpusets in attaching as populated",
                            "    - 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",
                            "    - RISC-V: KVM: Fix guest page fault within HLV* instructions",
                            "    - RDMA/bnxt_re: Fix the inline size for GenP7 devices",
                            "    - firmware: stratix10-svc: fix make htmldocs warning for stratix10_svc",
                            "    - staging: fbtft: core: fix potential memory leak in fbtft_probe_common()",
                            "    - btrfs: fix leaf leak in an error path in btrfs_del_items()",
                            "    - PCI: dwc: Fix wrong PORT_LOGIC_LTSSM_STATE_MASK definition",
                            "    - drm/nouveau: restrict the flush page to a 32-bit address",
                            "    - iomap: factor out a iomap_dio_done helper",
                            "    - iomap: always run error completions in user context",
                            "    - wifi: ieee80211: correct FILS status codes",
                            "    - 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",
                            "    - RDMA/irdma: Do not directly rely on IB_PD_UNSAFE_GLOBAL_RKEY",
                            "    - ASoC: fsl_xcvr: clear the channel status control memory",
                            "    - drm/amd/display: Fix logical vs bitwise bug in",
                            "      get_embedded_panel_info_v2_1()",
                            "    - hwmon: sy7636a: Fix regulator_enable resource leak on error path",
                            "    - ACPI: processor_core: fix map_x2apic_id for amd-pstate on am4",
                            "    - ublk: prevent invalid access with DEBUG",
                            "    - ext4: improve integrity checking in __mb_check_buddy by enhancing",
                            "      order-0 validation",
                            "    - virtio_vdpa: fix misleading return in void function",
                            "    - virtio: fix typo in virtio_device_ready() comment",
                            "    - virtio: fix whitespace in virtio_config_ops",
                            "    - virtio: fix virtqueue_set_affinity() docs",
                            "    - vdpa/pds: use %pe for ERR_PTR() in event handler registration",
                            "    - ASoC: Intel: catpt: Fix error path in hw_params()",
                            "    - ARM: dts: samsung: universal_c210: turn off SDIO WLAN chip during system",
                            "      suspend",
                            "    - ARM: dts: samsung: exynos4210-i9100: turn off SDIO WLAN chip during",
                            "      system suspend",
                            "    - ARM: dts: samsung: exynos4210-trats: turn off SDIO WLAN chip during",
                            "      system suspend",
                            "    - ARM: dts: samsung: exynos4412-midas: turn off SDIO WLAN chip during",
                            "      system suspend",
                            "    - resource: replace open coded resource_intersection()",
                            "    - resource: introduce is_type_match() helper and use it",
                            "    - Reinstate \"resource: avoid unnecessary lookups in find_next_iomem_res()\"",
                            "    - netfilter: flowtable: check for maximum number of encapsulations in",
                            "      bridge vlan",
                            "    - 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: rawnand: renesas: Handle devm_pm_runtime_enable() errors",
                            "    - selftests: bonding: add ipvlan over bond testing",
                            "    - selftests: bonding: add delay before each xvlan_over_bond connectivity",
                            "      check",
                            "    - mtd: lpddr_cmds: fix signed shifts in lpddr_cmds",
                            "    - remoteproc: qcom_q6v5_wcss: fix parsing of qcom,halt-regs",
                            "    - md/raid5: fix IO hang when array is broken with IO inflight",
                            "    - clk: keystone: fix compile testing",
                            "    - 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()",
                            "    - 9p: fix cache/debug options printing in v9fs_show_options",
                            "    - NFS: Avoid changing nlink when file removes and attribute updates race",
                            "    - fs/nls: Fix utf16 to utf8 conversion",
                            "    - NFS: Initialise verifiers for visible dentries in readdir and lookup",
                            "    - 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\"",
                            "    - Expand the type of nfs_fattr->valid",
                            "    - NFS: Fix inheritance of the block sizes when automounting",
                            "    - 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",
                            "    - nvme-auth: use kvfree() for memory allocated with kvcalloc()",
                            "    - dma/pool: eliminate alloc_pages warning in atomic_pool_expand",
                            "    - ALSA: uapi: Fix typo in asound.h comment",
                            "    - rtc: gamecube: Check the return value of ioremap()",
                            "    - 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()",
                            "    - LoongArch: Add machine_kexec_mask_interrupts() implementation",
                            "    - net: lan743x: Allocate rings outside ZONE_DMA",
                            "    - usb: gadget: tegra-xudc: Always reinitialize data toggle when clear halt",
                            "    - usb: phy: Initialize struct usb_phy list_head",
                            "    - ipv6: add exception routes to GC list in rt6_insert_exception",
                            "    - btrfs: do not skip logging new dentries when logging a new name",
                            "    - btrfs: fix a potential path leak in print_data_reloc_error()",
                            "    - bpf, arm64: Do not audit capability check in do_jit()",
                            "    - btrfs: fix memory leak of fs_devices in degraded seed device path",
                            "    - iomap: account for unaligned end offsets when truncating read range",
                            "    - sched/fair: Revert max_newidle_lb_cost bump",
                            "    - x86/ptrace: Always inline trivial accessors",
                            "    - ACPI: property: Use ACPI functions in acpi_graph_get_next_endpoint()",
                            "      only",
                            "    - cpufreq: dt-platdev: Add JH7110S SOC to the allowlist",
                            "    - cpufreq: s5pv210: fix refcount leak",
                            "    - cpuidle: menu: Use residency threshold in polling state override",
                            "      decisions",
                            "    - livepatch: Match old_sympos 0 and 1 in klp_find_func()",
                            "    - fs/ntfs3: Support timestamps prior to epoch",
                            "    - kbuild: Use objtree for module signing key path",
                            "    - hfsplus: fix volume corruption issue for generic/070",
                            "    - hfsplus: fix volume corruption issue for generic/073",
                            "    - wifi: brcmfmac: Add DMI nvram filename quirk for Acer A1 840 tablet",
                            "    - btrfs: scrub: always update btrfs_scrub_progress::last_physical",
                            "    - gfs2: fix remote evict for read-only filesystems",
                            "    - smb/server: fix return value of smb2_ioctl()",
                            "    - ksmbd: use rwsem instead of rwlock for lease break",
                            "    - Bluetooth: btusb: Add new VID/PID 2b89/6275 for RTL8761BUV",
                            "    - Bluetooth: btusb: Add new VID/PID 13d3/3533 for RTL8821CE",
                            "    - net: fec: ERR007885 Workaround for XDP TX path",
                            "    - ipvlan: Ignore PACKET_LOOPBACK in handle_mode_l2()",
                            "    - mlxsw: spectrum_router: Fix possible neighbour reference count leak",
                            "    - 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()",
                            "    - netfilter: nf_tables: pass context structure to nft_parse_register_load",
                            "    - netfilter: nf_tables: allow loads only when register is initialized",
                            "    - netfilter: nf_tables: remove redundant chain validation on register",
                            "      store",
                            "    - net/mlx5: fw reset, clear reset requested on drain_fw_reset",
                            "    - net/mlx5: Drain firmware reset in shutdown callback",
                            "    - net/mlx5: fw_tracer, Handle escaped percent properly",
                            "    - net/mlx5: Skip HotPlug check on sync reset using hot reset",
                            "    - net/mlx5: Serialize firmware reset with devlink",
                            "    - net: enetc: do not transmit redirected XDP frames when the link is down",
                            "    - net: hns3: using the num_tqps to check whether tqp_index is out of range",
                            "      when vf get ring info from mbx",
                            "    - hwmon: (tmp401) fix overflow caused by default conversion rate value",
                            "    - MIPS: Fix a reference leak bug in ip22_check_gio()",
                            "    - drm/panel: sony-td4353-jdi: Enable prepare_prev_first",
                            "    - x86/xen: Move Xen upcall handler",
                            "    - x86/xen: Fix sparse warning in enlighten_pv.c",
                            "    - spi: cadence-quadspi: Fix clock disable on probe failure path",
                            "    - block: rnbd-clt: Fix leaked ID in init_dev()",
                            "    - HID: input: map HID_GD_Z to ABS_DISTANCE for stylus/pen",
                            "    - Input: i8042 - add TUXEDO InfinityBook Max Gen10 AMD to i8042 quirk",
                            "      table",
                            "    - can: gs_usb: gs_can_open(): fix error handling",
                            "    - ACPI: PCC: Fix race condition by removing static qualifier",
                            "    - ACPI: CPPC: Fix missing PCC check for guaranteed_perf",
                            "    - mmc: sdhci-esdhc-imx: add alternate ARCH_S32 dependency to Kconfig",
                            "    - dt-bindings: mmc: sdhci-of-aspeed: Switch ref to sdhci-common.yaml",
                            "    - 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",
                            "    - fuse: Always flush the page cache before FOPEN_DIRECT_IO write",
                            "    - fuse: Invalidate the page cache after FOPEN_DIRECT_IO write",
                            "    - reset: fix BIT macro reference",
                            "    - exfat: fix remount failure in different process environments",
                            "    - usbip: Fix locking bug in RT-enabled kernels",
                            "    - iio: adc: ti_am335x_adc: Limit step_avg to valid range for gcc complains",
                            "    - 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",
                            "    - libperf cpumap: Fix perf_cpu_map__max for an empty/NULL map",
                            "    - i2c: designware: Disable SMBus interrupts to prevent storms from mis-",
                            "      configured firmware",
                            "    - 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",
                            "    - block: rnbd-clt: Fix signedness bug in init_dev()",
                            "    - 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",
                            "    - s390/dasd: Fix gendisk parent after copy pair swap",
                            "    - block: rate-limit capacity change info log",
                            "    - floppy: fix for PAGE_SIZE != 4KB",
                            "    - kallsyms: Fix wrong \"big\" kernel symbol type read from procfs",
                            "    - 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 per-journal lock_class_key for jbd2_trans_commit_key",
                            "    - jbd2: use a weaker annotation in journal handling",
                            "    - media: v4l2-mem2mem: Fix outdated documentation",
                            "    - mptcp: schedule rtx timer only after pushing data",
                            "    - 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: dwc3: keep susphy enabled during exit to avoid controller faults",
                            "    - usb: renesas_usbhs: Fix a resource leak in usbhs_pipe_malloc()",
                            "    - intel_th: Fix error handling in intel_th_output_open",
                            "    - cpuidle: governors: teo: Drop misguided target residency check",
                            "    - cpufreq: nforce2: fix reference count leak in nforce2",
                            "    - NFSD: use correct reservation type in nfsd4_scsi_fence_client",
                            "    - f2fs: fix age extent cache insertion skip on counter overflow",
                            "    - tools/testing/nvdimm: Use per-DIMM device handle",
                            "    - KVM: x86: Don't clear async #PF queue when CR0.PG is disabled (e.g. on",
                            "      #SMI)",
                            "    - 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: Avoid incorrect injection of SVM_EXIT_CR0_SEL_WRITE",
                            "    - KVM: SVM: Mark VMCB_NPT as dirty on nested VMRUN",
                            "    - KVM: nSVM: Propagate SVM_EXIT_CR0_SEL_WRITE correctly for LMSW emulation",
                            "    - KVM: SVM: Mark VMCB_PERM_MAP as dirty on nested VMRUN",
                            "    - 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",
                            "    - xfs: fix a memory leak in xfs_buf_item_init()",
                            "    - PM: runtime: Do not clear needs_force_resume with enabled runtime PM",
                            "    - r8169: fix RTL8117 Wake-on-Lan in DASH mode",
                            "    - nfsd: Mark variable __maybe_unused to avoid W=1 build break",
                            "    - svcrdma: return 0 on success from svc_rdma_copy_inline_range",
                            "    - s390/ipl: Clear SBP flag when bootprog is set",
                            "    - gpio: regmap: Fix memleak in error path in gpio_regmap_register()",
                            "    - drm/amd/display: Use GFP_ATOMIC in dc_create_plane_state()",
                            "    - selftests: openvswitch: Fix escape chars in regexp.",
                            "    - crypto: caam - Add check for kcalloc() in test_len()",
                            "    - amba: tegra-ahb: Fix device leak on SMMU enable",
                            "    - tracing: Fix fixed array of synthetic event",
                            "    - soc: qcom: ocmem: fix device leak on lookup",
                            "    - soc: amlogic: canvas: fix device leak on lookup",
                            "    - rpmsg: glink: fix rpmsg device leak",
                            "    - platform/x86: intel: chtwc_int33fe: don't dereference swnode args",
                            "    - 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",
                            "    - ARM: dts: microchip: sama5d2: fix spi flexcom fifo size to 32",
                            "    - wifi: rtw88: limit indirect IO under powered off for RTL8822CS",
                            "    - wifi: cfg80211: sme: store capped length in __cfg80211_connect_result()",
                            "    - wifi: mac80211: do not use old MBSSID elements",
                            "    - i40e: fix scheduling in set_rx_mode",
                            "    - 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",
                            "    - amd-xgbe: reset retries and mode on RX adapt failures",
                            "    - Revert \"UBUNTU: SAUCE: selftests: net: fix \"buffer overflow detected\"",
                            "      for tap.c\"",
                            "    - selftests: net: fix \"buffer overflow detected\" for tap.c",
                            "    - 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",
                            "    - blk-mq: don't schedule block kworker on isolated CPUs",
                            "    - blk-mq: skip CPU offline notify on unmapped hctx",
                            "    - selftests/ftrace: traceonoff_triggers: strip off names",
                            "    - ntfs: Do not overwrite uptodate pages",
                            "    - ASoC: stm32: sai: fix device leak on probe",
                            "    - ASoC: stm32: sai: fix clk prepare imbalance on probe failure",
                            "    - ASoC: qcom: q6apm-dai: set flags to reflect correct operation of",
                            "      appl_ptr",
                            "    - 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/amd: Fix pci_segment memleak in alloc_pci_segment()",
                            "    - 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-v1: fix device leaks on probe()",
                            "    - iommu/mediatek: fix device leak on of_xlate()",
                            "    - iommu/omap: fix device leaks on probe_device()",
                            "    - iommu/qcom: fix device leak on of_xlate()",
                            "    - 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",
                            "    - SAUCE: Revert \"arm64: dts: ti: k3-j721e-sk: Add DT nodes for power",
                            "      regulators\"",
                            "    - arm64: dts: ti: k3-j721e-sk: Fix pinmux for pin Y1 used by power",
                            "      regulator",
                            "    - powerpc, mm: Fix mprotect on book3s 32-bit",
                            "    - 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",
                            "    - leds: leds-lp50xx: Enable chip before any communication",
                            "    - 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()",
                            "    - powerpc/pseries/cmm: call balloon_devinfo_init() also without",
                            "      CONFIG_BALLOON_COMPACTION",
                            "    - firmware: stratix10-svc: Add mutex in stratix10 memory management",
                            "    - dm-ebs: Mark full buffer dirty even on partial write",
                            "    - dm-bufio: align write boundary on physical block size",
                            "    - 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: renesas: rcar_drif: fix device node reference leak in",
                            "      rcar_drif_bond_enabled",
                            "    - media: samsung: exynos4-is: fix potential ABBA deadlock on init",
                            "    - media: TDA1997x: Remove redundant cancel_delayed_work in probe",
                            "    - media: verisilicon: Protect G2 HEVC decoder against invalid DPB index",
                            "    - media: videobuf2: Fix device reference leak in vb2_dc_alloc error path",
                            "    - media: vpif_capture: fix section mismatch",
                            "    - media: vpif_display: fix section mismatch",
                            "    - media: amphion: Cancel message work before releasing the VPU core",
                            "    - media: i2c: ADV7604: Remove redundant cancel_delayed_work in probe",
                            "    - media: i2c: adv7842: Remove redundant cancel_delayed_work in probe",
                            "    - media: mediatek: vcodec: Fix a reference leak in",
                            "      mtk_vcodec_fw_vpu_init()",
                            "    - LoongArch: Add new PCI ID for pci_fixup_vgadev()",
                            "    - LoongArch: Correct the calculation logic of thread_count",
                            "    - LoongArch: Fix build errors for CONFIG_RANDSTRUCT",
                            "    - LoongArch: Use __pmd()/__pte() for swap entry conversions",
                            "    - LoongArch: Use unsigned long for _end and _text",
                            "    - compiler_types.h: add \"auto\" as a macro for \"__auto_type\"",
                            "    - kasan: refactor pcpu kasan vmalloc unpoison",
                            "    - idr: fix idr_alloc() returning an ID out of range",
                            "    - tools/mm/page_owner_sort: fix timestamp comparison for stable sorting",
                            "    - samples/ftrace: Adjust LoongArch register restore order in direct calls",
                            "    - fjes: Add missing iounmap in fjes_hw_init()",
                            "    - LoongArch: BPF: Zero-extend bpf_tail_call() index",
                            "    - nfsd: Drop the client reference in client_states_open()",
                            "    - net: usb: sr9700: fix incorrect command used to write single register",
                            "    - net: macb: Relocate mog_init_rings() callback from macb_mac_link_up() to",
                            "      macb_open()",
                            "    - drm/amdgpu: add missing lock to amdgpu_ttm_access_memory_sdma",
                            "    - drm/msm/a6xx: Fix out of bound IO access in a6xx_get_gmu_registers",
                            "    - drm/gma500: Remove unused helper psb_fbdev_fb_setcolreg()",
                            "    - drm/mediatek: Fix device node reference leak in mtk_dp_dt_parse()",
                            "    - drm/mgag200: Fix big-endian support",
                            "    - drm/nouveau/dispnv50: Don't call drm_atomic_get_crtc_state() in",
                            "      prepare_fb",
                            "    - blk-mq: add helper for checking if one CPU is mapped to specified hctx",
                            "    - mptcp: Initialise rcv_mss before calling tcp_send_active_reset() in",
                            "      mptcp_do_fastclose().",
                            "    - ALSA: wavefront: Use standard print API",
                            "    - ALSA: wavefront: Use guard() for spin locks",
                            "    - ALSA: wavefront: Clear substream pointers on close",
                            "    - ext4: fix string copying in parse_apply_sb_mount_options()",
                            "    - jbd2: fix the inconsistency between checksum and data in memory for",
                            "      journal sb",
                            "    - btrfs: don't rewrite ret from inode_permission",
                            "    - mm/ksm: fix exec/fork inheritance support for prctl",
                            "    - usb: ohci-nxp: Use helper function devm_clk_get_enabled()",
                            "    - usb: ohci-nxp: fix device leak on probe failure",
                            "    - scsi: ufs: core: Add ufshcd_update_evt_hist() for UFS suspend error",
                            "    - f2fs: use f2fs_err_ratelimited() to avoid redundant logs",
                            "    - ARM: dts: microchip: sama7g5: fix uart fifo size to 32",
                            "    - fuse: fix readahead reclaim deadlock",
                            "    - PCI: brcmstb: Fix disabling L0s capability",
                            "    - lockd: fix vfs_test_lock() calls",
                            "    - mm: simplify folio_expected_ref_count()",
                            "    - mm: consider non-anon swap cache folios in folio_expected_ref_count()",
                            "    - pmdomain: imx: Fix reference count leak in imx_gpc_probe()",
                            "    - net: phy: mediatek: fix nvmem cell reference leak in",
                            "      mt798x_phy_calibration",
                            "    - drm/amdgpu: Forward VMID reservation errors",
                            "    - drm/mediatek: Fix probe memory leak",
                            "    - drm/mediatek: Fix probe resource leaks",
                            "    - drm/tilcdc: request and mapp iomem with devres",
                            "    - tty: introduce and use tty_port_tty_vhangup() helper",
                            "    - xhci: dbgtty: fix device unregister: fixup",
                            "    - usb: xhci: move link chain bit quirk checks into one helper function.",
                            "    - LoongArch: Refactor register restoration in ftrace_common_return",
                            "    - f2fs: remove unused GC_FAILURE_PIN",
                            "    - f2fs: keep POSIX_FADV_NOREUSE ranges",
                            "    - f2fs: drop inode from the donation list when the last file is closed",
                            "    - f2fs: fix to propagate error from f2fs_enable_checkpoint()",
                            "    - f2fs: fix to detect recoverable inode during dryrun of",
                            "      find_fsync_dnodes()",
                            "    - media: verisilicon: Fix CPU stalls on G2 bus error",
                            "    - 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",
                            "    - KVM: nVMX: Immediately refresh APICv controls as needed on nested VM-",
                            "      Exit",
                            "    - media: amphion: Add a frame flush mode for decoder",
                            "    - media: amphion: Make some vpu_v4l2 functions static",
                            "    - media: amphion: Remove vpu_vb_is_codecconfig",
                            "    - 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()",
                            "    - sched/fair: Small cleanup to sched_balance_newidle()",
                            "    - sched/fair: Small cleanup to update_newidle_cost()",
                            "    - sched/fair: Proportional newidle balance",
                            "    - RDMA/rxe: Fix the failure of ibv_query_device() and",
                            "      ibv_query_device_ex() tests",
                            "    - mm/damon/tests/vaddr-kunit: handle alloc failures on",
                            "      damon_test_split_evenly_succ()",
                            "    - mm/damon/tests/core-kunit: handle alloc failres in",
                            "      damon_test_new_filter()",
                            "    - mm/damon/tests/core-kunit: handle allocation failures in",
                            "      damon_test_regions()",
                            "    - 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 alloc failures on",
                            "      damos_test_filter_out()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures in",
                            "      damon_test_set_regions()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures in",
                            "      damon_test_ops_registration()",
                            "    - mm/damon/tests/core-kunit: handle alloc failure on",
                            "      damon_test_set_attrs()",
                            "    - virtio_console: fix order of fields cols and rows",
                            "    - pwm: stm32: Always program polarity",
                            "    - tty: fix tty_port_tty_*hangup() kernel-doc",
                            "    - firmware: arm_scmi: Fix unused notifier-block in unregister",
                            "    - ext4: filesystems without casefold feature cannot be mounted with",
                            "      siphash",
                            "    - drm/amdkfd: Fix GPU mappings for APU after prefetch",
                            "    - wifi: rtl8xxxu: Add USB ID 2001:3328 for D-Link AN3U rev. A1",
                            "    - smack: fix bug: setting task label silently ignores input garbage",
                            "    - wifi: ath10k: Avoid vdev delete timeout when firmware is already down",
                            "    - wifi: ath10k: Add missing include of export.h",
                            "    - wifi: ath10k: move recovery check logic into a new work",
                            "    - wifi: ath11k: restore register window after global reset",
                            "    - dt-bindings: clock: qcom,x1e80100-gcc: Add missing video resets",
                            "    - dt-bindings: clock: qcom,x1e80100-gcc: Add missing USB4 clocks/resets",
                            "    - clk: qcom: gcc-x1e80100: Add missing USB4 clocks/resets",
                            "    - inet: Avoid ehash lookup race in inet_twsk_hashdance_schedule()",
                            "    - block/mq-deadline: Introduce dd_start_request()",
                            "    - block/mq-deadline: Switch back to a single dispatch list",
                            "    - perf annotate: Check return value of evsel__get_arch() properly",
                            "    - arm64: dts: exynos: gs101: fix sysreg_apm reg property",
                            "    - clk: qcom: camcc-sm8550: Specify Titan GDSC power domain as a parent to",
                            "      other",
                            "    - soc: qcom: gsbi: fix double disable caused by devm",
                            "    - wifi: ath11k: fix VHT MCS assignment",
                            "    - arm64: dts: qcom: sm8650: set ufs as dma coherent",
                            "    - perf: Remove get_perf_callchain() init_nr argument",
                            "    - bpf: Refactor stack map trace depth calculation into helper function",
                            "    - perf/x86/intel/cstate: Remove PC3 support from LunarLake",
                            "    - drm/imagination: Fix reference to",
                            "      devm_platform_get_and_ioremap_resource()",
                            "    - power: supply: rt5033_charger: Fix device node reference leaks",
                            "    - power: supply: max17040: Check iio_read_channel_processed() return code",
                            "    - libbpf: Fix parsing of multi-split BTF",
                            "    - locktorture: Fix memory leak in param_set_cpumask()",
                            "    - crypto: iaa - Fix incorrect return value in save_iaa_wq()",
                            "    - drm/msm/dpu: drop dpu_hw_dsc_destroy() prototype",
                            "    - leds: rgb: leds-qcom-lpg: Don't enable TRILED when configuring PWM",
                            "    - RAS: Report all ARM processor CPER information to userspace",
                            "    - vhost: Fix kthread worker cgroup failure handling",
                            "    - vfio/pci: Use RCU for error/request triggers to avoid circular locking",
                            "    - net: phy: aquantia: check for NVMEM deferral",
                            "    - perf tools: Mark split kallsyms DSOs as loaded",
                            "    - perf hist: In init, ensure mem_info is put on error paths",
                            "    - sched/fair: Fix unfairness caused by stalled tg_load_avg_contrib when",
                            "      the last task migrates out",
                            "    - platform/x86:intel/pmc: Update Arrow Lake telemetry GUID",
                            "    - nfs/vfs: discard d_exact_alias()",
                            "    - NFS: Initialise verifiers for visible dentries in",
                            "      _nfs4_open_and_get_state",
                            "    - drm/plane: Fix IS_ERR() vs NULL check in",
                            "      drm_plane_create_hotspot_properties()",
                            "    - regulator: fixed: Rely on the core freeing the enable GPIO",
                            "    - drm/nouveau: refactor deprecated strcpy",
                            "    - drm/amdkfd: Use huge page size to check split svm range alignment",
                            "    - block: return unsigned int from queue_dma_alignment",
                            "    - fs/ntfs3: check for shutdown in fsync",
                            "    - wifi: rtl8xxxu: Fix HT40 channel config for RTL8192CU, RTL8723AU",
                            "    - wifi: cfg80211: use cfg80211_leave() in iftype change",
                            "    - wifi: mt76: mt792x: fix wifi init fail by setting MCU_RUNNING after CLC",
                            "      load",
                            "    - gfs2: Fix \"gfs2: Switch to wait_event in gfs2_quotad\"",
                            "    - Bluetooth: btusb: MT7922: Add VID/PID 0489/e170",
                            "    - Bluetooth: btusb: MT7920: Add VID/PID 0489/e135",
                            "    - Bluetooth: btusb: Add new VID/PID 0x0489/0xE12F for RTL8852BE-VT",
                            "    - netfilter: nf_nat: remove bogus direction check",
                            "    - iommufd/selftest: Add coverage for reporting max_pasid_log2 via",
                            "      IOMMU_HW_INFO",
                            "    - iommufd/selftest: Update hw_info coverage for an input data_type",
                            "    - iommufd/selftest: Make it clearer to gcc that the access is not out of",
                            "      bounds",
                            "    - hwmon: (dell-smm) Limit fan multiplier to avoid overflow",
                            "    - drm/xe: Restore engine registers before restarting schedulers after GT",
                            "      reset",
                            "    - mmc: sdhci-of-arasan: Increase CD stable timeout to 2 seconds",
                            "    - scsi: ufs: host: mediatek: Fix shutdown/suspend race condition",
                            "    - scsi: smartpqi: Add support for Hurray Data new controller PCI device",
                            "    - exfat: zero out post-EOF page cache on file extension",
                            "    - x86/mce: Do not clear bank's poll bit in mce_poll_banks on AMD SMCA",
                            "      systems",
                            "    - perf: arm_cspmu: fix error handling in arm_cspmu_impl_unregister()",
                            "    - wifi: mt76: Fix DTS power-limits on little endian systems",
                            "    - usb: gadget: lpc32xx_udc: fix clock imbalance in error path",
                            "    - mei: gsc: add dependency on Xe driver",
                            "    - serial: sh-sci: Check that the DMA cookie is valid",
                            "    - powerpc: Add reloc_offset() to font bitmap pointer used for",
                            "      bootx_printf()",
                            "    - xfs: fix stupid compiler warning",
                            "    - NFSD: Clear SECLABEL in the suppattr_exclcreat bitmap",
                            "    - drm/amd/display: Fix scratch registers offsets for DCN35",
                            "    - drm/displayid: pass iter to drm_find_displayid_extension()",
                            "    - KVM: arm64: Initialize SCTLR_EL1 in __kvm_hyp_init_cpu()",
                            "    - soc: apple: mailbox: fix device leak on lookup",
                            "    - interconnect: qcom: sdx75: Drop QPIC interconnect and BCM nodes",
                            "    - i40e: validate ring_len parameter against hardware-specific values",
                            "    - idpf: reduce mbx_task schedule delay to 300us",
                            "    - platform/mellanox: mlxbf-pmc: Remove trailing whitespaces from event",
                            "      names",
                            "    - net: dsa: fix missing put_device() in dsa_tree_find_first_conduit()",
                            "    - vfio/pds: Fix memory leak in pds_vfio_dirty_enable()",
                            "    - md: Fix static checker warning in analyze_sbs",
                            "    - ASoC: codecs: lpass-tx-macro: fix SM6115 support",
                            "    - iommu/amd: Propagate the error code returned by __modify_irte_ga() in",
                            "      modify_irte_ga()",
                            "    - mtd: mtdpart: ignore error -ENOENT from parsers on subpartitions",
                            "    - mtd: spi-nor: winbond: Add support for W25Q01NWxxIQ chips",
                            "    - mtd: spi-nor: winbond: Add support for W25Q01NWxxIM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25Q02NWxxIM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25H512NWxxAM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25H01NWxxAM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25H02NWxxAM chips",
                            "    - perf/x86/amd/uncore: Fix the return value of amd_uncore_df_event_init()",
                            "      on error",
                            "    - mm/damon/tests/sysfs-kunit: handle alloc failures on",
                            "      damon_sysfs_test_add_targets()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      damon_test_split_at()",
                            "    - mm/damon/tests/core-kunit: handle memory alloc failure from",
                            "      damon_test_aggregate()",
                            "    - 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 alloc failures in",
                            "      damon_test_update_monitoring_result()",
                            "    - kasan: unpoison vms[area] addresses with a common tag",
                            "    - drm/amdgpu/gmc11: add amdgpu_vm_handle_fault() handling",
                            "    - drm/edid: add DRM_EDID_IDENT_INIT() to initialize struct drm_edid_ident",
                            "    - drm/mediatek: Fix probe device leaks",
                            "    - drm/i915: Fix format string truncation warning",
                            "    - drm/xe/bo: Don't include the CCS metadata in the dma-buf sg-table",
                            "    - drm/xe: Adjust long-running workload timeslices to reasonable values",
                            "    - drm/xe: Use usleep_range for accurate long-running workload timeslicing",
                            "    - drm/xe: Drop preempt-fences when destroying imported dma-bufs.",
                            "    - drm/imagination: Disallow exporting of PM/FW protected objects",
                            "    - gfs2: fix freeze error handling",
                            "    - sched/eevdf: Remove min_vruntime_copy",
                            "    - sched/eevdf: Fix min_vruntime vs avg_vruntime",
                            "    - serial: core: fix OF node leak",
                            "    - serial: core: Restore sysfs fwnode information",
                            "    - mptcp: pm: ignore unknown endpoint flags",
                            "    - f2fs: clear SBI_POR_DOING before initing inmem curseg",
                            "    - f2fs: add timeout in f2fs_enable_checkpoint()",
                            "    - f2fs: dump more information for f2fs_{enable,disable}_checkpoint()",
                            "    - gpiolib: acpi: Switch to use enum in acpi_gpio_in_ignore_list()",
                            "    - gpiolib: acpi: Handle deferred list via new API",
                            "    - gpiolib: acpi: Add acpi_gpio_need_run_edge_events_on_boot() getter",
                            "    - gpiolib: acpi: Move quirks to a separate file",
                            "    - gpiolib: acpi: Add a quirk for Acer Nitro V15",
                            "    - gpiolib: acpi: Add quirk for ASUS ProArt PX13",
                            "    - gpiolib: acpi: Add quirk for Dell Precision 7780",
                            "    - serial: core: Fix serial device initialization",
                            "    - media: i2c: imx219: Fix 1920x1080 mode to use 1:1 pixel aspect ratio",
                            "    - wifi: mt76: mt7925: fix CLC command timeout when suspend/resume",
                            "    - soundwire: stream: extend sdw_alloc_stream() to take 'type' parameter",
                            "    - ASoC: qcom: sdw: fix memory leak for sdw_stream_runtime",
                            "    - vfio/pci: Disable qword access to the PCI ROM bar",
                            "    - iomap: allocate s_dio_done_wq for async reads as well",
                            "    - mptcp: ensure context reset on disconnect()",
                            "    - Upstream stable to v6.6.120, v6.12.62, v6.12.63, v6.12.64, v6.12.65",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2024-36347",
                            "    - x86/microcode/AMD: Fix Entrysign revision check for Zen5/Strix Halo",
                            "    - x86/microcode/AMD: Select which microcode patch to load",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-40164",
                            "    - usbnet: Fix using smp_processor_id() in preemptible code warnings",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-40325",
                            "    - md/raid10: wait barrier before returning discard request with REQ_NOWAIT",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68206",
                            "    - netfilter: nft_ct: add seqadj extension for natted connections",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71068",
                            "    - svcrdma: bound check rq_pages index in inline path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71135",
                            "    - md/raid5: fix possible null-pointer dereferences in",
                            "      raid5_store_group_thread_cnt()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-38234",
                            "    - sched/rt: Fix race in push_rt_task",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68811",
                            "    - svcrdma: use rc_pageoff for memcpy byte offset",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68810",
                            "    - KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71109",
                            "    - MIPS: ftrace: Fix memory corruption when kernel is located beyond 32",
                            "      bits",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68770",
                            "    - bnxt_en: Fix XDP_TX path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71072",
                            "    - shmem: fix recovery on rename failures",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68374",
                            "    - md: fix rcu protection in md_wakeup_thread",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68378",
                            "    - bpf: Fix stackmap overflow check in __bpf_get_stackid()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2024-57795",
                            "    - RDMA/rxe: Remove the direct link to net_device",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-38022",
                            "    - RDMA/core: Fix \"KASAN: slab-use-after-free Read in ib_register_device\"",
                            "      problem",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71140",
                            "    - media: mediatek: vcodec: Use spinlock for context list protection lock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71105",
                            "    - f2fs: use global inline_xattr_slab instead of per-sb slab cache",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68772",
                            "    - f2fs: fix to avoid updating compression context during writeback",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-22111",
                            "    - net: Remove RTNL dance for SIOCBRADDIF and SIOCBRDELIF.",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-22022",
                            "    - usb: xhci: Apply the link chain quirk on NEC isoc endpoints",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71141",
                            "    - drm/tilcdc: Fix removal actions in case of failed probe",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71127",
                            "    - wifi: mac80211: Discard Beacon frames to non-broadcast address",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71088",
                            "    - mptcp: fallback earlier on simult connection",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71065",
                            "    - f2fs: fix to avoid potential deadlock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68345",
                            "    - ALSA: hda: cs35l41: Fix NULL pointer dereference in",
                            "      cs35l41_hda_read_acpi()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68344",
                            "    - ALSA: wavefront: Fix integer overflow in sample size validation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71077",
                            "    - tpm: Cap the number of PCR banks",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71130",
                            "    - drm/i915/gem: Zero-initialize the eb.vma array in i915_gem_do_execbuffer",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71138",
                            "    - drm/msm/dpu: Add missing NULL pointer check for pingpong interface",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71083",
                            "    - drm/ttm: Avoid NULL pointer deref for evicted BOs",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71079",
                            "    - net: nfc: fix deadlock between nfc_unregister_device and",
                            "      rfkill_fop_write",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71129",
                            "    - LoongArch: BPF: Sign extend kfunc call arguments",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71093",
                            "    - e1000: fix OOB in e1000_tbi_should_accept()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71084",
                            "    - RDMA/cm: Fix leaking the multicast GID table reference",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71096",
                            "    - RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71136",
                            "    - media: adv7842: Avoid possible out-of-bounds array accesses in",
                            "      adv7842_cp_log_status()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71143",
                            "    - clk: samsung: exynos-clkout: Assign .num before accessing .hws",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71078",
                            "    - powerpc/64s/slb: Fix SLB multihit issue during SLB preload",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71089",
                            "    - iommu: disable SVA when CONFIG_X86 is set",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71081",
                            "    - ASoC: stm32: sai: fix OF node leak on probe",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71153",
                            "    - ksmbd: Fix memory leak in get_file_all_info()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71133",
                            "    - RDMA/irdma: avoid invalid read in irdma_net_event",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71086",
                            "    - net: rose: fix invalid array index in rose_kill_by_device()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71097",
                            "    - ipv4: Fix reference count leak when using error routes with nexthop",
                            "      objects",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71085",
                            "    - ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71095",
                            "    - net: stmmac: fix the crash issue for zero copy XDP_TX action",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71137",
                            "    - octeontx2-pf: fix \"UBSAN: shift-out-of-bounds error\"",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71101",
                            "    - platform/x86: hp-bioscfg: Fix out-of-bounds array access in ACPI package",
                            "      parsing",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71094",
                            "    - net: usb: asix: validate PHY address before use",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71132",
                            "    - smc91x: fix broken irq-context in PREEMPT_RT",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71154",
                            "    - net: usb: rtl8150: fix memory leak on usb_submit_urb() failure",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71091",
                            "    - team: fix check for port enabled in",
                            "      team_queue_override_port_prio_changed()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71098",
                            "    - ip6_gre: make ip6gre_header() robust",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71082",
                            "    - Bluetooth: btusb: revert use of devm_kzalloc in btusb",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71131",
                            "    - crypto: seqiv - Do not use req->iv after crypto_aead_encrypt",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71087",
                            "    - iavf: fix off-by-one issues in iavf_config_rss_reg()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71071",
                            "    - iommu/mediatek: fix use-after-free on probe deferral",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71111",
                            "    - hwmon: (w83791d) Convert macros to functions to avoid TOCTOU",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71113",
                            "    - crypto: af_alg - zero initialize memory allocated via sock_kmalloc",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71149",
                            "    - io_uring/poll: correctly handle io_poll_add() return value on update",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68778",
                            "    - btrfs: don't log conflicting inode if it's a dir moved in the current",
                            "      transaction",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71119",
                            "    - powerpc/kexec: Enable SMT before waking offline CPUs",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71120",
                            "    - SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in",
                            "      gss_read_proxy_verf",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71148",
                            "    - net/handshake: restore destructor on submit failure",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68788",
                            "    - fsnotify: do not generate ACCESS/MODIFY events on child for special",
                            "      files",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71125",
                            "    - tracing: Do not register unsupported perf events",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71104",
                            "    - KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV",
                            "      timer",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71116",
                            "    - libceph: make decode_pool() more resilient against corrupted osdmaps",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71121",
                            "    - parisc: Do not reprogram affinitiy on ASP chip",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71102",
                            "    - scs: fix a wrong parameter in __scs_magic",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68804",
                            "    - platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68771",
                            "    - ocfs2: fix kernel BUG in ocfs2_find_victim_chain",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68808",
                            "    - media: vidtv: initialize local pointers upon transfer of memory",
                            "      ownership",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68769",
                            "    - f2fs: fix return value of f2fs_recover_fsync_data()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71069",
                            "    - f2fs: invalidate dentry cache on failed whiteout creation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68796",
                            "    - f2fs: fix to avoid updating zero-sized extent in extent cache",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71107",
                            "    - f2fs: ensure node page reads complete before f2fs_put_super() finishes",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68782",
                            "    - scsi: target: Reset t_task_cdb pointer in error case",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71075",
                            "    - scsi: aic94xx: fix use-after-free in device removal path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68818",
                            "    - scsi: Revert \"scsi: qla2xxx: Perform lockless command completion in",
                            "      abort path\"",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68797",
                            "    - char: applicom: fix NULL pointer dereference in ac_ioctl",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68819",
                            "    - media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71126",
                            "    - mptcp: avoid deadlock on fallback while reinjecting",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68820",
                            "    - ext4: xattr: fix null pointer deref in ext4_raw_inode()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68814",
                            "    - io_uring: fix filename leak in __io_openat_prep()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71147",
                            "    - KEYS: trusted: Fix a memory leak in tpm2_load_cmd",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71151",
                            "    - cifs: Fix memory and information leak in smb3_reconfigure()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71108",
                            "    - usb: typec: ucsi: Handle incorrect num_connectors capability",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71114",
                            "    - via_wdt: fix critical boot hang due to unnamed resource allocation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68783",
                            "    - ALSA: usb-mixer: us16x08: validate meter packet indices",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68776",
                            "    - net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68773",
                            "    - spi: fsl-cpm: Check length parity before switching to 16 bit mode",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68777",
                            "    - Input: ti_am335x_tsc - fix off-by-one error in wire_order validation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68806",
                            "    - ksmbd: fix buffer validation by including null terminator size in EA",
                            "      length",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71150",
                            "    - ksmbd: Fix refcount leak when invalid session is found on session lookup",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68786",
                            "    - ksmbd: skip lock-range check on equal size to avoid size==0 underflow",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68789",
                            "    - hwmon: (ibmpex) fix use-after-free in high/low store",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71112",
                            "    - net: hns3: add VLAN id validation before using",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71064",
                            "    - net: hns3: using the num_tqps in the vf driver to apply for resources",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68775",
                            "    - net/handshake: duplicate handshake cancellations leak socket",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68816",
                            "    - net/mlx5: fw_tracer, Validate format string parameters",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68795",
                            "    - ethtool: Avoid overflowing userspace buffer on stats query",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71122",
                            "    - iommufd/selftest: Check for overflow in IOMMU_TEST_OP_ADD_RESERVED",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68815",
                            "    - net/sched: ets: Remove drr class from the active list if it changes to",
                            "      strict",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68799",
                            "    - caif: fix integer underflow in cffrml_receive()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68813",
                            "    - ipvs: fix ipv4 null-ptr-deref in route error path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68785",
                            "    - net: openvswitch: fix middle attribute validation in push_nsh() action",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68800",
                            "    - mlxsw: spectrum_mr: Fix use-after-free when updating multicast route",
                            "      stats",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68801",
                            "    - mlxsw: spectrum_router: Fix neighbour use-after-free",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71066",
                            "    - net/sched: ets: Always remove class from active list before deleting in",
                            "      ets_qdisc_change",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68787",
                            "    - netrom: Fix memory leak in nr_sendmsg()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68809",
                            "    - ksmbd: vfs: fix race on m_flags in vfs_cache",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68817",
                            "    - ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68767",
                            "    - hfsplus: Verify inode mode when loading from disk",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68774",
                            "    - hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71067",
                            "    - ntfs: set dummy blocksize to read boot_block when mounting",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71118",
                            "    - ACPICA: Avoid walking the Namespace if start_node is NULL",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68780",
                            "    - sched/deadline: only set free_cpus for online runqueues",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68798",
                            "    - perf/x86/amd: Check event before enable to avoid GPF",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68794",
                            "    - iomap: adjust read range correctly for non-block-aligned positions",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68346",
                            "    - ALSA: dice: fix buffer overflow in detect_stream_formats()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68766",
                            "    - irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68756",
                            "    - block: Use RCU in blk_mq_[un]quiesce_tagset() instead of",
                            "      set->tag_list_lock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68753",
                            "    - ALSA: firewire-motu: add bounds check in put_user loop for DSP events",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68347",
                            "    - ALSA: firewire-motu: fix buffer overflow in hwdep read for DSP events",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68764",
                            "    - NFS: Automounted filesystems should inherit ro,noexec,nodev,sync flags",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68349",
                            "    - NFSv4/pNFS: Clear NFS_INO_LAYOUTCOMMIT in",
                            "      pnfs_mark_layout_stateid_invalid",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68325",
                            "    - net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68354",
                            "    - regulator: core: Protect regulator_supply_alias_list with",
                            "      regulator_list_mutex",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68758",
                            "    - backlight: led-bl: Add devlink to supplier LEDs",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68765",
                            "    - mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68763",
                            "    - crypto: starfive - Correctly handle return of sg_nents_for_len",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68740",
                            "    - ima: Handle error code returned by ima_filter_rule_match()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68362",
                            "    - wifi: rtl818x: rtl8187: Fix potential buffer underflow in",
                            "      rtl8187_rx_cb()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68741",
                            "    - scsi: qla2xxx: Fix improper freeing of purex item",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68742",
                            "    - bpf: Fix invalid prog->stats access when update_effective_progs fails",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68759",
                            "    - wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68363",
                            "    - bpf: Check skb->transport_header is set in bpf_skb_check_mtu",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68744",
                            "    - bpf: Free special fields when update [lru_,]percpu_hash maps",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68364",
                            "    - ocfs2: relax BUG() to ocfs2_error() in __ocfs2_move_extent()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68366",
                            "    - nbd: defer config unlock in nbd_genl_connect",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68367",
                            "    - macintosh/mac_hid: fix race condition in mac_hid_toggle_emumouse",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68755",
                            "    - staging: most: remove broken i2c driver",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68371",
                            "    - scsi: smartpqi: Fix device resources accessed after device removal",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68372",
                            "    - nbd: defer config put in recv_work",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68746",
                            "    - spi: tegra210-quad: Fix timeout handling",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68379",
                            "    - RDMA/rxe: Fix null deref on srq->rq.queue after resize failure",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68380",
                            "    - wifi: ath11k: fix peer HE MCS assignment",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68724",
                            "    - crypto: asymmetric_keys - prevent overflow in asymmetric_key_generate_id",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68727",
                            "    - ntfs3: Fix uninit buffer allocated by __getname()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68728",
                            "    - ntfs3: fix uninit memory after failed mi_read in mi_format_new",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68757",
                            "    - drm/vgem-fence: Fix potential deadlock on release",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68732",
                            "    - gpu: host1x: Fix race in syncpt alloc/free",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68733",
                            "    - smack: fix bug: unprivileged task can create labels",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68254",
                            "    - staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68255",
                            "    - staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68256",
                            "    - staging: rtl8723bs: fix out-of-bounds read in rtw_get_ie() parser",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68257",
                            "    - comedi: check device's attached status in compat ioctls",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68258",
                            "    - comedi: multiq3: sanitize config options in multiq3_attach()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68332",
                            "    - comedi: c6xdigio: Fix invalid PNP driver unregistration",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68265",
                            "    - nvme: fix admin request_queue lifetime",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68266",
                            "    - bfs: Reconstruct file type when loading from disk",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68259",
                            "    - KVM: SVM: Don't skip unrelated instruction if INT3/INTO is replaced",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68335",
                            "    - comedi: pcl818: fix null-ptr-deref in pcl818_ai_cancel()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68261",
                            "    - ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68336",
                            "    - locking/spinlock/debug: Fix data-race in do_raw_write_lock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68263",
                            "    - ksmbd: ipc: fix use-after-free in ipc_msg_send_request",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68264",
                            "    - ext4: refresh inline data size before write operations",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68337",
                            "    - jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system",
                            "      corrupted",
                            "  * CVE-2026-23111",
                            "    - netfilter: nf_tables: fix inverted genmask check in",
                            "      nft_map_catchall_activate()",
                            "  * CVE-2026-23209",
                            "    - macvlan: fix error recovery in macvlan_common_newlink()",
                            "  * CVE-2026-23074",
                            "    - net/sched: Enforce that teql can only be used as root qdisc",
                            "  * CVE-2026-23060",
                            "    - crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN",
                            "      spec",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-110.110~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2143477,
                            2144887,
                            2144730,
                            2143478,
                            2142235,
                            2143033,
                            2142337,
                            2141276,
                            2139322,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Thu, 26 Mar 2026 16:40:51 +0100"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23074",
                                "url": "https://ubuntu.com/security/CVE-2026-23074",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23060",
                                "url": "https://ubuntu.com/security/CVE-2026-23060",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23111",
                                "url": "https://ubuntu.com/security/CVE-2026-23111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-107.107~22.04.1 -proposed tracker (LP: #2144266)",
                            "",
                            "  [ Ubuntu: 6.8.0-107.107 ]",
                            "",
                            "  * noble/linux: 6.8.0-107.107 -proposed tracker (LP: #2144267)",
                            "  * CVE-2026-23074",
                            "    - net/sched: Enforce that teql can only be used as root qdisc",
                            "  * CVE-2026-23060",
                            "    - crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN",
                            "      spec",
                            "  * CVE-2026-23111",
                            "    - netfilter: nf_tables: fix inverted genmask check in",
                            "      nft_map_catchall_activate()",
                            "",
                            "  [ Ubuntu: 6.8.0-106.106 ]",
                            "",
                            "  * 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-riscv-6.8",
                        "version": "6.8.0-107.107~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2144266,
                            2144267
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Wed, 18 Mar 2026 15:14:52 +0100"
                    }
                ],
                "notes": "linux-headers-6.8.0-117-generic version '6.8.0-117.117~22.04.1' (source package linux-riscv-6.8 version '6.8.0-117.117~22.04.1') was added. linux-headers-6.8.0-117-generic version '6.8.0-117.117~22.04.1' has the same source package name, linux-riscv-6.8, as removed package linux-headers-6.8.0-106-generic. As such we can use the source package version of the removed package, '6.8.0-106.106~22.04.1', 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-6.8.0-117-generic",
                "from_version": {
                    "source_package_name": "linux-riscv-6.8",
                    "source_package_version": "6.8.0-106.106~22.04.1",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux-riscv-6.8",
                    "source_package_version": "6.8.0-117.117~22.04.1",
                    "version": "6.8.0-117.117~22.04.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-31419",
                        "url": "https://ubuntu.com/security/CVE-2026-31419",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: bonding: fix use-after-free in bond_xmit_broadcast()  bond_xmit_broadcast() reuses the original skb for the last slave (determined by bond_is_last_slave()) and clones it for others. Concurrent slave enslave/release can mutate the slave list during RCU-protected iteration, changing which slave is \"last\" mid-loop. This causes the original skb to be double-consumed (double-freed).  Replace the racy bond_is_last_slave() check with a simple index comparison (i + 1 == slaves_count) against the pre-snapshot slave count taken via READ_ONCE() before the loop.  This preserves the zero-copy optimization for the last slave while making the \"last\" determination stable against concurrent list mutations.  The UAF can trigger the following crash:  ================================================================== BUG: KASAN: slab-use-after-free in skb_clone Read of size 8 at addr ffff888100ef8d40 by task exploit/147  CPU: 1 UID: 0 PID: 147 Comm: exploit Not tainted 7.0.0-rc3+ #4 PREEMPTLAZY Call Trace:  <TASK>  dump_stack_lvl (lib/dump_stack.c:123)  print_report (mm/kasan/report.c:379 mm/kasan/report.c:482)  kasan_report (mm/kasan/report.c:597)  skb_clone (include/linux/skbuff.h:1724 include/linux/skbuff.h:1792 include/linux/skbuff.h:3396 net/core/skbuff.c:2108)  bond_xmit_broadcast (drivers/net/bonding/bond_main.c:5334)  bond_start_xmit (drivers/net/bonding/bond_main.c:5567 drivers/net/bonding/bond_main.c:5593)  dev_hard_start_xmit (include/linux/netdevice.h:5325 include/linux/netdevice.h:5334 net/core/dev.c:3871 net/core/dev.c:3887)  __dev_queue_xmit (include/linux/netdevice.h:3601 net/core/dev.c:4838)  ip6_finish_output2 (include/net/neighbour.h:540 include/net/neighbour.h:554 net/ipv6/ip6_output.c:136)  ip6_finish_output (net/ipv6/ip6_output.c:208 net/ipv6/ip6_output.c:219)  ip6_output (net/ipv6/ip6_output.c:250)  ip6_send_skb (net/ipv6/ip6_output.c:1985)  udp_v6_send_skb (net/ipv6/udp.c:1442)  udpv6_sendmsg (net/ipv6/udp.c:1733)  __sys_sendto (net/socket.c:730 net/socket.c:742 net/socket.c:2206)  __x64_sys_sendto (net/socket.c:2209)  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)  </TASK>  Allocated by task 147:  Freed by task 147:  The buggy address belongs to the object at ffff888100ef8c80  which belongs to the cache skbuff_head_cache of size 224 The buggy address is located 192 bytes inside of  freed 224-byte region [ffff888100ef8c80, ffff888100ef8d60)  Memory state around the buggy address:  ffff888100ef8c00: fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc  ffff888100ef8c80: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff888100ef8d00: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc                                                     ^  ffff888100ef8d80: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb  ffff888100ef8e00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31431",
                        "url": "https://ubuntu.com/security/CVE-2026-31431",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: algif_aead - Revert to operating out-of-place  This mostly reverts commit 72548b093ee3 except for the copying of the associated data.  There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings.  Get rid of all the complexity added for in-place operation and just copy the AD directly.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-04-22 09:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31533",
                        "url": "https://ubuntu.com/security/CVE-2026-31533",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption  The -EBUSY handling in tls_do_encryption(), introduced by commit 859054147318 (\"net: tls: handle backlogging of crypto requests\"), has a use-after-free due to double cleanup of encrypt_pending and the scatterlist entry.  When crypto_aead_encrypt() returns -EBUSY, the request is enqueued to the cryptd backlog and the async callback tls_encrypt_done() will be invoked upon completion. That callback unconditionally restores the scatterlist entry (sge->offset, sge->length) and decrements ctx->encrypt_pending. However, if tls_encrypt_async_wait() returns an error, the synchronous error path in tls_do_encryption() performs the same cleanup again, double-decrementing encrypt_pending and double-restoring the scatterlist.  The double-decrement corrupts the encrypt_pending sentinel (initialized to 1), making tls_encrypt_async_wait() permanently skip the wait for pending async callbacks. A subsequent sendmsg can then free the tls_rec via bpf_exec_tx_verdict() while a cryptd callback is still pending, resulting in a use-after-free when the callback fires on the freed record.  Fix this by skipping the synchronous cleanup when the -EBUSY async wait returns an error, since the callback has already handled encrypt_pending and sge restoration.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-23 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31504",
                        "url": "https://ubuntu.com/security/CVE-2026-31504",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix fanout UAF in packet_release() via NETDEV_UP race  `packet_release()` has a race window where `NETDEV_UP` can re-register a socket into a fanout group's `arr[]` array. The re-registration is not cleaned up by `fanout_release()`, leaving a dangling pointer in the fanout array. `packet_release()` does NOT zero `po->num` in its `bind_lock` section. After releasing `bind_lock`, `po->num` is still non-zero and `po->ifindex` still matches the bound device. A concurrent `packet_notifier(NETDEV_UP)` that already found the socket in `sklist` can re-register the hook. For fanout sockets, this re-registration calls `__fanout_link(sk, po)` which adds the socket back into `f->arr[]` and increments `f->num_members`, but does NOT increment `f->sk_ref`.  The fix sets `po->num` to zero in `packet_release` while `bind_lock` is held to prevent NETDEV_UP from linking, preventing the race window.  This bug was found following an additional audit with Claude Code based on CVE-2025-38617.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-22 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23214",
                        "url": "https://ubuntu.com/security/CVE-2026-23214",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: reject new transactions if the fs is fully read-only  [BUG] There is a bug report where a heavily fuzzed fs is mounted with all rescue mount options, which leads to the following warnings during unmount:    BTRFS: Transaction aborted (error -22)   Modules linked in:   CPU: 0 UID: 0 PID: 9758 Comm: repro.out Not tainted   6.19.0-rc5-00002-gb71e635feefc #7 PREEMPT(full)   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014   RIP: 0010:find_free_extent_update_loop fs/btrfs/extent-tree.c:4208 [inline]   RIP: 0010:find_free_extent+0x52f0/0x5d20 fs/btrfs/extent-tree.c:4611   Call Trace:    <TASK>    btrfs_reserve_extent+0x2cd/0x790 fs/btrfs/extent-tree.c:4705    btrfs_alloc_tree_block+0x1e1/0x10e0 fs/btrfs/extent-tree.c:5157    btrfs_force_cow_block+0x578/0x2410 fs/btrfs/ctree.c:517    btrfs_cow_block+0x3c4/0xa80 fs/btrfs/ctree.c:708    btrfs_search_slot+0xcad/0x2b50 fs/btrfs/ctree.c:2130    btrfs_truncate_inode_items+0x45d/0x2350 fs/btrfs/inode-item.c:499    btrfs_evict_inode+0x923/0xe70 fs/btrfs/inode.c:5628    evict+0x5f4/0xae0 fs/inode.c:837    __dentry_kill+0x209/0x660 fs/dcache.c:670    finish_dput+0xc9/0x480 fs/dcache.c:879    shrink_dcache_for_umount+0xa0/0x170 fs/dcache.c:1661    generic_shutdown_super+0x67/0x2c0 fs/super.c:621    kill_anon_super+0x3b/0x70 fs/super.c:1289    btrfs_kill_super+0x41/0x50 fs/btrfs/super.c:2127    deactivate_locked_super+0xbc/0x130 fs/super.c:474    cleanup_mnt+0x425/0x4c0 fs/namespace.c:1318    task_work_run+0x1d4/0x260 kernel/task_work.c:233    exit_task_work include/linux/task_work.h:40 [inline]    do_exit+0x694/0x22f0 kernel/exit.c:971    do_group_exit+0x21c/0x2d0 kernel/exit.c:1112    __do_sys_exit_group kernel/exit.c:1123 [inline]    __se_sys_exit_group kernel/exit.c:1121 [inline]    __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1121    x64_sys_call+0x2210/0x2210 arch/x86/include/generated/asm/syscalls_64.h:232    do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]    do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94    entry_SYSCALL_64_after_hwframe+0x77/0x7f   RIP: 0033:0x44f639   Code: Unable to access opcode bytes at 0x44f60f.   RSP: 002b:00007ffc15c4e088 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7   RAX: ffffffffffffffda RBX: 00000000004c32f0 RCX: 000000000044f639   RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001   RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 0000000000000000   R10: 0000000000000000 R11: 0000000000000246 R12: 00000000004c32f0   R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001    </TASK>  Since rescue mount options will mark the full fs read-only, there should be no new transaction triggered.  But during unmount we will evict all inodes, which can trigger a new transaction, and triggers warnings on a heavily corrupted fs.  [CAUSE] Btrfs allows new transaction even on a read-only fs, this is to allow log replay happen even on read-only mounts, just like what ext4/xfs do.  However with rescue mount options, the fs is fully read-only and cannot be remounted read-write, thus in that case we should also reject any new transactions.  [FIX] If we find the fs has rescue mount options, we should treat the fs as error, so that no new transaction can be started.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23213",
                        "url": "https://ubuntu.com/security/CVE-2026-23213",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/pm: Disable MMIO access during SMU Mode 1 reset  During Mode 1 reset, the ASIC undergoes a reset cycle and becomes temporarily inaccessible via PCIe. Any attempt to access MMIO registers during this window (e.g., from interrupt handlers or other driver threads) can result in uncompleted PCIe transactions, leading to NMI panics or system hangs.  To prevent this, set the `no_hw_access` flag to true immediately after triggering the reset. This signals other driver components to skip register accesses while the device is offline.  A memory barrier `smp_mb()` is added to ensure the flag update is globally visible to all cores before the driver enters the sleep/wait state.  (cherry picked from commit 7edb503fe4b6d67f47d8bb0dfafb8e699bb0f8a4)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71225",
                        "url": "https://ubuntu.com/security/CVE-2025-71225",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: suspend array while updating raid_disks via sysfs  In raid1_reshape(), freeze_array() is called before modifying the r1bio memory pool (conf->r1bio_pool) and conf->raid_disks, and unfreeze_array() is called after the update is completed.  However, freeze_array() only waits until nr_sync_pending and (nr_pending - nr_queued) of all buckets reaches zero. When an I/O error occurs, nr_queued is increased and the corresponding r1bio is queued to either retry_list or bio_end_io_list. As a result, freeze_array() may unblock before these r1bios are released.  This can lead to a situation where conf->raid_disks and the mempool have already been updated while queued r1bios, allocated with the old raid_disks value, are later released. Consequently, free_r1bio() may access memory out of bounds in put_all_bios() and release r1bios of the wrong size to the new mempool, potentially causing issues with the mempool as well.  Since only normal I/O might increase nr_queued while an I/O error occurs, suspending the array avoids this issue.  Note: Updating raid_disks via ioctl SET_ARRAY_INFO already suspends the array. Therefore, we suspend the array when updating raid_disks via sysfs to avoid this issue too.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68823",
                        "url": "https://ubuntu.com/security/CVE-2025-68823",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ublk: fix deadlock when reading partition table  When one process(such as udev) opens ublk block device (e.g., to read the partition table via bdev_open()), a deadlock[1] can occur:  1. bdev_open() grabs disk->open_mutex 2. The process issues read I/O to ublk backend to read partition table 3. In __ublk_complete_rq(), blk_update_request() or blk_mq_end_request()    runs bio->bi_end_io() callbacks 4. If this triggers fput() on file descriptor of ublk block device, the    work may be deferred to current task's task work (see fput() implementation) 5. This eventually calls blkdev_release() from the same context 6. blkdev_release() tries to grab disk->open_mutex again 7. Deadlock: same task waiting for a mutex it already holds  The fix is to run blk_update_request() and blk_mq_end_request() with bottom halves disabled. This forces blkdev_release() to run in kernel work-queue context instead of current task work context, and allows ublk server to make forward progress, and avoids the deadlock.  [axboe: rewrite comment in ublk]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23191",
                        "url": "https://ubuntu.com/security/CVE-2026-23191",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: aloop: Fix racy access at PCM trigger  The PCM trigger callback of aloop driver tries to check the PCM state and stop the stream of the tied substream in the corresponding cable. Since both check and stop operations are performed outside the cable lock, this may result in UAF when a program attempts to trigger frequently while opening/closing the tied stream, as spotted by fuzzers.  For addressing the UAF, this patch changes two things: - It covers the most of code in loopback_check_format() with   cable->lock spinlock, and add the proper NULL checks.  This avoids   already some racy accesses. - In addition, now we try to check the state of the capture PCM stream   that may be stopped in this function, which was the major pain point   leading to UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23215",
                        "url": "https://ubuntu.com/security/CVE-2026-23215",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/vmware: Fix hypercall clobbers  Fedora QA reported the following panic:    BUG: unable to handle page fault for address: 0000000040003e54   #PF: supervisor write access in kernel mode   #PF: error_code(0x0002) - not-present page   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20251119-3.fc43 11/19/2025   RIP: 0010:vmware_hypercall4.constprop.0+0x52/0x90   ..   Call Trace:    vmmouse_report_events+0x13e/0x1b0    psmouse_handle_byte+0x15/0x60    ps2_interrupt+0x8a/0xd0    ...  because the QEMU VMware mouse emulation is buggy, and clears the top 32 bits of %rdi that the kernel kept a pointer in.  The QEMU vmmouse driver saves and restores the register state in a \"uint32_t data[6];\" and as a result restores the state with the high bits all cleared.  RDI originally contained the value of a valid kernel stack address (0xff5eeb3240003e54).  After the vmware hypercall it now contains 0x40003e54, and we get a page fault as a result when it is dereferenced.  The proper fix would be in QEMU, but this works around the issue in the kernel to keep old setups working, when old kernels had not happened to keep any state in %rdi over the hypercall.  In theory this same issue exists for all the hypercalls in the vmmouse driver; in practice it has only been seen with vmware_hypercall3() and vmware_hypercall4().  For now, just mark RDI/RSI as clobbered for those two calls.  This should have a minimal effect on code generation overall as it should be rare for the compiler to want to make RDI/RSI live across hypercalls.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23182",
                        "url": "https://ubuntu.com/security/CVE-2026-23182",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra: Fix a memory leak in tegra_slink_probe()  In tegra_slink_probe(), when platform_get_irq() fails, it directly returns from the function with an error code, which causes a memory leak.  Replace it with a goto label to ensure proper cleanup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23190",
                        "url": "https://ubuntu.com/security/CVE-2026-23190",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: amd: fix memory leak in acp3x pdm dma ops",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23254",
                        "url": "https://ubuntu.com/security/CVE-2026-23254",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: gro: fix outer network offset  The udp GRO complete stage assumes that all the packets inserted the RX have the `encapsulation` flag zeroed. Such assumption is not true, as a few H/W NICs can set such flag when H/W offloading the checksum for an UDP encapsulated traffic, the tun driver can inject GSO packets with UDP encapsulation and the problematic layout can also be created via a veth based setup.  Due to the above, in the problematic scenarios, udp4_gro_complete() uses the wrong network offset (inner instead of outer) to compute the outer UDP header pseudo checksum, leading to csum validation errors later on in packet processing.  Address the issue always clearing the encapsulation flag at GRO completion time. Such flag will be set again as needed for encapsulated packets by udp_gro_complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23180",
                        "url": "https://ubuntu.com/security/CVE-2026-23180",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: add bounds check for if_id in IRQ handler  The IRQ handler extracts if_id from the upper 16 bits of the hardware status register and uses it to index into ethsw->ports[] without validation. Since if_id can be any 16-bit value (0-65535) but the ports array is only allocated with sw_attr.num_ifs elements, this can lead to an out-of-bounds read potentially.  Add a bounds check before accessing the array, consistent with the existing validation in dpaa2_switch_rx().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23256",
                        "url": "https://ubuntu.com/security/CVE-2026-23256",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in VF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Compile tested only. Issue found using code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23257",
                        "url": "https://ubuntu.com/security/CVE-2026-23257",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in PF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Also, decrement i in the devlink_alloc failure path to point to the last successfully allocated index.  Compile tested only. Issue found using code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23258",
                        "url": "https://ubuntu.com/security/CVE-2026-23258",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Initialize netdev pointer before queue setup  In setup_nic_devices(), the netdev is allocated using alloc_etherdev_mq(). However, the pointer to this structure is stored in oct->props[i].netdev only after the calls to netif_set_real_num_rx_queues() and netif_set_real_num_tx_queues().  If either of these functions fails, setup_nic_devices() returns an error without freeing the allocated netdev. Since oct->props[i].netdev is still NULL at this point, the cleanup function liquidio_destroy_nic_device() will fail to find and free the netdev, resulting in a memory leak.  Fix this by initializing oct->props[i].netdev before calling the queue setup functions. This ensures that the netdev is properly accessible for cleanup in case of errors.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23206",
                        "url": "https://ubuntu.com/security/CVE-2026-23206",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: prevent ZERO_SIZE_PTR dereference when num_ifs is zero  The driver allocates arrays for ports, FDBs, and filter blocks using kcalloc() with ethsw->sw_attr.num_ifs as the element count. When the device reports zero interfaces (either due to hardware configuration or firmware issues), kcalloc(0, ...) returns ZERO_SIZE_PTR (0x10) instead of NULL.  Later in dpaa2_switch_probe(), the NAPI initialization unconditionally accesses ethsw->ports[0]->netdev, which attempts to dereference ZERO_SIZE_PTR (address 0x10), resulting in a kernel panic.  Add a check to ensure num_ifs is greater than zero after retrieving device attributes. This prevents the zero-sized allocations and subsequent invalid pointer dereference.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23204",
                        "url": "https://ubuntu.com/security/CVE-2026-23204",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: cls_u32: use skb_header_pointer_careful()  skb_header_pointer() does not fully validate negative @offset values.  Use skb_header_pointer_careful() instead.  GangMin Kim provided a report and a repro fooling u32_classify():  BUG: KASAN: slab-out-of-bounds in u32_classify+0x1180/0x11b0 net/sched/cls_u32.c:221",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23205",
                        "url": "https://ubuntu.com/security/CVE-2026-23205",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/client: fix memory leak in smb2_open_file()  Reproducer:    1. server: directories are exported read-only   2. client: mount -t cifs //${server_ip}/export /mnt   3. client: dd if=/dev/zero of=/mnt/file bs=512 count=1000 oflag=direct   4. client: umount /mnt   5. client: sleep 1   6. client: modprobe -r cifs  The error message is as follows:   =============================================================================   BUG cifs_small_rq (Not tainted): Objects remaining on __kmem_cache_shutdown()  -----------------------------------------------------------------------------    Object 0x00000000d47521be @offset=14336   ...   WARNING: mm/slub.c:1251 at __kmem_cache_shutdown+0x34e/0x440, CPU#0: modprobe/1577   ...   Call Trace:    <TASK>    kmem_cache_destroy+0x94/0x190    cifs_destroy_request_bufs+0x3e/0x50 [cifs]    cleanup_module+0x4e/0x540 [cifs]    __se_sys_delete_module+0x278/0x400    __x64_sys_delete_module+0x5f/0x70    x64_sys_call+0x2299/0x2ff0    do_syscall_64+0x89/0x350    entry_SYSCALL_64_after_hwframe+0x76/0x7e   ...   kmem_cache_destroy cifs_small_rq: Slab cache still has objects when called from cifs_destroy_request_bufs+0x3e/0x50 [cifs]   WARNING: mm/slab_common.c:532 at kmem_cache_destroy+0x16b/0x190, CPU#0: modprobe/1577",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23176",
                        "url": "https://ubuntu.com/security/CVE-2026-23176",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: toshiba_haps: Fix memory leaks in add/remove routines  toshiba_haps_add() leaks the haps object allocated by it if it returns an error after allocating that object successfully.  toshiba_haps_remove() does not free the object pointed to by toshiba_haps before clearing that pointer, so it becomes unreachable allocated memory.  Address these memory leaks by using devm_kzalloc() for allocating the memory in question.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23216",
                        "url": "https://ubuntu.com/security/CVE-2026-23216",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_conn_usage_count()  In iscsit_dec_conn_usage_count(), the function calls complete() while holding the conn->conn_usage_lock. As soon as complete() is invoked, the waiter (such as iscsit_close_connection()) may wake up and proceed to free the iscsit_conn structure.  If the waiter frees the memory before the current thread reaches spin_unlock_bh(), it results in a KASAN slab-use-after-free as the function attempts to release a lock within the already-freed connection structure.  Fix this by releasing the spinlock before calling complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23193",
                        "url": "https://ubuntu.com/security/CVE-2026-23193",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_session_usage_count()  In iscsit_dec_session_usage_count(), the function calls complete() while holding the sess->session_usage_lock. Similar to the connection usage count logic, the waiter signaled by complete() (e.g., in the session release path) may wake up and free the iscsit_session structure immediately.  This creates a race condition where the current thread may attempt to execute spin_unlock_bh() on a session structure that has already been deallocated, resulting in a KASAN slab-use-after-free.  To resolve this, release the session_usage_lock before calling complete() to ensure all dereferences of the sess pointer are finished before the waiter is allowed to proceed with deallocation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23260",
                        "url": "https://ubuntu.com/security/CVE-2026-23260",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: maple: free entry on mas_store_gfp() failure  regcache_maple_write() allocates a new block ('entry') to merge adjacent ranges and then stores it with mas_store_gfp(). When mas_store_gfp() fails, the new 'entry' remains allocated and is never freed, leaking memory.  Free 'entry' on the failure path; on success continue freeing the replaced neighbor blocks ('lower', 'upper').",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23179",
                        "url": "https://ubuntu.com/security/CVE-2026-23179",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: fixup hang in nvmet_tcp_listen_data_ready()  When the socket is closed while in TCP_LISTEN a callback is run to flush all outstanding packets, which in turns calls nvmet_tcp_listen_data_ready() with the sk_callback_lock held. So we need to check if we are in TCP_LISTEN before attempting to get the sk_callback_lock() to avoid a deadlock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23261",
                        "url": "https://ubuntu.com/security/CVE-2026-23261",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: release admin tagset if init fails  nvme_fabrics creates an NVMe/FC controller in following path:      nvmf_dev_write()       -> nvmf_create_ctrl()         -> nvme_fc_create_ctrl()           -> nvme_fc_init_ctrl()  nvme_fc_init_ctrl() allocates the admin blk-mq resources right after nvme_add_ctrl() succeeds.  If any of the subsequent steps fail (changing the controller state, scheduling connect work, etc.), we jump to the fail_ctrl path, which tears down the controller references but never frees the admin queue/tag set.  The leaked blk-mq allocations match the kmemleak report seen during blktests nvme/fc.  Check ctrl->ctrl.admin_tagset in the fail_ctrl path and call nvme_remove_admin_tag_set() when it is set so that all admin queue allocations are reclaimed whenever controller setup aborts.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23178",
                        "url": "https://ubuntu.com/security/CVE-2026-23178",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()  `i2c_hid_xfer` is used to read `recv_len + sizeof(__le16)` bytes of data into `ihid->rawbuf`.  The former can come from the userspace in the hidraw driver and is only bounded by HID_MAX_BUFFER_SIZE(16384) by default (unless we also set `max_buffer_size` field of `struct hid_ll_driver` which we do not).  The latter has size determined at runtime by the maximum size of different report types you could receive on any particular device and can be a much smaller value.  Fix this by truncating `recv_len` to `ihid->bufsize - sizeof(__le16)`.  The impact is low since access to hidraw devices requires root.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71268",
                        "url": "https://ubuntu.com/security/CVE-2025-71268",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix reservation leak in some error paths when inserting inline extent  If we fail to allocate a path or join a transaction, we return from __cow_file_range_inline() without freeing the reserved qgroup data, resulting in a leak. Fix this by ensuring we call btrfs_qgroup_free_data() in such cases.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71270",
                        "url": "https://ubuntu.com/security/CVE-2025-71270",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: Enable exception fixup for specific ADE subcode  This patch allows the LoongArch BPF JIT to handle recoverable memory access errors generated by BPF_PROBE_MEM* instructions.  When a BPF program performs memory access operations, the instructions it executes may trigger ADEM exceptions. The kernel’s built-in BPF exception table mechanism (EX_TYPE_BPF) will generate corresponding exception fixup entries in the JIT compilation phase; however, the architecture-specific trap handling function needs to proactively call the common fixup routine to achieve exception recovery.  do_ade(): fix EX_TYPE_BPF memory access exceptions for BPF programs, ensure safe execution.  Relevant test cases: illegal address access tests in module_attach and subprogs_extable of selftests/bpf.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71220",
                        "url": "https://ubuntu.com/security/CVE-2025-71220",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/server: call ksmbd_session_rpc_close() on error path in create_smb2_pipe()  When ksmbd_iov_pin_rsp() fails, we should call ksmbd_session_rpc_close().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71222",
                        "url": "https://ubuntu.com/security/CVE-2025-71222",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: wlcore: ensure skb headroom before skb_push  This avoids occasional skb_under_panic Oops from wl1271_tx_work. In this case, headroom is less than needed (typically 110 - 94 = 16 bytes).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71224",
                        "url": "https://ubuntu.com/security/CVE-2025-71224",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: ocb: skip rx_no_sta when interface is not joined  ieee80211_ocb_rx_no_sta() assumes a valid channel context, which is only present after JOIN_OCB.  RX may run before JOIN_OCB is executed, in which case the OCB interface is not operational. Skip RX peer handling when the interface is not joined to avoid warnings in the RX path.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23262",
                        "url": "https://ubuntu.com/security/CVE-2026-23262",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gve: Fix stats report corruption on queue count change  The driver and the NIC share a region in memory for stats reporting. The NIC calculates its offset into this region based on the total size of the stats region and the size of the NIC's stats.  When the number of queues is changed, the driver's stats region is resized. If the queue count is increased, the NIC can write past the end of the allocated stats region, causing memory corruption. If the queue count is decreased, there is a gap between the driver and NIC stats, leading to incorrect stats reporting.  This change fixes the issue by allocating stats region with maximum size, and the offset calculation for NIC stats is changed to match with the calculation of the NIC.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38201",
                        "url": "https://ubuntu.com/security/CVE-2025-38201",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX  Otherwise, it is possible to hit WARN_ON_ONCE in __kvmalloc_node_noprof() when resizing hashtable because __GFP_NOWARN is unset.  Similar to:    b541ba7d1f5a (\"netfilter: conntrack: clamp maximum hashtable size to INT_MAX\")",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-07-04 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23198",
                        "url": "https://ubuntu.com/security/CVE-2026-23198",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Don't clobber irqfd routing type when deassigning irqfd  When deassigning a KVM_IRQFD, don't clobber the irqfd's copy of the IRQ's routing entry as doing so breaks kvm_arch_irq_bypass_del_producer() on x86 and arm64, which explicitly look for KVM_IRQ_ROUTING_MSI.  Instead, to handle a concurrent routing update, verify that the irqfd is still active before consuming the routing information.  As evidenced by the x86 and arm64 bugs, and another bug in kvm_arch_update_irqfd_routing() (see below), clobbering the entry type without notifying arch code is surprising and error prone.  As a bonus, checking that the irqfd is active provides a convenient location for documenting _why_ KVM must not consume the routing entry for an irqfd that is in the process of being deassigned: once the irqfd is deleted from the list (which happens *before* the eventfd is detached), it will no longer receive updates via kvm_irq_routing_update(), and so KVM could deliver an event using stale routing information (relative to KVM_SET_GSI_ROUTING returning to userspace).  As an even better bonus, explicitly checking for the irqfd being active fixes a similar bug to the one the clobbering is trying to prevent: if an irqfd is deactivated, and then its routing is changed, kvm_irq_routing_update() won't invoke kvm_arch_update_irqfd_routing() (because the irqfd isn't in the list).  And so if the irqfd is in bypass mode, IRQs will continue to be posted using the old routing information.  As for kvm_arch_irq_bypass_del_producer(), clobbering the routing type results in KVM incorrectly keeping the IRQ in bypass mode, which is especially problematic on AMD as KVM tracks IRQs that are being posted to a vCPU in a list whose lifetime is tied to the irqfd.  Without the help of KASAN to detect use-after-free, the most common sympton on AMD is a NULL pointer deref in amd_iommu_update_ga() due to the memory for irqfd structure being re-allocated and zeroed, resulting in irqfd->irq_bypass_data being NULL when read by avic_update_iommu_vcpu_affinity():    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 40cf2b9067 P4D 40cf2b9067 PUD 408362a067 PMD 0   Oops: Oops: 0000 [#1] SMP   CPU: 6 UID: 0 PID: 40383 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--5dddc257e6b2-irqfd #31 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:amd_iommu_update_ga+0x19/0xe0   Call Trace:    <TASK>    avic_update_iommu_vcpu_affinity+0x3d/0x90 [kvm_amd]    __avic_vcpu_load+0xf4/0x130 [kvm_amd]    kvm_arch_vcpu_load+0x89/0x210 [kvm]    vcpu_load+0x30/0x40 [kvm]    kvm_arch_vcpu_ioctl_run+0x45/0x620 [kvm]    kvm_vcpu_ioctl+0x571/0x6a0 [kvm]    __se_sys_ioctl+0x6d/0xb0    do_syscall_64+0x6f/0x9d0    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x46893b     </TASK>   ---[ end trace 0000000000000000 ]---  If AVIC is inhibited when the irfd is deassigned, the bug will manifest as list corruption, e.g. on the next irqfd assignment.    list_add corruption. next->prev should be prev (ffff8d474d5cd588),                        but was 0000000000000000. (next=ffff8d8658f86530).   ------------[ cut here ]------------   kernel BUG at lib/list_debug.c:31!   Oops: invalid opcode: 0000 [#1] SMP   CPU: 128 UID: 0 PID: 80818 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--f19dc4d680ba-irqfd #28 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:__list_add_valid_or_report+0x97/0xc0   Call Trace:    <TASK>    avic_pi_update_irte+0x28e/0x2b0 [kvm_amd]    kvm_pi_update_irte+0xbf/0x190 [kvm]    kvm_arch_irq_bypass_add_producer+0x72/0x90 [kvm]    irq_bypass_register_consumer+0xcd/0x170 [irqbypa ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23264",
                        "url": "https://ubuntu.com/security/CVE-2026-23264",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Revert \"drm/amd: Check if ASPM is enabled from PCIe subsystem\"  This reverts commit 7294863a6f01248d72b61d38478978d638641bee.  This commit was erroneously applied again after commit 0ab5d711ec74 (\"drm/amd: Refactor `amdgpu_aspm` to be evaluated per device\") removed it, leading to very hard to debug crashes, when used with a system with two AMD GPUs of which only one supports ASPM.  (cherry picked from commit 97a9689300eb2b393ba5efc17c8e5db835917080)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23187",
                        "url": "https://ubuntu.com/security/CVE-2026-23187",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: fix out-of-range access of bc->domains  Fix out-of-range access of bc->domains in imx8m_blk_ctrl_remove().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23148",
                        "url": "https://ubuntu.com/security/CVE-2026-23148",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference  There is a race condition in nvmet_bio_done() that can cause a NULL pointer dereference in blk_cgroup_bio_start():  1. nvmet_bio_done() is called when a bio completes 2. nvmet_req_complete() is called, which invokes req->ops->queue_response(req) 3. The queue_response callback can re-queue and re-submit the same request 4. The re-submission reuses the same inline_bio from nvmet_req 5. Meanwhile, nvmet_req_bio_put() (called after nvmet_req_complete)    invokes bio_uninit() for inline_bio, which sets bio->bi_blkg to NULL 6. The re-submitted bio enters submit_bio_noacct_nocheck() 7. blk_cgroup_bio_start() dereferences bio->bi_blkg, causing a crash:    BUG: kernel NULL pointer dereference, address: 0000000000000028   #PF: supervisor read access in kernel mode   RIP: 0010:blk_cgroup_bio_start+0x10/0xd0   Call Trace:    submit_bio_noacct_nocheck+0x44/0x250    nvmet_bdev_execute_rw+0x254/0x370 [nvmet]    process_one_work+0x193/0x3c0    worker_thread+0x281/0x3a0  Fix this by reordering nvmet_bio_done() to call nvmet_req_bio_put() BEFORE nvmet_req_complete(). This ensures the bio is cleaned up before the request can be re-submitted, preventing the race condition.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23166",
                        "url": "https://ubuntu.com/security/CVE-2026-23166",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ice: Fix NULL pointer dereference in ice_vsi_set_napi_queues  Add NULL pointer checks in ice_vsi_set_napi_queues() to prevent crashes during resume from suspend when rings[q_idx]->q_vector is NULL.  Tested adaptor: 60:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller E810-XXV for SFP [8086:159b] (rev 02)         Subsystem: Intel Corporation Ethernet Network Adapter E810-XXV-2 [8086:4003]  SR-IOV state: both disabled and enabled can reproduce this issue.  kernel version: v6.18  Reproduce steps: Boot up and execute suspend like systemctl suspend or rtcwake.  Log: <1>[  231.443607] BUG: kernel NULL pointer dereference, address: 0000000000000040 <1>[  231.444052] #PF: supervisor read access in kernel mode <1>[  231.444484] #PF: error_code(0x0000) - not-present page <6>[  231.444913] PGD 0 P4D 0 <4>[  231.445342] Oops: Oops: 0000 [#1] SMP NOPTI <4>[  231.446635] RIP: 0010:netif_queue_set_napi+0xa/0x170 <4>[  231.447067] Code: 31 f6 31 ff c3 cc cc cc cc 0f 1f 80 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 48 85 c9 74 0b <48> 83 79 30 00 0f 84 39 01 00 00 55 41 89 d1 49 89 f8 89 f2 48 89 <4>[  231.447513] RSP: 0018:ffffcc780fc078c0 EFLAGS: 00010202 <4>[  231.447961] RAX: ffff8b848ca30400 RBX: ffff8b848caf2028 RCX: 0000000000000010 <4>[  231.448443] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8b848dbd4000 <4>[  231.448896] RBP: ffffcc780fc078e8 R08: 0000000000000000 R09: 0000000000000000 <4>[  231.449345] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001 <4>[  231.449817] R13: ffff8b848dbd4000 R14: ffff8b84833390c8 R15: 0000000000000000 <4>[  231.450265] FS:  00007c7b29e9d740(0000) GS:ffff8b8c068e2000(0000) knlGS:0000000000000000 <4>[  231.450715] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 <4>[  231.451179] CR2: 0000000000000040 CR3: 000000030626f004 CR4: 0000000000f72ef0 <4>[  231.451629] PKRU: 55555554 <4>[  231.452076] Call Trace: <4>[  231.452549]  <TASK> <4>[  231.452996]  ? ice_vsi_set_napi_queues+0x4d/0x110 [ice] <4>[  231.453482]  ice_resume+0xfd/0x220 [ice] <4>[  231.453977]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.454425]  pci_pm_resume+0x8c/0x140 <4>[  231.454872]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.455347]  dpm_run_callback+0x5f/0x160 <4>[  231.455796]  ? dpm_wait_for_superior+0x107/0x170 <4>[  231.456244]  device_resume+0x177/0x270 <4>[  231.456708]  dpm_resume+0x209/0x2f0 <4>[  231.457151]  dpm_resume_end+0x15/0x30 <4>[  231.457596]  suspend_devices_and_enter+0x1da/0x2b0 <4>[  231.458054]  enter_state+0x10e/0x570  Add defensive checks for both the ring pointer and its q_vector before dereferencing, allowing the system to resume successfully even when q_vectors are unmapped.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23151",
                        "url": "https://ubuntu.com/security/CVE-2026-23151",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: MGMT: Fix memory leak in set_ssp_complete  Fix memory leak in set_ssp_complete() where mgmt_pending_cmd structures are not freed after being removed from the pending list.  Commit 302a1f674c00 (\"Bluetooth: MGMT: Fix possible UAFs\") replaced mgmt_pending_foreach() calls with individual command handling but missed adding mgmt_pending_free() calls in both error and success paths of set_ssp_complete(). Other completion functions like set_le_complete() were fixed correctly in the same commit.  This causes a memory leak of the mgmt_pending_cmd structure and its associated parameter data for each SSP command that completes.  Add the missing mgmt_pending_free(cmd) calls in both code paths to fix the memory leak. Also fix the same issue in set_advertising_complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23163",
                        "url": "https://ubuntu.com/security/CVE-2026-23163",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: fix NULL pointer dereference in amdgpu_gmc_filter_faults_remove  On APUs such as Raven and Renoir (GC 9.1.0, 9.2.2, 9.3.0), the ih1 and ih2 interrupt ring buffers are not initialized. This is by design, as these secondary IH rings are only available on discrete GPUs. See vega10_ih_sw_init() which explicitly skips ih1/ih2 initialization when AMD_IS_APU is set.  However, amdgpu_gmc_filter_faults_remove() unconditionally uses ih1 to get the timestamp of the last interrupt entry. When retry faults are enabled on APUs (noretry=0), this function is called from the SVM page fault recovery path, resulting in a NULL pointer dereference when amdgpu_ih_decode_iv_ts_helper() attempts to access ih->ring[].  The crash manifests as:    BUG: kernel NULL pointer dereference, address: 0000000000000004   RIP: 0010:amdgpu_ih_decode_iv_ts_helper+0x22/0x40 [amdgpu]   Call Trace:    amdgpu_gmc_filter_faults_remove+0x60/0x130 [amdgpu]    svm_range_restore_pages+0xae5/0x11c0 [amdgpu]    amdgpu_vm_handle_fault+0xc8/0x340 [amdgpu]    gmc_v9_0_process_interrupt+0x191/0x220 [amdgpu]    amdgpu_irq_dispatch+0xed/0x2c0 [amdgpu]    amdgpu_ih_process+0x84/0x100 [amdgpu]  This issue was exposed by commit 1446226d32a4 (\"drm/amdgpu: Remove GC HW IP 9.3.0 from noretry=1\") which changed the default for Renoir APU from noretry=1 to noretry=0, enabling retry fault handling and thus exercising the buggy code path.  Fix this by adding a check for ih1.ring_size before attempting to use it. Also restore the soft_ih support from commit dd299441654f (\"drm/amdgpu: Rework retry fault removal\").  This is needed if the hardware doesn't support secondary HW IH rings.  v2: additional updates (Alex)  (cherry picked from commit 6ce8d536c80aa1f059e82184f0d1994436b1d526)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23159",
                        "url": "https://ubuntu.com/security/CVE-2026-23159",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf: sched: Fix perf crash with new is_user_task() helper  In order to do a user space stacktrace the current task needs to be a user task that has executed in user space. It use to be possible to test if a task is a user task or not by simply checking the task_struct mm field. If it was non NULL, it was a user task and if not it was a kernel task.  But things have changed over time, and some kernel tasks now have their own mm field.  An idea was made to instead test PF_KTHREAD and two functions were used to wrap this check in case it became more complex to test if a task was a user task or not[1]. But this was rejected and the C code simply checked the PF_KTHREAD directly.  It was later found that not all kernel threads set PF_KTHREAD. The io-uring helpers instead set PF_USER_WORKER and this needed to be added as well.  But checking the flags is still not enough. There's a very small window when a task exits that it frees its mm field and it is set back to NULL. If perf were to trigger at this moment, the flags test would say its a user space task but when perf would read the mm field it would crash with at NULL pointer dereference.  Now there are flags that can be used to test if a task is exiting, but they are set in areas that perf may still want to profile the user space task (to see where it exited). The only real test is to check both the flags and the mm field.  Instead of making this modification in every location, create a new is_user_task() helper function that does all the tests needed to know if it is safe to read the user space memory or not.  [1] https://lore.kernel.org/all/20250425204120.639530125@goodmis.org/",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-58096",
                        "url": "https://ubuntu.com/security/CVE-2024-58096",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode  ath11k_hal_srng_* should be used with srng->lock to protect srng data.  For ath11k_dp_rx_mon_dest_process() and ath11k_dp_full_mon_process_rx(), they use ath11k_hal_srng_* for many times but never call srng->lock.  So when running (full) monitor mode, warning will occur: RIP: 0010:ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k] Call Trace:  ? ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k]  ath11k_dp_rx_process_mon_status+0xc45/0x1190 [ath11k]  ? idr_alloc_u32+0x97/0xd0  ath11k_dp_rx_process_mon_rings+0x32a/0x550 [ath11k]  ath11k_dp_service_srng+0x289/0x5a0 [ath11k]  ath11k_pcic_ext_grp_napi_poll+0x30/0xd0 [ath11k]  __napi_poll+0x30/0x1f0  net_rx_action+0x198/0x320  __do_softirq+0xdd/0x319  So add srng->lock for them to avoid such warnings.  Inorder to fetch the srng->lock, should change srng's definition from 'void' to 'struct hal_srng'. And initialize them elsewhere to prevent one line of code from being too long. This is consistent with other ring process functions, such as ath11k_dp_process_rx().  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40039",
                        "url": "https://ubuntu.com/security/CVE-2025-40039",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix race condition in RPC handle list access  The 'sess->rpc_handle_list' XArray manages RPC handles within a ksmbd session. Access to this list is intended to be protected by 'sess->rpc_lock' (an rw_semaphore). However, the locking implementation was flawed, leading to potential race conditions.  In ksmbd_session_rpc_open(), the code incorrectly acquired only a read lock before calling xa_store() and xa_erase(). Since these operations modify the XArray structure, a write lock is required to ensure exclusive access and prevent data corruption from concurrent modifications.  Furthermore, ksmbd_session_rpc_method() accessed the list using xa_load() without holding any lock at all. This could lead to reading inconsistent data or a potential use-after-free if an entry is concurrently removed and the pointer is dereferenced.  Fix these issues by: 1. Using down_write() and up_write() in ksmbd_session_rpc_open()    to ensure exclusive access during XArray modification, and ensuring    the lock is correctly released on error paths. 2. Adding down_read() and up_read() in ksmbd_session_rpc_method()    to safely protect the lookup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-28 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23093",
                        "url": "https://ubuntu.com/security/CVE-2026-23093",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: smbd: fix dma_unmap_sg() nents  The dma_unmap_sg() functions should be called with the same nents as the dma_map_sg(), not the value the map function returned.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23102",
                        "url": "https://ubuntu.com/security/CVE-2026-23102",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Fix restoration of SVE context  When SME is supported, Restoring SVE signal context can go wrong in a few ways, including placing the task into an invalid state where the kernel may read from out-of-bounds memory (and may potentially take a fatal fault) and/or may kill the task with a SIGKILL.  (1) Restoring a context with SVE_SIG_FLAG_SM set can place the task into     an invalid state where SVCR.SM is set (and sve_state is non-NULL)     but TIF_SME is clear, consequently resuting in out-of-bounds memory     reads and/or killing the task with SIGKILL.      This can only occur in unusual (but legitimate) cases where the SVE     signal context has either been modified by userspace or was saved in     the context of another task (e.g. as with CRIU), as otherwise the     presence of an SVE signal context with SVE_SIG_FLAG_SM implies that     TIF_SME is already set.      While in this state, task_fpsimd_load() will NOT configure SMCR_ELx     (leaving some arbitrary value configured in hardware) before     restoring SVCR and attempting to restore the streaming mode SVE     registers from memory via sve_load_state(). As the value of     SMCR_ELx.LEN may be larger than the task's streaming SVE vector     length, this may read memory outside of the task's allocated     sve_state, reading unrelated data and/or triggering a fault.      While this can result in secrets being loaded into streaming SVE     registers, these values are never exposed. As TIF_SME is clear,     fpsimd_bind_task_to_cpu() will configure CPACR_ELx.SMEN to trap EL0     accesses to streaming mode SVE registers, so these cannot be     accessed directly at EL0. As fpsimd_save_user_state() verifies the     live vector length before saving (S)SVE state to memory, no secret     values can be saved back to memory (and hence cannot be observed via     ptrace, signals, etc).      When the live vector length doesn't match the expected vector length     for the task, fpsimd_save_user_state() will send a fatal SIGKILL     signal to the task. Hence the task may be killed after executing     userspace for some period of time.  (2) Restoring a context with SVE_SIG_FLAG_SM clear does not clear the     task's SVCR.SM. If SVCR.SM was set prior to restoring the context,     then the task will be left in streaming mode unexpectedly, and some     register state will be combined inconsistently, though the task will     be left in legitimate state from the kernel's PoV.      This can only occur in unusual (but legitimate) cases where ptrace     has been used to set SVCR.SM after entry to the sigreturn syscall,     as syscall entry clears SVCR.SM.      In these cases, the the provided SVE register data will be loaded     into the task's sve_state using the non-streaming SVE vector length     and the FPSIMD registers will be merged into this using the     streaming SVE vector length.  Fix (1) by setting TIF_SME when setting SVCR.SM. This also requires ensuring that the task's sme_state has been allocated, but as this could contain live ZA state, it should not be zeroed. Fix (2) by clearing SVCR.SM when restoring a SVE signal context with SVE_SIG_FLAG_SM clear.  For consistency, I've pulled the manipulation of SVCR, TIF_SVE, TIF_SME, and fp_type earlier, immediately after the allocation of sve_state/sme_state, before the restore of the actual register state. This makes it easier to ensure that these are always modified consistently, even if a fault is taken while reading the register data from the signal context. I do not expect any software to depend on the exact state restored when a fault is taken while reading the context.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23170",
                        "url": "https://ubuntu.com/security/CVE-2026-23170",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/imx/tve: fix probe device leak  Make sure to drop the reference taken to the DDC device during probe on probe failure (e.g. probe deferral) and on driver unbind.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23168",
                        "url": "https://ubuntu.com/security/CVE-2026-23168",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  flex_proportions: make fprop_new_period() hardirq safe  Bernd has reported a lockdep splat from flexible proportions code that is essentially complaining about the following race:  <timer fires> run_timer_softirq - we are in softirq context   call_timer_fn     writeout_period       fprop_new_period         write_seqcount_begin(&p->sequence);          <hardirq is raised>         ...         blk_mq_end_request() \t  blk_update_request() \t    ext4_end_bio() \t      folio_end_writeback() \t\t__wb_writeout_add() \t\t  __fprop_add_percpu_max() \t\t    if (unlikely(max_frac < FPROP_FRAC_BASE)) { \t\t      fprop_fraction_percpu() \t\t\tseq = read_seqcount_begin(&p->sequence); \t\t\t  - sees odd sequence so loops indefinitely  Note that a deadlock like this is only possible if the bdi has configured maximum fraction of writeout throughput which is very rare in general but frequent for example for FUSE bdis.  To fix this problem we have to make sure write section of the sequence counter is irqsafe.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23156",
                        "url": "https://ubuntu.com/security/CVE-2026-23156",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  efivarfs: fix error propagation in efivar_entry_get()  efivar_entry_get() always returns success even if the underlying __efivar_entry_get() fails, masking errors.  This may result in uninitialized heap memory being copied to userspace in the efivarfs_file_read() path.  Fix it by returning the error from __efivar_entry_get().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23167",
                        "url": "https://ubuntu.com/security/CVE-2026-23167",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: nci: Fix race between rfkill and nci_unregister_device().  syzbot reported the splat below [0] without a repro.  It indicates that struct nci_dev.cmd_wq had been destroyed before nci_close_device() was called via rfkill.  nci_dev.cmd_wq is only destroyed in nci_unregister_device(), which (I think) was called from virtual_ncidev_close() when syzbot close()d an fd of virtual_ncidev.  The problem is that nci_unregister_device() destroys nci_dev.cmd_wq first and then calls nfc_unregister_device(), which removes the device from rfkill by rfkill_unregister().  So, the device is still visible via rfkill even after nci_dev.cmd_wq is destroyed.  Let's unregister the device from rfkill first in nci_unregister_device().  Note that we cannot call nfc_unregister_device() before nci_close_device() because    1) nfc_unregister_device() calls device_del() which frees      all memory allocated by devm_kzalloc() and linked to      ndev->conn_info_list    2) nci_rx_work() could try to queue nci_conn_info to      ndev->conn_info_list which could be leaked  Thus, nfc_unregister_device() is split into two functions so we can remove rfkill interfaces only before nci_close_device().  [0]: DEBUG_LOCKS_WARN_ON(1) WARNING: kernel/locking/lockdep.c:238 at hlock_class kernel/locking/lockdep.c:238 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at check_wait_context kernel/locking/lockdep.c:4854 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at __lock_acquire+0x39d/0x2cf0 kernel/locking/lockdep.c:5187, CPU#0: syz.0.8675/6349 Modules linked in: CPU: 0 UID: 0 PID: 6349 Comm: syz.0.8675 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/13/2026 RIP: 0010:hlock_class kernel/locking/lockdep.c:238 [inline] RIP: 0010:check_wait_context kernel/locking/lockdep.c:4854 [inline] RIP: 0010:__lock_acquire+0x3a4/0x2cf0 kernel/locking/lockdep.c:5187 Code: 18 00 4c 8b 74 24 08 75 27 90 e8 17 f2 fc 02 85 c0 74 1c 83 3d 50 e0 4e 0e 00 75 13 48 8d 3d 43 f7 51 0e 48 c7 c6 8b 3a de 8d <67> 48 0f b9 3a 90 31 c0 0f b6 98 c4 00 00 00 41 8b 45 20 25 ff 1f RSP: 0018:ffffc9000c767680 EFLAGS: 00010046 RAX: 0000000000000001 RBX: 0000000000040000 RCX: 0000000000080000 RDX: ffffc90013080000 RSI: ffffffff8dde3a8b RDI: ffffffff8ff24ca0 RBP: 0000000000000003 R08: ffffffff8fef35a3 R09: 1ffffffff1fde6b4 R10: dffffc0000000000 R11: fffffbfff1fde6b5 R12: 00000000000012a2 R13: ffff888030338ba8 R14: ffff888030338000 R15: ffff888030338b30 FS:  00007fa5995f66c0(0000) GS:ffff8881256f8000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f7e72f842d0 CR3: 00000000485a0000 CR4: 00000000003526f0 Call Trace:  <TASK>  lock_acquire+0x106/0x330 kernel/locking/lockdep.c:5868  touch_wq_lockdep_map+0xcb/0x180 kernel/workqueue.c:3940  __flush_workqueue+0x14b/0x14f0 kernel/workqueue.c:3982  nci_close_device+0x302/0x630 net/nfc/nci/core.c:567  nci_dev_down+0x3b/0x50 net/nfc/nci/core.c:639  nfc_dev_down+0x152/0x290 net/nfc/core.c:161  nfc_rfkill_set_block+0x2d/0x100 net/nfc/core.c:179  rfkill_set_block+0x1d2/0x440 net/rfkill/core.c:346  rfkill_fop_write+0x461/0x5a0 net/rfkill/core.c:1301  vfs_write+0x29a/0xb90 fs/read_write.c:684  ksys_write+0x150/0x270 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xe2/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa59b39acb9 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fa5995f6028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fa59b615fa0 RCX: 00007fa59b39acb9 RDX: 0000000000000008 RSI: 0000200000000080 RDI: 0000000000000007 RBP: 00007fa59b408bf7 R08: ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23173",
                        "url": "https://ubuntu.com/security/CVE-2026-23173",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: TC, delete flows only for existing peers  When deleting TC steering flows, iterate only over actual devcom peers instead of assuming all possible ports exist. This avoids touching non-existent peers and ensures cleanup is limited to devices the driver is currently connected to.   BUG: kernel NULL pointer dereference, address: 0000000000000008  #PF: supervisor write access in kernel mode  #PF: error_code(0x0002) - not-present page  PGD 133c8a067 P4D 0  Oops: Oops: 0002 [#1] SMP  CPU: 19 UID: 0 PID: 2169 Comm: tc Not tainted 6.18.0+ #156 NONE  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:mlx5e_tc_del_fdb_peers_flow+0xbe/0x200 [mlx5_core]  Code: 00 00 a8 08 74 a8 49 8b 46 18 f6 c4 02 74 9f 4c 8d bf a0 12 00 00 4c 89 ff e8 0e e7 96 e1 49 8b 44 24 08 49 8b 0c 24 4c 89 ff <48> 89 41 08 48 89 08 49 89 2c 24 49 89 5c 24 08 e8 7d ce 96 e1 49  RSP: 0018:ff11000143867528 EFLAGS: 00010246  RAX: 0000000000000000 RBX: dead000000000122 RCX: 0000000000000000  RDX: ff11000143691580 RSI: ff110001026e5000 RDI: ff11000106f3d2a0  RBP: dead000000000100 R08: 00000000000003fd R09: 0000000000000002  R10: ff11000101c75690 R11: ff1100085faea178 R12: ff11000115f0ae78  R13: 0000000000000000 R14: ff11000115f0a800 R15: ff11000106f3d2a0  FS:  00007f35236bf740(0000) GS:ff110008dc809000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000008 CR3: 0000000157a01001 CR4: 0000000000373eb0  Call Trace:   <TASK>   mlx5e_tc_del_flow+0x46/0x270 [mlx5_core]   mlx5e_flow_put+0x25/0x50 [mlx5_core]   mlx5e_delete_flower+0x2a6/0x3e0 [mlx5_core]   tc_setup_cb_reoffload+0x20/0x80   fl_reoffload+0x26f/0x2f0 [cls_flower]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   tcf_block_playback_offloads+0x9e/0x1c0   tcf_block_unbind+0x7b/0xd0   tcf_block_setup+0x186/0x1d0   tcf_block_offload_cmd.isra.0+0xef/0x130   tcf_block_offload_unbind+0x43/0x70   __tcf_block_put+0x85/0x160   ingress_destroy+0x32/0x110 [sch_ingress]   __qdisc_destroy+0x44/0x100   qdisc_graft+0x22b/0x610   tc_get_qdisc+0x183/0x4d0   rtnetlink_rcv_msg+0x2d7/0x3d0   ? rtnl_calcit.isra.0+0x100/0x100   netlink_rcv_skb+0x53/0x100   netlink_unicast+0x249/0x320   ? __alloc_skb+0x102/0x1f0   netlink_sendmsg+0x1e3/0x420   __sock_sendmsg+0x38/0x60   ____sys_sendmsg+0x1ef/0x230   ? copy_msghdr_from_user+0x6c/0xa0   ___sys_sendmsg+0x7f/0xc0   ? ___sys_recvmsg+0x8a/0xc0   ? __sys_sendto+0x119/0x180   __sys_sendmsg+0x61/0xb0   do_syscall_64+0x55/0x640   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7f35238bb764  Code: 15 b9 86 0c 00 f7 d8 64 89 02 b8 ff ff ff ff eb bf 0f 1f 44 00 00 f3 0f 1e fa 80 3d e5 08 0d 00 00 74 13 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 4c c3 0f 1f 00 55 48 89 e5 48 83 ec 20 89 55  RSP: 002b:00007ffed4c35638 EFLAGS: 00000202 ORIG_RAX: 000000000000002e  RAX: ffffffffffffffda RBX: 000055a2efcc75e0 RCX: 00007f35238bb764  RDX: 0000000000000000 RSI: 00007ffed4c356a0 RDI: 0000000000000003  RBP: 00007ffed4c35710 R08: 0000000000000010 R09: 00007f3523984b20  R10: 0000000000000004 R11: 0000000000000202 R12: 00007ffed4c35790  R13: 000000006947df8f R14: 000055a2efcc75e0 R15: 00007ffed4c35780",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23150",
                        "url": "https://ubuntu.com/security/CVE-2026-23150",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: llcp: Fix memleak in nfc_llcp_send_ui_frame().  syzbot reported various memory leaks related to NFC, struct nfc_llcp_sock, sk_buff, nfc_dev, etc. [0]  The leading log hinted that nfc_llcp_send_ui_frame() failed to allocate skb due to sock_error(sk) being -ENXIO.  ENXIO is set by nfc_llcp_socket_release() when struct nfc_llcp_local is destroyed by local_cleanup().  The problem is that there is no synchronisation between nfc_llcp_send_ui_frame() and local_cleanup(), and skb could be put into local->tx_queue after it was purged in local_cleanup():    CPU1                          CPU2   ----                          ----   nfc_llcp_send_ui_frame()      local_cleanup()   |- do {                       '      |- pdu = nfc_alloc_send_skb(..., &err)      |                          .      |                          |- nfc_llcp_socket_release(local, false, ENXIO);      |                          |- skb_queue_purge(&local->tx_queue);     |      |                          '                                         |      |- skb_queue_tail(&local->tx_queue, pdu);                            |     ...                                                                   |      |- pdu = nfc_alloc_send_skb(..., &err)                               |                                       ^._________________________________.'  local_cleanup() is called for struct nfc_llcp_local only after nfc_llcp_remove_local() unlinks it from llcp_devices.  If we hold local->tx_queue.lock then, we can synchronise the thread and nfc_llcp_send_ui_frame().  Let's do that and check list_empty(&local->list) before queuing skb to local->tx_queue in nfc_llcp_send_ui_frame().  [0]: [   56.074943][ T6096] llcp: nfc_llcp_send_ui_frame: Could not allocate PDU (error=-6) [   64.318868][ T5813] kmemleak: 6 new suspected memory leaks (see /sys/kernel/debug/kmemleak) BUG: memory leak unreferenced object 0xffff8881272f6800 (size 1024):   comm \"syz.0.17\", pid 6096, jiffies 4294942766   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     27 00 03 40 00 00 00 00 00 00 00 00 00 00 00 00  '..@............   backtrace (crc da58d84d):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     __do_kmalloc_node mm/slub.c:5645 [inline]     __kmalloc_noprof+0x3e3/0x6b0 mm/slub.c:5658     kmalloc_noprof include/linux/slab.h:961 [inline]     sk_prot_alloc+0x11a/0x1b0 net/core/sock.c:2239     sk_alloc+0x36/0x360 net/core/sock.c:2295     nfc_llcp_sock_alloc+0x37/0x130 net/nfc/llcp_sock.c:979     llcp_sock_create+0x71/0xd0 net/nfc/llcp_sock.c:1044     nfc_sock_create+0xc9/0xf0 net/nfc/af_nfc.c:31     __sock_create+0x1a9/0x340 net/socket.c:1605     sock_create net/socket.c:1663 [inline]     __sys_socket_create net/socket.c:1700 [inline]     __sys_socket+0xb9/0x1a0 net/socket.c:1747     __do_sys_socket net/socket.c:1761 [inline]     __se_sys_socket net/socket.c:1759 [inline]     __x64_sys_socket+0x1b/0x30 net/socket.c:1759     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  BUG: memory leak unreferenced object 0xffff88810fbd9800 (size 240):   comm \"syz.0.17\", pid 6096, jiffies 4294942850   hex dump (first 32 bytes):     68 f0 ff 08 81 88 ff ff 68 f0 ff 08 81 88 ff ff  h.......h.......     00 00 00 00 00 00 00 00 00 68 2f 27 81 88 ff ff  .........h/'....   backtrace (crc 6cc652b1):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5336     __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/sk ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23164",
                        "url": "https://ubuntu.com/security/CVE-2026-23164",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  rocker: fix memory leak in rocker_world_port_post_fini()  In rocker_world_port_pre_init(), rocker_port->wpriv is allocated with kzalloc(wops->port_priv_size, GFP_KERNEL). However, in rocker_world_port_post_fini(), the memory is only freed when wops->port_post_fini callback is set:      if (!wops->port_post_fini)         return;     wops->port_post_fini(rocker_port);     kfree(rocker_port->wpriv);  Since rocker_ofdpa_ops does not implement port_post_fini callback (it is NULL), the wpriv memory allocated for each port is never freed when ports are removed. This leads to a memory leak of sizeof(struct ofdpa_port) bytes per port on every device removal.  Fix this by always calling kfree(rocker_port->wpriv) regardless of whether the port_post_fini callback exists.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23172",
                        "url": "https://ubuntu.com/security/CVE-2026-23172",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: wwan: t7xx: fix potential skb->frags overflow in RX path  When receiving data in the DPMAIF RX path, the t7xx_dpmaif_set_frag_to_skb() function adds page fragments to an skb without checking if the number of fragments has exceeded MAX_SKB_FRAGS. This could lead to a buffer overflow in skb_shinfo(skb)->frags[] array, corrupting adjacent memory and potentially causing kernel crashes or other undefined behavior.  This issue was identified through static code analysis by comparing with a similar vulnerability fixed in the mt76 driver commit b102f0c522cf (\"mt76: fix array overflow on receiving too many fragments for a packet\").  The vulnerability could be triggered if the modem firmware sends packets with excessive fragments. While under normal protocol conditions (MTU 3080 bytes, BAT buffer 3584 bytes), a single packet should not require additional fragments, the kernel should not blindly trust firmware behavior. Malicious, buggy, or compromised firmware could potentially craft packets with more fragments than the kernel expects.  Fix this by adding a bounds check before calling skb_add_rx_frag() to ensure nr_frags does not exceed MAX_SKB_FRAGS.  The check must be performed before unmapping to avoid a page leak and double DMA unmap during device teardown.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23212",
                        "url": "https://ubuntu.com/security/CVE-2026-23212",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: annotate data-races around slave->last_rx  slave->last_rx and slave->target_last_arp_rx[...] can be read and written locklessly. Add READ_ONCE() and WRITE_ONCE() annotations.  syzbot reported:  BUG: KCSAN: data-race in bond_rcv_validate / bond_rcv_validate  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 1:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410 ...  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 0:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410   br_netif_receive_skb net/bridge/br_input.c:30 [inline]   NF_HOOK include/linux/netfilter.h:318 [inline] ...  value changed: 0x0000000100005365 -> 0x0000000100005366",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23160",
                        "url": "https://ubuntu.com/security/CVE-2026-23160",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeon_ep: Fix memory leak in octep_device_setup()  In octep_device_setup(), if octep_ctrl_net_init() fails, the function returns directly without unmapping the mapped resources and freeing the allocated configuration memory.  Fix this by jumping to the unsupported_dev label, which performs the necessary cleanup. This aligns with the error handling logic of other paths in this function.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23146",
                        "url": "https://ubuntu.com/security/CVE-2026-23146",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work  hci_uart_set_proto() sets HCI_UART_PROTO_INIT before calling hci_uart_register_dev(), which calls proto->open() to initialize hu->priv. However, if a TTY write wakeup occurs during this window, hci_uart_tx_wakeup() may schedule write_work before hu->priv is initialized, leading to a NULL pointer dereference in hci_uart_write_work() when proto->dequeue() accesses hu->priv.  The race condition is:    CPU0                              CPU1   ----                              ----   hci_uart_set_proto()     set_bit(HCI_UART_PROTO_INIT)     hci_uart_register_dev()                                     tty write wakeup                                       hci_uart_tty_wakeup()                                         hci_uart_tx_wakeup()                                           schedule_work(&hu->write_work)       proto->open(hu)         // initializes hu->priv                                     hci_uart_write_work()                                       hci_uart_dequeue()                                         proto->dequeue(hu)                                           // accesses hu->priv (NULL!)  Fix this by moving set_bit(HCI_UART_PROTO_INIT) after proto->open() succeeds, ensuring hu->priv is initialized before any work can be scheduled.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23394",
                        "url": "https://ubuntu.com/security/CVE-2026-23394",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  af_unix: Give up GC if MSG_PEEK intervened.  Igor Ushakov reported that GC purged the receive queue of an alive socket due to a race with MSG_PEEK with a nice repro.  This is the exact same issue previously fixed by commit cbcf01128d0a (\"af_unix: fix garbage collect vs MSG_PEEK\").  After GC was replaced with the current algorithm, the cited commit removed the locking dance in unix_peek_fds() and reintroduced the same issue.  The problem is that MSG_PEEK bumps a file refcount without interacting with GC.  Consider an SCC containing sk-A and sk-B, where sk-A is close()d but can be recv()ed via sk-B.  The bad thing happens if sk-A is recv()ed with MSG_PEEK from sk-B and sk-B is close()d while GC is checking unix_vertex_dead() for sk-A and sk-B.    GC thread                    User thread   ---------                    -----------   unix_vertex_dead(sk-A)   -> true   <------.                     \\                      `------   recv(sk-B, MSG_PEEK)               invalidate !!    -> sk-A's file refcount : 1 -> 2                                 close(sk-B)                                -> sk-B's file refcount : 2 -> 1   unix_vertex_dead(sk-B)   -> true  Initially, sk-A's file refcount is 1 by the inflight fd in sk-B recvq.  GC thinks sk-A is dead because the file refcount is the same as the number of its inflight fds.  However, sk-A's file refcount is bumped silently by MSG_PEEK, which invalidates the previous evaluation.  At this moment, sk-B's file refcount is 2; one by the open fd, and one by the inflight fd in sk-A.  The subsequent close() releases one refcount by the former.  Finally, GC incorrectly concludes that both sk-A and sk-B are dead.  One option is to restore the locking dance in unix_peek_fds(), but we can resolve this more elegantly thanks to the new algorithm.  The point is that the issue does not occur without the subsequent close() and we actually do not need to synchronise MSG_PEEK with the dead SCC detection.  When the issue occurs, close() and GC touch the same file refcount. If GC sees the refcount being decremented by close(), it can just give up garbage-collecting the SCC.  Therefore, we only need to signal the race during MSG_PEEK with a proper memory barrier to make it visible to the GC.  Let's use seqcount_t to notify GC when MSG_PEEK occurs and let it defer the SCC to the next run.  This way no locking is needed on the MSG_PEEK side, and we can avoid imposing a penalty on every MSG_PEEK unnecessarily.  Note that we can retry within unix_scc_dead() if MSG_PEEK is detected, but we do not do so to avoid hung task splat from abusive MSG_PEEK calls.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-25 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38591",
                        "url": "https://ubuntu.com/security/CVE-2025-38591",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Reject narrower access to pointer ctx fields  The following BPF program, simplified from a syzkaller repro, causes a kernel warning:      r0 = *(u8 *)(r1 + 169);     exit;  With pointer field sk being at offset 168 in __sk_buff. This access is detected as a narrower read in bpf_skb_is_valid_access because it doesn't match offsetof(struct __sk_buff, sk). It is therefore allowed and later proceeds to bpf_convert_ctx_access. Note that for the \"is_narrower_load\" case in the convert_ctx_accesses(), the insn->off is aligned, so the cnt may not be 0 because it matches the offsetof(struct __sk_buff, sk) in the bpf_convert_ctx_access. However, the target_size stays 0 and the verifier errors with a kernel warning:      verifier bug: error during ctx access conversion(1)  This patch fixes that to return a proper \"invalid bpf_context access off=X size=Y\" error on the load instruction.  The same issue affects multiple other fields in context structures that allow narrow access. Some other non-affected fields (for sk_msg, sk_lookup, and sockopt) were also changed to use bpf_ctx_range_ptr for consistency.  Note this syzkaller crash was reported in the \"Closes\" link below, which used to be about a different bug, fixed in commit fce7bd8e385a (\"bpf/verifier: Handle BPF_LOAD_ACQ instructions in insn_def_regno()\"). Because syzbot somehow confused the two bugs, the new crash and repro didn't get reported to the mailing list.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-08-19 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23035",
                        "url": "https://ubuntu.com/security/CVE-2026-23035",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Pass netdev to mlx5e_destroy_netdev instead of priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails.  Pass netdev to mlx5e_destroy_netdev() to guarantee it will work on a valid netdev.  On mlx5e_remove: Check validity of priv->profile, before attempting to cleanup any resources that might be not there.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000370 PGD 0 P4D 0 Oops: Oops: 0000 [#1] SMP NOPTI CPU: 15 UID: 0 PID: 520 Comm: devlink Not tainted 6.18.0-rc5+ #115 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_dcbnl_dscp_app+0x23/0x100 RSP: 0018:ffffc9000083f8b8 EFLAGS: 00010286 RAX: ffff8881126fc380 RBX: ffff8881015ac400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8881035109c0 RBP: ffff8881035109c0 R08: ffff888101e3e838 R09: ffff888100264e10 R10: ffffc9000083f898 R11: ffffc9000083f8a0 R12: ffff888101b921a0 R13: ffff888101b921a0 R14: ffff8881015ac9a0 R15: ffff8881015ac400 FS:  00007f789a3c8740(0000) GS:ffff88856aa59000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000370 CR3: 000000010b6c0001 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_remove+0x57/0x110  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22996",
                        "url": "https://ubuntu.com/security/CVE-2026-22996",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Don't store mlx5e_priv in mlx5e_dev devlink priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails, mlx5e_priv in mlx5e_dev devlink private is used to reference the netdev and mdev associated with that struct. Instead, store netdev directly into mlx5e_dev and get mdev from the containing mlx5_adev aux device structure.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000520  #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: 3 UID: 0 PID: 521 Comm: devlink Not tainted 6.18.0-rc5+ #117 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_remove+0x68/0x130 RSP: 0018:ffffc900034838f0 EFLAGS: 00010246 RAX: ffff88810283c380 RBX: ffff888101874400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffff888102d789c0 R08: ffff8881007137f0 R09: ffff888100264e10 R10: ffffc90003483898 R11: ffffc900034838a0 R12: ffff888100d261a0 R13: ffff888100d261a0 R14: ffff8881018749a0 R15: ffff888101874400 FS:  00007f8565fea740(0000) GS:ffff88856a759000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000520 CR3: 000000010b11a004 CR4: 0000000000370ef0 Call Trace:  <TASK>  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23000",
                        "url": "https://ubuntu.com/security/CVE-2026-23000",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Fix crash on profile change rollback failure  mlx5e_netdev_change_profile can fail to attach a new profile and can fail to rollback to old profile, in such case, we could end up with a dangling netdev with a fully reset netdev_priv. A retry to change profile, e.g. another attempt to call mlx5e_netdev_change_profile via switchdev mode change, will crash trying to access the now NULL priv->mdev.  This fix allows mlx5e_netdev_change_profile() to handle previous failures and an empty priv, by not assuming priv is valid.  Pass netdev and mdev to all flows requiring mlx5e_netdev_change_profile() and avoid passing priv. In mlx5e_netdev_change_profile() check if current priv is valid, and if not, just attach the new profile without trying to access the old one.  This fixes the following oops, when enabling switchdev mode for the 2nd time after first time failure:   ## Enabling switchdev mode first time:  mlx5_core 0012:03:00.1: E-Switch: Supported tc chains and prios offload workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12                                                                         ^^^^^^^^ mlx5_core 0000:00:03.0: E-Switch: Disable: mode(LEGACY), nvfs(0), necvfs(0), active vports(0)   ## retry: Enabling switchdev mode 2nd time:  mlx5_core 0000:00:03.0: E-Switch: Supported tc chains and prios offload BUG: kernel NULL pointer dereference, address: 0000000000000038  #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: 520 Comm: devlink Not tainted 6.18.0-rc4+ #91 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_detach_netdev+0x3c/0x90 Code: 50 00 00 f0 80 4f 78 02 48 8b bf e8 07 00 00 48 85 ff 74 16 48 8b 73 78 48 d1 ee 83 e6 01 83 f6 01 40 0f b6 f6 e8 c4 42 00 00 <48> 8b 45 38 48 85 c0 74 08 48 89 df e8 cc 47 40 1e 48 8b bb f0 07 RSP: 0018:ffffc90000673890 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff8881036a89c0 RCX: 0000000000000000 RDX: ffff888113f63800 RSI: ffffffff822fe720 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000002dcd R09: 0000000000000000 R10: ffffc900006738e8 R11: 00000000ffffffff R12: 0000000000000000 R13: 0000000000000000 R14: ffff8881036a89c0 R15: 0000000000000000 FS:  00007fdfb8384740(0000) GS:ffff88856a9d6000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000038 CR3: 0000000112ae0005 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_netdev_change_profile+0x45/0xb0  mlx5e_vport_rep_load+0x27b/0x2d0  mlx5_esw_offloads_rep_load+0x72/0xf0  esw_offloads_enable+0x5d0/0x970  mlx5_eswitch_enable_locked+0x349/0x430  ? is_mp_supported+0x57/0xb0  mlx5_devlink_eswitch_mode_set+0x26b/0x430  devlink_nl_eswitch_set_doit+0x6f/0xf0  genl_family_rcv_msg_doit+0xe8/0x140  genl_rcv_msg+0x18b/0x290  ? __pfx_devlink_nl_pre_doit+0x10/0x10  ? __pfx_devlink_nl_eswitch_set_doit+0x10/0x10  ? __pfx_devlink_nl_post_doit+0x10/0x10  ? __pfx_genl_rcv_msg+0x10/0x10  netlink_rcv_skb+0x52/0x100  genl_rcv+0x28/0x40  netlink_unicast+0x282/0x3e0  ? __alloc_skb+0xd6/0x190  netlink_sendmsg+0x1f7/0x430  __sys_sendto+0x213/0x220  ? __sys_recvmsg+0x6a/0xd0  __x64_sys_sendto+0x24/0x30  do_syscall_64+0x50/0x1f0  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fdfb8495047",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23053",
                        "url": "https://ubuntu.com/security/CVE-2026-23053",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Fix a deadlock involving nfs_release_folio()  Wang Zhaolong reports a deadlock involving NFSv4.1 state recovery waiting on kthreadd, which is attempting to reclaim memory by calling nfs_release_folio(). The latter cannot make progress due to state recovery being needed.  It seems that the only safe thing to do here is to kick off a writeback of the folio, without waiting for completion, or else kicking off an asynchronous commit.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23050",
                        "url": "https://ubuntu.com/security/CVE-2026-23050",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pNFS: Fix a deadlock when returning a delegation during open()  Ben Coddington reports seeing a hang in the following stack trace:   0 [ffffd0b50e1774e0] __schedule at ffffffff9ca05415   1 [ffffd0b50e177548] schedule at ffffffff9ca05717   2 [ffffd0b50e177558] bit_wait at ffffffff9ca061e1   3 [ffffd0b50e177568] __wait_on_bit at ffffffff9ca05cfb   4 [ffffd0b50e1775c8] out_of_line_wait_on_bit at ffffffff9ca05ea5   5 [ffffd0b50e177618] pnfs_roc at ffffffffc154207b [nfsv4]   6 [ffffd0b50e1776b8] _nfs4_proc_delegreturn at ffffffffc1506586 [nfsv4]   7 [ffffd0b50e177788] nfs4_proc_delegreturn at ffffffffc1507480 [nfsv4]   8 [ffffd0b50e1777f8] nfs_do_return_delegation at ffffffffc1523e41 [nfsv4]   9 [ffffd0b50e177838] nfs_inode_set_delegation at ffffffffc1524a75 [nfsv4]  10 [ffffd0b50e177888] nfs4_process_delegation at ffffffffc14f41dd [nfsv4]  11 [ffffd0b50e1778a0] _nfs4_opendata_to_nfs4_state at ffffffffc1503edf [nfsv4]  12 [ffffd0b50e1778c0] _nfs4_open_and_get_state at ffffffffc1504e56 [nfsv4]  13 [ffffd0b50e177978] _nfs4_do_open at ffffffffc15051b8 [nfsv4]  14 [ffffd0b50e1779f8] nfs4_do_open at ffffffffc150559c [nfsv4]  15 [ffffd0b50e177a80] nfs4_atomic_open at ffffffffc15057fb [nfsv4]  16 [ffffd0b50e177ad0] nfs4_file_open at ffffffffc15219be [nfsv4]  17 [ffffd0b50e177b78] do_dentry_open at ffffffff9c09e6ea  18 [ffffd0b50e177ba8] vfs_open at ffffffff9c0a082e  19 [ffffd0b50e177bd0] dentry_open at ffffffff9c0a0935  The issue is that the delegreturn is being asked to wait for a layout return that cannot complete because a state recovery was initiated. The state recovery cannot complete until the open() finishes processing the delegations it was given.  The solution is to propagate the existing flags that indicate a non-blocking call to the function pnfs_roc(), so that it knows not to wait in this situation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23005",
                        "url": "https://ubuntu.com/security/CVE-2026-23005",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1  When loading guest XSAVE state via KVM_SET_XSAVE, and when updating XFD in response to a guest WRMSR, clear XFD-disabled features in the saved (or to be restored) XSTATE_BV to ensure KVM doesn't attempt to load state for features that are disabled via the guest's XFD.  Because the kernel executes XRSTOR with the guest's XFD, saving XSTATE_BV[i]=1 with XFD[i]=1 will cause XRSTOR to #NM and panic the kernel.  E.g. if fpu_update_guest_xfd() sets XFD without clearing XSTATE_BV:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#29: amx_test/848   Modules linked in: kvm_intel kvm irqbypass   CPU: 29 UID: 1000 PID: 848 Comm: amx_test Not tainted 6.19.0-rc2-ffa07f7fd437-x86_amx_nm_xfd_non_init-vm #171 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    switch_fpu_return+0x4a/0xb0    kvm_arch_vcpu_ioctl_run+0x1245/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  This can happen if the guest executes WRMSR(MSR_IA32_XFD) to set XFD[18] = 1, and a host IRQ triggers kernel_fpu_begin() prior to the vmexit handler's call to fpu_update_guest_xfd().  and if userspace stuffs XSTATE_BV[i]=1 via KVM_SET_XSAVE:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#14: amx_test/867   Modules linked in: kvm_intel kvm irqbypass   CPU: 14 UID: 1000 PID: 867 Comm: amx_test Not tainted 6.19.0-rc2-2dace9faccd6-x86_amx_nm_xfd_non_init-vm #168 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    fpu_swap_kvm_fpstate+0x6b/0x120    kvm_load_guest_fpu+0x30/0x80 [kvm]    kvm_arch_vcpu_ioctl_run+0x85/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  The new behavior is consistent with the AMX architecture.  Per Intel's SDM, XSAVE saves XSTATE_BV as '0' for components that are disabled via XFD (and non-compacted XSAVE saves the initial configuration of the state component):    If XSAVE, XSAVEC, XSAVEOPT, or XSAVES is saving the state component i,   the instruction does not generate #NM when XCR0[i] = IA32_XFD[i] = 1;   instead, it operates as if XINUSE[i] = 0 (and the state component was   in its initial state): it saves bit i of XSTATE_BV field of the XSAVE   header as 0; in addition, XSAVE saves the initial configuration of the   state component (the other instructions do not save state component i).  Alternatively, KVM could always do XRSTOR with XFD=0, e.g. by using a constant XFD based on the set of enabled features when XSAVEing for a struct fpu_guest.  However, having XSTATE_BV[i]=1 for XFD-disabled features can only happen in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, because fpu_swap_kvm_fpstate()'s call to save_fpregs_to_fpstate() saves the outgoing FPU state with the current XFD; and that is (on all but the first WRMSR to XFD) the guest XFD.  Therefore, XFD can only go out of sync with XSTATE_BV in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, and it we can consider it (de facto) part of KVM ABI that KVM_GET_XSAVE returns XSTATE_BV[i]=0 for XFD-disabled features.  [Move clea ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-58097",
                        "url": "https://ubuntu.com/security/CVE-2024-58097",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix RCU stall while reaping monitor destination ring  While processing the monitor destination ring, MSDUs are reaped from the link descriptor based on the corresponding buf_id.  However, sometimes the driver cannot obtain a valid buffer corresponding to the buf_id received from the hardware. This causes an infinite loop in the destination processing, resulting in a kernel crash.  kernel log: ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed  Fix this by skipping the problematic buf_id and reaping the next entry, replacing the break with the next MSDU processing.  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68365",
                        "url": "https://ubuntu.com/security/CVE-2025-68365",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/ntfs3: Initialize allocated memory before use  KMSAN reports: Multiple uninitialized values detected:  - KMSAN: uninit-value in ntfs_read_hdr (3) - KMSAN: uninit-value in bcmp (3)  Memory is allocated by __getname(), which is a wrapper for kmem_cache_alloc(). This memory is used before being properly cleared. Change kmem_cache_alloc() to kmem_cache_zalloc() to properly allocate and clear memory before use.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-37926",
                        "url": "https://ubuntu.com/security/CVE-2025-37926",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_session_rpc_open  A UAF issue can occur due to a race condition between ksmbd_session_rpc_open() and __session_rpc_close(). Add rpc_lock to the session to protect it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-05-20 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23030",
                        "url": "https://ubuntu.com/security/CVE-2026-23030",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: rockchip: inno-usb2: Fix a double free bug in rockchip_usb2phy_probe()  The for_each_available_child_of_node() calls of_node_put() to release child_np in each success loop. After breaking from the loop with the child_np has been released, the code will jump to the put_child label and will call the of_node_put() again if the devm_request_threaded_irq() fails. These cause a double free bug.  Fix by returning directly to avoid the duplicate of_node_put().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23025",
                        "url": "https://ubuntu.com/security/CVE-2026-23025",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/page_alloc: prevent pcp corruption with SMP=n  The kernel test robot has reported:   BUG: spinlock trylock failure on UP on CPU#0, kcompactd0/28   lock: 0xffff888807e35ef0, .magic: dead4ead, .owner: kcompactd0/28, .owner_cpu: 0  CPU: 0 UID: 0 PID: 28 Comm: kcompactd0 Not tainted 6.18.0-rc5-00127-ga06157804399 #1 PREEMPT 8cc09ef94dcec767faa911515ce9e609c45db470  Call Trace:   <IRQ>   __dump_stack (lib/dump_stack.c:95)   dump_stack_lvl (lib/dump_stack.c:123)   dump_stack (lib/dump_stack.c:130)   spin_dump (kernel/locking/spinlock_debug.c:71)   do_raw_spin_trylock (kernel/locking/spinlock_debug.c:?)   _raw_spin_trylock (include/linux/spinlock_api_smp.h:89 kernel/locking/spinlock.c:138)   __free_frozen_pages (mm/page_alloc.c:2973)   ___free_pages (mm/page_alloc.c:5295)   __free_pages (mm/page_alloc.c:5334)   tlb_remove_table_rcu (include/linux/mm.h:? include/linux/mm.h:3122 include/asm-generic/tlb.h:220 mm/mmu_gather.c:227 mm/mmu_gather.c:290)   ? __cfi_tlb_remove_table_rcu (mm/mmu_gather.c:289)   ? rcu_core (kernel/rcu/tree.c:?)   rcu_core (include/linux/rcupdate.h:341 kernel/rcu/tree.c:2607 kernel/rcu/tree.c:2861)   rcu_core_si (kernel/rcu/tree.c:2879)   handle_softirqs (arch/x86/include/asm/jump_label.h:36 include/trace/events/irq.h:142 kernel/softirq.c:623)   __irq_exit_rcu (arch/x86/include/asm/jump_label.h:36 kernel/softirq.c:725)   irq_exit_rcu (kernel/softirq.c:741)   sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1052)   </IRQ>   <TASK>  RIP: 0010:_raw_spin_unlock_irqrestore (arch/x86/include/asm/preempt.h:95 include/linux/spinlock_api_smp.h:152 kernel/locking/spinlock.c:194)   free_pcppages_bulk (mm/page_alloc.c:1494)   drain_pages_zone (include/linux/spinlock.h:391 mm/page_alloc.c:2632)   __drain_all_pages (mm/page_alloc.c:2731)   drain_all_pages (mm/page_alloc.c:2747)   kcompactd (mm/compaction.c:3115)   kthread (kernel/kthread.c:465)   ? __cfi_kcompactd (mm/compaction.c:3166)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork (arch/x86/kernel/process.c:164)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork_asm (arch/x86/entry/entry_64.S:255)   </TASK>  Matthew has analyzed the report and identified that in drain_page_zone() we are in a section protected by spin_lock(&pcp->lock) and then get an interrupt that attempts spin_trylock() on the same lock.  The code is designed to work this way without disabling IRQs and occasionally fail the trylock with a fallback.  However, the SMP=n spinlock implementation assumes spin_trylock() will always succeed, and thus it's normally a no-op.  Here the enabled lock debugging catches the problem, but otherwise it could cause a corruption of the pcp structure.  The problem has been introduced by commit 574907741599 (\"mm/page_alloc: leave IRQs enabled for per-cpu page allocations\").  The pcp locking scheme recognizes the need for disabling IRQs to prevent nesting spin_trylock() sections on SMP=n, but the need to prevent the nesting in spin_lock() has not been recognized.  Fix it by introducing local wrappers that change the spin_lock() to spin_lock_iqsave() with SMP=n and use them in all places that do spin_lock(&pcp->lock).  [vbabka@suse.cz: add pcp_ prefix to the spin_lock_irqsave wrappers, per Steven]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71186",
                        "url": "https://ubuntu.com/security/CVE-2025-71186",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: stm32: dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23078",
                        "url": "https://ubuntu.com/security/CVE-2026-23078",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: scarlett2: Fix buffer overflow in config retrieval  The scarlett2_usb_get_config() function has a logic error in the endianness conversion code that can cause buffer overflows when count > 1.  The code checks `if (size == 2)` where `size` is the total buffer size in bytes, then loops `count` times treating each element as u16 (2 bytes). This causes the loop to access `count * 2` bytes when the buffer only has `size` bytes allocated.  Fix by checking the element size (config_item->size) instead of the total buffer size. This ensures the endianness conversion matches the actual element type.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23142",
                        "url": "https://ubuntu.com/security/CVE-2026-23142",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs-scheme: cleanup access_pattern subdirs on scheme dir setup failure  When a DAMOS-scheme DAMON sysfs directory setup fails after setup of access_pattern/ directory, subdirectories of access_pattern/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23075",
                        "url": "https://ubuntu.com/security/CVE-2026-23075",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: esd_usb: esd_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In esd_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback esd_usb_read_bulk_callback(), the URBs are processed and resubmitted. In esd_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in esd_usb_close().  Fix the memory leak by anchoring the URB in the esd_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68725",
                        "url": "https://ubuntu.com/security/CVE-2025-68725",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Do not let BPF test infra emit invalid GSO types to stack  Yinhao et al. reported that their fuzzer tool was able to trigger a skb_warn_bad_offload() from netif_skb_features() -> gso_features_check(). When a BPF program - triggered via BPF test infra - pushes the packet to the loopback device via bpf_clone_redirect() then mentioned offload warning can be seen. GSO-related features are then rightfully disabled.  We get into this situation due to convert___skb_to_skb() setting gso_segs and gso_size but not gso_type. Technically, it makes sense that this warning triggers since the GSO properties are malformed due to the gso_type. Potentially, the gso_type could be marked non-trustworthy through setting it at least to SKB_GSO_DODGY without any other specific assumptions, but that also feels wrong given we should not go further into the GSO engine in the first place.  The checks were added in 121d57af308d (\"gso: validate gso_type in GSO handlers\") because there were malicious (syzbot) senders that combine a protocol with a non-matching gso_type. If we would want to drop such packets, gso_features_check() currently only returns feature flags via netif_skb_features(), so one location for potentially dropping such skbs could be validate_xmit_unreadable_skb(), but then otoh it would be an additional check in the fast-path for a very corner case. Given bpf_clone_redirect() is the only place where BPF test infra could emit such packets, lets reject them right there.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23097",
                        "url": "https://ubuntu.com/security/CVE-2026-23097",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  migrate: correct lock ordering for hugetlb file folios  Syzbot has found a deadlock (analyzed by Lance Yang):  1) Task (5749): Holds folio_lock, then tries to acquire i_mmap_rwsem(read lock). 2) Task (5754): Holds i_mmap_rwsem(write lock), then tries to acquire folio_lock.  migrate_pages()   -> migrate_hugetlbs()     -> unmap_and_move_huge_page()     <- Takes folio_lock!       -> remove_migration_ptes()         -> __rmap_walk_file()           -> i_mmap_lock_read()       <- Waits for i_mmap_rwsem(read lock)!  hugetlbfs_fallocate()   -> hugetlbfs_punch_hole()           <- Takes i_mmap_rwsem(write lock)!     -> hugetlbfs_zero_partial_page()      -> filemap_lock_hugetlb_folio()       -> filemap_lock_folio()         -> __filemap_get_folio        <- Waits for folio_lock!  The migration path is the one taking locks in the wrong order according to the documentation at the top of mm/rmap.c.  So expand the scope of the existing i_mmap_lock to cover the calls to remove_migration_ptes() too.  This is (mostly) how it used to be after commit c0d0381ade79.  That was removed by 336bf30eb765 for both file & anon hugetlb pages when it should only have been removed for anon hugetlb pages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23108",
                        "url": "https://ubuntu.com/security/CVE-2026-23108",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: usb_8dev: usb_8dev_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In usb_8dev_open() -> usb_8dev_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback usb_8dev_read_bulk_callback(), the URBs are processed and resubmitted. In usb_8dev_close() -> unlink_all_urbs() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the usb_8dev_read_bulk_callback() to the priv->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23080",
                        "url": "https://ubuntu.com/security/CVE-2026-23080",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: mcba_usb: mcba_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In mcba_usb_probe() -> mcba_usb_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback mcba_usb_read_bulk_callback(), the URBs are processed and resubmitted. In mcba_usb_close() -> mcba_urb_unlink() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the mcba_usb_read_bulk_callback()to the priv->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23061",
                        "url": "https://ubuntu.com/security/CVE-2026-23061",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In kvaser_usb_set_{,data_}bittiming() -> kvaser_usb_setup_rx_urbs(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback kvaser_usb_read_bulk_callback(), the URBs are processed and resubmitted. In kvaser_usb_remove_interfaces() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the kvaser_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23058",
                        "url": "https://ubuntu.com/security/CVE-2026-23058",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In ems_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback ems_usb_read_bulk_callback(), the URBs are processed and resubmitted. In ems_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in ems_usb_close().  Fix the memory leak by anchoring the URB in the ems_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23085",
                        "url": "https://ubuntu.com/security/CVE-2026-23085",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/gic-v3-its: Avoid truncating memory addresses  On 32-bit machines with CONFIG_ARM_LPAE, it is possible for lowmem allocations to be backed by addresses physical memory above the 32-bit address limit, as found while experimenting with larger VMSPLIT configurations.  This caused the qemu virt model to crash in the GICv3 driver, which allocates the 'itt' object using GFP_KERNEL. Since all memory below the 4GB physical address limit is in ZONE_DMA in this configuration, kmalloc() defaults to higher addresses for ZONE_NORMAL, and the ITS driver stores the physical address in a 32-bit 'unsigned long' variable.  Change the itt_addr variable to the correct phys_addr_t type instead, along with all other variables in this driver that hold a physical address.  The gicv5 driver correctly uses u64 variables, while all other irqchip drivers don't call virt_to_phys or similar interfaces. It's expected that other device drivers have similar issues, but fixing this one is sufficient for booting a virtio based guest.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23116",
                        "url": "https://ubuntu.com/security/CVE-2026-23116",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu  For i.MX8MQ platform, the ADB in the VPUMIX domain has no separate reset and clock enable bits, but is ungated and reset together with the VPUs. So we can't reset G1 or G2 separately, it may led to the system hang. Remove rst_mask and clk_mask of imx8mq_vpu_blk_ctl_domain_data. Let imx8mq_vpu_power_notifier() do really vpu reset.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23098",
                        "url": "https://ubuntu.com/security/CVE-2026-23098",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: fix double-free in nr_route_frame()  In nr_route_frame(), old_skb is immediately freed without checking if nr_neigh->ax25 pointer is NULL. Therefore, if nr_neigh->ax25 is NULL, the caller function will free old_skb again, causing a double-free bug.  Therefore, to prevent this, we need to modify it to check whether nr_neigh->ax25 is NULL before freeing old_skb.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23063",
                        "url": "https://ubuntu.com/security/CVE-2026-23063",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: ensure safe queue release with state management  Directly calling `put_queue` carries risks since it cannot guarantee that resources of `uacce_queue` have been fully released beforehand. So adding a `stop_queue` operation for the UACCE_CMD_PUT_Q command and leaving the `put_queue` operation to the final resource release ensures safety.  Queue states are defined as follows: - UACCE_Q_ZOMBIE: Initial state - UACCE_Q_INIT: After opening `uacce` - UACCE_Q_STARTED: After `start` is issued via `ioctl`  When executing `poweroff -f` in virt while accelerator are still working, `uacce_fops_release` and `uacce_remove` may execute concurrently. This can cause `uacce_put_queue` within `uacce_fops_release` to access a NULL `ops` pointer. Therefore, add state checks to prevent accessing freed pointers.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23056",
                        "url": "https://ubuntu.com/security/CVE-2026-23056",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: implement mremap in uacce_vm_ops to return -EPERM  The current uacce_vm_ops does not support the mremap operation of vm_operations_struct. Implement .mremap to return -EPERM to remind users.  The reason we need to explicitly disable mremap is that when the driver does not implement .mremap, it uses the default mremap method. This could lead to a risk scenario:  An application might first mmap address p1, then mremap to p2, followed by munmap(p1), and finally munmap(p2). Since the default mremap copies the original vma's vm_private_data (i.e., q) to the new vma, both munmap operations would trigger vma_close, causing q->qfr to be freed twice(qfr will be set to null here, so repeated release is ok).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23094",
                        "url": "https://ubuntu.com/security/CVE-2026-23094",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix isolate sysfs check condition  uacce supports the device isolation feature. If the driver implements the isolate_err_threshold_read and isolate_err_threshold_write callback functions, uacce will create sysfs files now. Users can read and configure the isolation policy through sysfs. Currently, sysfs files are created as long as either isolate_err_threshold_read or isolate_err_threshold_write callback functions are present.  However, accessing a non-existent callback function may cause the system to crash. Therefore, intercept the creation of sysfs if neither read nor write exists; create sysfs if either is supported, but intercept unsupported operations at the call site.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23096",
                        "url": "https://ubuntu.com/security/CVE-2026-23096",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix cdev handling in the cleanup path  When cdev_device_add fails, it internally releases the cdev memory, and if cdev_device_del is then executed, it will cause a hang error. To fix it, we check the return value of cdev_device_add() and clear uacce->cdev to avoid calling cdev_device_del in the uacce_remove.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23091",
                        "url": "https://ubuntu.com/security/CVE-2026-23091",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  intel_th: fix device leak on output open()  Make sure to drop the reference taken when looking up the th device during output device open() on errors and on close().  Note that a recent commit fixed the leak in a couple of open() error paths but not all of them, and the reference is still leaking on successful open().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23088",
                        "url": "https://ubuntu.com/security/CVE-2026-23088",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Fix crash on synthetic stacktrace field usage  When creating a synthetic event based on an existing synthetic event that had a stacktrace field and the new synthetic event used that field a kernel crash occurred:   ~# cd /sys/kernel/tracing  ~# echo 's:stack unsigned long stack[];' > dynamic_events  ~# echo 'hist:keys=prev_pid:s0=common_stacktrace if prev_state & 3' >> events/sched/sched_switch/trigger  ~# echo 'hist:keys=next_pid:s1=$s0:onmatch(sched.sched_switch).trace(stack,$s1)' >> events/sched/sched_switch/trigger  The above creates a synthetic event that takes a stacktrace when a task schedules out in a non-running state and passes that stacktrace to the sched_switch event when that task schedules back in. It triggers the \"stack\" synthetic event that has a stacktrace as its field (called \"stack\").   ~# echo 's:syscall_stack s64 id; unsigned long stack[];' >> dynamic_events  ~# echo 'hist:keys=common_pid:s2=stack' >> events/synthetic/stack/trigger  ~# echo 'hist:keys=common_pid:s3=$s2,i0=id:onmatch(synthetic.stack).trace(syscall_stack,$i0,$s3)' >> events/raw_syscalls/sys_exit/trigger  The above makes another synthetic event called \"syscall_stack\" that attaches the first synthetic event (stack) to the sys_exit trace event and records the stacktrace from the stack event with the id of the system call that is exiting.  When enabling this event (or using it in a historgram):   ~# echo 1 > events/synthetic/syscall_stack/enable  Produces a kernel crash!   BUG: unable to handle page fault for address: 0000000000400010  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP PTI  CPU: 6 UID: 0 PID: 1257 Comm: bash Not tainted 6.16.3+deb14-amd64 #1 PREEMPT(lazy)  Debian 6.16.3-1  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:trace_event_raw_event_synth+0x90/0x380  Code: c5 00 00 00 00 85 d2 0f 84 e1 00 00 00 31 db eb 34 0f 1f 00 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 <49> 8b 04 24 48 83 c3 01 8d 0c c5 08 00 00 00 01 cd 41 3b 5d 40 0f  RSP: 0018:ffffd2670388f958 EFLAGS: 00010202  RAX: ffff8ba1065cc100 RBX: 0000000000000000 RCX: 0000000000000000  RDX: 0000000000000001 RSI: fffff266ffda7b90 RDI: ffffd2670388f9b0  RBP: 0000000000000010 R08: ffff8ba104e76000 R09: ffffd2670388fa50  R10: ffff8ba102dd42e0 R11: ffffffff9a908970 R12: 0000000000400010  R13: ffff8ba10a246400 R14: ffff8ba10a710220 R15: fffff266ffda7b90  FS:  00007fa3bc63f740(0000) GS:ffff8ba2e0f48000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000400010 CR3: 0000000107f9e003 CR4: 0000000000172ef0  Call Trace:   <TASK>   ? __tracing_map_insert+0x208/0x3a0   action_trace+0x67/0x70   event_hist_trigger+0x633/0x6d0   event_triggers_call+0x82/0x130   trace_event_buffer_commit+0x19d/0x250   trace_event_raw_event_sys_exit+0x62/0xb0   syscall_exit_work+0x9d/0x140   do_syscall_64+0x20a/0x2f0   ? trace_event_raw_event_sched_switch+0x12b/0x170   ? save_fpregs_to_fpstate+0x3e/0x90   ? _raw_spin_unlock+0xe/0x30   ? finish_task_switch.isra.0+0x97/0x2c0   ? __rseq_handle_notify_resume+0xad/0x4c0   ? __schedule+0x4b8/0xd00   ? restore_fpregs_from_fpstate+0x3c/0x90   ? switch_fpu_return+0x5b/0xe0   ? do_syscall_64+0x1ef/0x2f0   ? do_fault+0x2e9/0x540   ? __handle_mm_fault+0x7d1/0xf70   ? count_memcg_events+0x167/0x1d0   ? handle_mm_fault+0x1d7/0x2e0   ? do_user_addr_fault+0x2c3/0x7f0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  The reason is that the stacktrace field is not labeled as such, and is treated as a normal field and not as a dynamic event that it is.  In trace_event_raw_event_synth() the event is field is still treated as a dynamic array, but the retrieval of the data is considered a normal field, and the reference is just the meta data:  // Meta data is retrieved instead of a dynamic array ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23090",
                        "url": "https://ubuntu.com/security/CVE-2026-23090",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  slimbus: core: fix device reference leak on report present  Slimbus devices can be allocated dynamically upon reception of report-present messages.  Make sure to drop the reference taken when looking up already registered devices.  Note that this requires taking an extra reference in case the device has not yet been registered and has to be allocated.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23128",
                        "url": "https://ubuntu.com/security/CVE-2026-23128",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64: Set __nocfi on swsusp_arch_resume()  A DABT is reported[1] on an android based system when resume from hiberate. This happens because swsusp_arch_suspend_exit() is marked with SYM_CODE_*() and does not have a CFI hash, but swsusp_arch_resume() will attempt to verify the CFI hash when calling a copy of swsusp_arch_suspend_exit().  Given that there's an existing requirement that the entrypoint to swsusp_arch_suspend_exit() is the first byte of the .hibernate_exit.text section, we cannot fix this by marking swsusp_arch_suspend_exit() with SYM_FUNC_*(). The simplest fix for now is to disable the CFI check in swsusp_arch_resume().  Mark swsusp_arch_resume() as __nocfi to disable the CFI check.  [1] [   22.991934][    T1] Unable to handle kernel paging request at virtual address 0000000109170ffc [   22.991934][    T1] Mem abort info: [   22.991934][    T1]   ESR = 0x0000000096000007 [   22.991934][    T1]   EC = 0x25: DABT (current EL), IL = 32 bits [   22.991934][    T1]   SET = 0, FnV = 0 [   22.991934][    T1]   EA = 0, S1PTW = 0 [   22.991934][    T1]   FSC = 0x07: level 3 translation fault [   22.991934][    T1] Data abort info: [   22.991934][    T1]   ISV = 0, ISS = 0x00000007, ISS2 = 0x00000000 [   22.991934][    T1]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [   22.991934][    T1]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [   22.991934][    T1] [0000000109170ffc] user address but active_mm is swapper [   22.991934][    T1] Internal error: Oops: 0000000096000007 [#1] PREEMPT SMP [   22.991934][    T1] Dumping ftrace buffer: [   22.991934][    T1]    (ftrace buffer empty) [   22.991934][    T1] Modules linked in: [   22.991934][    T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.6.98-android15-8-g0b1d2aee7fc3-dirty-4k #1 688c7060a825a3ac418fe53881730b355915a419 [   22.991934][    T1] Hardware name: Unisoc UMS9360-base Board (DT) [   22.991934][    T1] pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [   22.991934][    T1] pc : swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1] lr : swsusp_arch_resume+0x294/0x344 [   22.991934][    T1] sp : ffffffc08006b960 [   22.991934][    T1] x29: ffffffc08006b9c0 x28: 0000000000000000 x27: 0000000000000000 [   22.991934][    T1] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000820 [   22.991934][    T1] x23: ffffffd0817e3000 x22: ffffffd0817e3000 x21: 0000000000000000 [   22.991934][    T1] x20: ffffff8089171000 x19: ffffffd08252c8c8 x18: ffffffc080061058 [   22.991934][    T1] x17: 00000000529c6ef0 x16: 00000000529c6ef0 x15: 0000000000000004 [   22.991934][    T1] x14: ffffff8178c88000 x13: 0000000000000006 x12: 0000000000000000 [   22.991934][    T1] x11: 0000000000000015 x10: 0000000000000001 x9 : ffffffd082533000 [   22.991934][    T1] x8 : 0000000109171000 x7 : 205b5d3433393139 x6 : 392e32322020205b [   22.991934][    T1] x5 : 000000010916f000 x4 : 000000008164b000 x3 : ffffff808a4e0530 [   22.991934][    T1] x2 : ffffffd08058e784 x1 : 0000000082326000 x0 : 000000010a283000 [   22.991934][    T1] Call trace: [   22.991934][    T1]  swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1]  hibernation_restore+0x158/0x18c [   22.991934][    T1]  load_image_and_restore+0xb0/0xec [   22.991934][    T1]  software_resume+0xf4/0x19c [   22.991934][    T1]  software_resume_initcall+0x34/0x78 [   22.991934][    T1]  do_one_initcall+0xe8/0x370 [   22.991934][    T1]  do_initcall_level+0xc8/0x19c [   22.991934][    T1]  do_initcalls+0x70/0xc0 [   22.991934][    T1]  do_basic_setup+0x1c/0x28 [   22.991934][    T1]  kernel_init_freeable+0xe0/0x148 [   22.991934][    T1]  kernel_init+0x20/0x1a8 [   22.991934][    T1]  ret_from_fork+0x10/0x20 [   22.991934][    T1] Code: a9400a61 f94013e0 f9438923 f9400a64 (b85fc110)  [catalin.marinas@arm.com: commit log updated by Mark Rutland]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23107",
                        "url": "https://ubuntu.com/security/CVE-2026-23107",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Allocate SSVE storage when restoring ZA  The code to restore a ZA context doesn't attempt to allocate the task's sve_state before setting TIF_SME. Consequently, restoring a ZA context can place a task into an invalid state where TIF_SME is set but the task's sve_state is NULL.  In legitimate but uncommon cases where the ZA signal context was NOT created by the kernel in the context of the same task (e.g. if the task is saved/restored with something like CRIU), we have no guarantee that sve_state had been allocated previously. In these cases, userspace can enter streaming mode without trapping while sve_state is NULL, causing a later NULL pointer dereference when the kernel attempts to store the register state:  | # ./sigreturn-za | Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 | Mem abort info: |   ESR = 0x0000000096000046 |   EC = 0x25: DABT (current EL), IL = 32 bits |   SET = 0, FnV = 0 |   EA = 0, S1PTW = 0 |   FSC = 0x06: level 2 translation fault | Data abort info: |   ISV = 0, ISS = 0x00000046, ISS2 = 0x00000000 |   CM = 0, WnR = 1, TnD = 0, TagAccess = 0 |   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 | user pgtable: 4k pages, 52-bit VAs, pgdp=0000000101f47c00 | [0000000000000000] pgd=08000001021d8403, p4d=0800000102274403, pud=0800000102275403, pmd=0000000000000000 | Internal error: Oops: 0000000096000046 [#1]  SMP | Modules linked in: | CPU: 0 UID: 0 PID: 153 Comm: sigreturn-za Not tainted 6.19.0-rc1 #1 PREEMPT | Hardware name: linux,dummy-virt (DT) | pstate: 214000c9 (nzCv daIF +PAN -UAO -TCO +DIT -SSBS BTYPE=--) | pc : sve_save_state+0x4/0xf0 | lr : fpsimd_save_user_state+0xb0/0x1c0 | sp : ffff80008070bcc0 | x29: ffff80008070bcc0 x28: fff00000c1ca4c40 x27: 63cfa172fb5cf658 | x26: fff00000c1ca5228 x25: 0000000000000000 x24: 0000000000000000 | x23: 0000000000000000 x22: fff00000c1ca4c40 x21: fff00000c1ca4c40 | x20: 0000000000000020 x19: fff00000ff6900f0 x18: 0000000000000000 | x17: fff05e8e0311f000 x16: 0000000000000000 x15: 028fca8f3bdaf21c | x14: 0000000000000212 x13: fff00000c0209f10 x12: 0000000000000020 | x11: 0000000000200b20 x10: 0000000000000000 x9 : fff00000ff69dcc0 | x8 : 00000000000003f2 x7 : 0000000000000001 x6 : fff00000c1ca5b48 | x5 : fff05e8e0311f000 x4 : 0000000008000000 x3 : 0000000000000000 | x2 : 0000000000000001 x1 : fff00000c1ca5970 x0 : 0000000000000440 | Call trace: |  sve_save_state+0x4/0xf0 (P) |  fpsimd_thread_switch+0x48/0x198 |  __switch_to+0x20/0x1c0 |  __schedule+0x36c/0xce0 |  schedule+0x34/0x11c |  exit_to_user_mode_loop+0x124/0x188 |  el0_interrupt+0xc8/0xd8 |  __el0_irq_handler_common+0x18/0x24 |  el0t_64_irq_handler+0x10/0x1c |  el0t_64_irq+0x198/0x19c | Code: 54000040 d51b4408 d65f03c0 d503245f (e5bb5800) | ---[ end trace 0000000000000000 ]---  Fix this by having restore_za_context() ensure that the task's sve_state is allocated, matching what we do when taking an SME trap. Any live SVE/SSVE state (which is restored earlier from a separate signal context) must be preserved, and hence this is not zeroed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23073",
                        "url": "https://ubuntu.com/security/CVE-2026-23073",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rsi: Fix memory corruption due to not set vif driver data size  The struct ieee80211_vif contains trailing space for vif driver data, when struct ieee80211_vif is allocated, the total memory size that is allocated is sizeof(struct ieee80211_vif) + size of vif driver data. The size of vif driver data is set by each WiFi driver as needed.  The RSI911x driver does not set vif driver data size, no trailing space for vif driver data is therefore allocated past struct ieee80211_vif . The RSI911x driver does however use the vif driver data to store its vif driver data structure \"struct vif_priv\". An access to vif->drv_priv leads to access out of struct ieee80211_vif bounds and corruption of some memory.  In case of the failure observed locally, rsi_mac80211_add_interface() would write struct vif_priv *vif_info = (struct vif_priv *)vif->drv_priv; vif_info->vap_id = vap_idx. This write corrupts struct fq_tin member struct list_head new_flows . The flow = list_first_entry(head, struct fq_flow, flowchain); in fq_tin_reset() then reports non-NULL bogus address, which when accessed causes a crash.  The trigger is very simple, boot the machine with init=/bin/sh , mount devtmpfs, sysfs, procfs, and then do \"ip link set wlan0 up\", \"sleep 1\", \"ip link set wlan0 down\" and the crash occurs.  Fix this by setting the correct size of vif driver data, which is the size of \"struct vif_priv\", so that memory is allocated and the driver can store its driver data in it, instead of corrupting memory around it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23135",
                        "url": "https://ubuntu.com/security/CVE-2026-23135",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath12k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23133",
                        "url": "https://ubuntu.com/security/CVE-2026-23133",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath10k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71200",
                        "url": "https://ubuntu.com/security/CVE-2025-71200",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: sdhci-of-dwcmshc: Prevent illegal clock reduction in HS200/HS400 mode  When operating in HS200 or HS400 timing modes, reducing the clock frequency below 52MHz will lead to link broken as the Rockchip DWC MSHC controller requires maintaining a minimum clock of 52MHz in these modes.  Add a check to prevent illegal clock reduction through debugfs:  root@debian:/# echo 50000000 > /sys/kernel/debug/mmc0/clock root@debian:/# [   30.090146] mmc0: running CQE recovery mmc0: cqhci: Failed to halt mmc0: cqhci: spurious TCN for tag 0 WARNING: drivers/mmc/host/cqhci-core.c:797 at cqhci_irq+0x254/0x818, CPU#1: kworker/1:0H/24 Modules linked in: CPU: 1 UID: 0 PID: 24 Comm: kworker/1:0H Not tainted 6.19.0-rc1-00001-g09db0998649d-dirty #204 PREEMPT Hardware name: Rockchip RK3588 EVB1 V10 Board (DT) Workqueue: kblockd blk_mq_run_work_fn pstate: 604000c9 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : cqhci_irq+0x254/0x818 lr : cqhci_irq+0x254/0x818 ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23089",
                        "url": "https://ubuntu.com/security/CVE-2026-23089",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix use-after-free in snd_usb_mixer_free()  When snd_usb_create_mixer() fails, snd_usb_mixer_free() frees mixer->id_elems but the controls already added to the card still reference the freed memory. Later when snd_card_register() runs, the OSS mixer layer calls their callbacks and hits a use-after-free read.  Call trace:   get_ctl_value+0x63f/0x820 sound/usb/mixer.c:411   get_min_max_with_quirks.isra.0+0x240/0x1f40 sound/usb/mixer.c:1241   mixer_ctl_feature_info+0x26b/0x490 sound/usb/mixer.c:1381   snd_mixer_oss_build_test+0x174/0x3a0 sound/core/oss/mixer_oss.c:887   ...   snd_card_register+0x4ed/0x6d0 sound/core/init.c:923   usb_audio_probe+0x5ef/0x2a90 sound/usb/card.c:1025  Fix by calling snd_ctl_remove() for all mixer controls before freeing id_elems. We save the next pointer first because snd_ctl_remove() frees the current element.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23076",
                        "url": "https://ubuntu.com/security/CVE-2026-23076",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ctxfi: Fix potential OOB access in audio mixer handling  In the audio mixer handling code of ctxfi driver, the conf field is used as a kind of loop index, and it's referred in the index callbacks (amixer_index() and sum_index()).  As spotted recently by fuzzers, the current code causes OOB access at those functions. | UBSAN: array-index-out-of-bounds in /build/reproducible-path/linux-6.17.8/sound/pci/ctxfi/ctamixer.c:347:48 | index 8 is out of range for type 'unsigned char [8]'  After the analysis, the cause was found to be the lack of the proper (re-)initialization of conj field.  This patch addresses those OOB accesses by adding the proper initializations of the loop indices.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71199",
                        "url": "https://ubuntu.com/security/CVE-2025-71199",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc driver  at91_adc_interrupt can call at91_adc_touch_data_handler function to start the work by schedule_work(&st->touch_st.workq).  If we remove the module which will call at91_adc_remove to make cleanup, it will free indio_dev through iio_device_unregister but quite a bit later. While the work mentioned above will be used. The sequence of operations that may lead to a UAF bug is as follows:  CPU0                                      CPU1                                       | at91_adc_workq_handler at91_adc_remove                      | iio_device_unregister(indio_dev)     | //free indio_dev a bit later         |                                      | iio_push_to_buffers(indio_dev)                                      | //use indio_dev  Fix it by ensuring that the work is canceled before proceeding with the cleanup in at91_adc_remove.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23101",
                        "url": "https://ubuntu.com/security/CVE-2026-23101",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  leds: led-class: Only Add LED to leds_list when it is fully ready  Before this change the LED was added to leds_list before led_init_core() gets called adding it the list before led_classdev.set_brightness_work gets initialized.  This leaves a window where led_trigger_register() of a LED's default trigger will call led_trigger_set() which calls led_set_brightness() which in turn will end up queueing the *uninitialized* led_classdev.set_brightness_work.  This race gets hit by the lenovo-thinkpad-t14s EC driver which registers 2 LEDs with a default trigger provided by snd_ctl_led.ko in quick succession. The first led_classdev_register() causes an async modprobe of snd_ctl_led to run and that async modprobe manages to exactly hit the window where the second LED is on the leds_list without led_init_core() being called for it, resulting in:   ------------[ cut here ]------------  WARNING: CPU: 11 PID: 5608 at kernel/workqueue.c:4234 __flush_work+0x344/0x390  Hardware name: LENOVO 21N2S01F0B/21N2S01F0B, BIOS N42ET93W (2.23 ) 09/01/2025  ...  Call trace:   __flush_work+0x344/0x390 (P)   flush_work+0x2c/0x50   led_trigger_set+0x1c8/0x340   led_trigger_register+0x17c/0x1c0   led_trigger_register_simple+0x84/0xe8   snd_ctl_led_init+0x40/0xf88 [snd_ctl_led]   do_one_initcall+0x5c/0x318   do_init_module+0x9c/0x2b8   load_module+0x7e0/0x998  Close the race window by moving the adding of the LED to leds_list to after the led_init_core() call.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23064",
                        "url": "https://ubuntu.com/security/CVE-2026-23064",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: act_ife: avoid possible NULL deref  tcf_ife_encode() must make sure ife_encode() does not return NULL.  syzbot reported:  Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]  RIP: 0010:ife_tlv_meta_encode+0x41/0xa0 net/ife/ife.c:166 CPU: 3 UID: 0 PID: 8990 Comm: syz.0.696 Not tainted syzkaller #0 PREEMPT(full) Call Trace:  <TASK>   ife_encode_meta_u32+0x153/0x180 net/sched/act_ife.c:101   tcf_ife_encode net/sched/act_ife.c:841 [inline]   tcf_ife_act+0x1022/0x1de0 net/sched/act_ife.c:877   tc_act include/net/tc_wrapper.h:130 [inline]   tcf_action_exec+0x1c0/0xa20 net/sched/act_api.c:1152   tcf_exts_exec include/net/pkt_cls.h:349 [inline]   mall_classify+0x1a0/0x2a0 net/sched/cls_matchall.c:42   tc_classify include/net/tc_wrapper.h:197 [inline]   __tcf_classify net/sched/cls_api.c:1764 [inline]   tcf_classify+0x7f2/0x1380 net/sched/cls_api.c:1860   multiq_classify net/sched/sch_multiq.c:39 [inline]   multiq_enqueue+0xe0/0x510 net/sched/sch_multiq.c:66   dev_qdisc_enqueue+0x45/0x250 net/core/dev.c:4147   __dev_xmit_skb net/core/dev.c:4262 [inline]   __dev_queue_xmit+0x2998/0x46c0 net/core/dev.c:4798",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23086",
                        "url": "https://ubuntu.com/security/CVE-2026-23086",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: cap TX credit to local buffer size  The virtio transports derives its TX credit directly from peer_buf_alloc, which is set from the remote endpoint's SO_VM_SOCKETS_BUFFER_SIZE value.  On the host side this means that the amount of data we are willing to queue for a connection is scaled by a guest-chosen buffer size, rather than the host's own vsock configuration. A malicious guest can advertise a large buffer and read slowly, causing the host to allocate a correspondingly large amount of sk_buff memory. The same thing would happen in the guest with a malicious host, since virtio transports share the same code base.  Introduce a small helper, virtio_transport_tx_buf_size(), that returns min(peer_buf_alloc, buf_alloc), and use it wherever we consume peer_buf_alloc.  This ensures the effective TX window is bounded by both the peer's advertised buffer and our own buf_alloc (already clamped to buffer_max_size via SO_VM_SOCKETS_BUFFER_MAX_SIZE), so a remote peer cannot force the other to queue more data than allowed by its own vsock settings.  On an unpatched Ubuntu 22.04 host (~64 GiB RAM), running a PoC with 32 guest vsock connections advertising 2 GiB each and reading slowly drove Slab/SUnreclaim from ~0.5 GiB to ~57 GiB; the system only recovered after killing the QEMU process. That said, if QEMU memory is limited with cgroups, the maximum memory used will be limited.  With this patch applied:    Before:     MemFree:        ~61.6 GiB     Slab:           ~142 MiB     SUnreclaim:     ~117 MiB    After 32 high-credit connections:     MemFree:        ~61.5 GiB     Slab:           ~178 MiB     SUnreclaim:     ~152 MiB  Only ~35 MiB increase in Slab/SUnreclaim, no host OOM, and the guest remains responsive.  Compatibility with non-virtio transports:    - VMCI uses the AF_VSOCK buffer knobs to size its queue pairs per     socket based on the local vsk->buffer_* values; the remote side     cannot enlarge those queues beyond what the local endpoint     configured.    - Hyper-V's vsock transport uses fixed-size VMBus ring buffers and     an MTU bound; there is no peer-controlled credit field comparable     to peer_buf_alloc, and the remote endpoint cannot drive in-flight     kernel memory above those ring sizes.    - The loopback path reuses virtio_transport_common.c, so it     naturally follows the same semantics as the virtio transport.  This change is limited to virtio_transport_common.c and thus affects virtio-vsock, vhost-vsock, and loopback, bringing them in line with the \"remote window intersected with local policy\" behaviour that VMCI and Hyper-V already effectively have.  [Stefano: small adjustments after changing the previous patch] [Stefano: tweak the commit message]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23069",
                        "url": "https://ubuntu.com/security/CVE-2026-23069",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: fix potential underflow in virtio_transport_get_credit()  The credit calculation in virtio_transport_get_credit() uses unsigned arithmetic:    ret = vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt);  If the peer shrinks its advertised buffer (peer_buf_alloc) while bytes are in flight, the subtraction can underflow and produce a large positive value, potentially allowing more data to be queued than the peer can handle.  Reuse virtio_transport_has_space() which already handles this case and add a comment to make it clear why we are doing that.  [Stefano: use virtio_transport_has_space() instead of duplicating the code] [Stefano: tweak the commit message]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23119",
                        "url": "https://ubuntu.com/security/CVE-2026-23119",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: provide a net pointer to __skb_flow_dissect()  After 3cbf4ffba5ee (\"net: plumb network namespace into __skb_flow_dissect\") we have to provide a net pointer to __skb_flow_dissect(), either via skb->dev, skb->sk, or a user provided pointer.  In the following case, syzbot was able to cook a bare skb.  WARNING: net/core/flow_dissector.c:1131 at __skb_flow_dissect+0xb57/0x68b0 net/core/flow_dissector.c:1131, CPU#1: syz.2.1418/11053 Call Trace:  <TASK>   bond_flow_dissect drivers/net/bonding/bond_main.c:4093 [inline]   __bond_xmit_hash+0x2d7/0xba0 drivers/net/bonding/bond_main.c:4157   bond_xmit_hash_xdp drivers/net/bonding/bond_main.c:4208 [inline]   bond_xdp_xmit_3ad_xor_slave_get drivers/net/bonding/bond_main.c:5139 [inline]   bond_xdp_get_xmit_slave+0x1fd/0x710 drivers/net/bonding/bond_main.c:5515   xdp_master_redirect+0x13f/0x2c0 net/core/filter.c:4388   bpf_prog_run_xdp include/net/xdp.h:700 [inline]   bpf_test_run+0x6b2/0x7d0 net/bpf/test_run.c:421   bpf_prog_test_run_xdp+0x795/0x10e0 net/bpf/test_run.c:1390   bpf_prog_test_run+0x2c7/0x340 kernel/bpf/syscall.c:4703   __sys_bpf+0x562/0x860 kernel/bpf/syscall.c:6182   __do_sys_bpf kernel/bpf/syscall.c:6274 [inline]   __se_sys_bpf kernel/bpf/syscall.c:6272 [inline]   __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:6272   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xec/0xf80 arch/x86/entry/syscall_64.c:94",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23084",
                        "url": "https://ubuntu.com/security/CVE-2026-23084",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list  When the parameter pmac_id_valid argument of be_cmd_get_mac_from_list() is set to false, the driver may request the PMAC_ID from the firmware of the network card, and this function will store that PMAC_ID at the provided address pmac_id. This is the contract of this function.  However, there is a location within the driver where both pmac_id_valid == false and pmac_id == NULL are being passed. This could result in dereferencing a NULL pointer.  To resolve this issue, it is necessary to pass the address of a stub variable to the function.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23124",
                        "url": "https://ubuntu.com/security/CVE-2026-23124",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: annotate data-race in ndisc_router_discovery()  syzbot found that ndisc_router_discovery() could read and write in6_dev->ra_mtu without holding a lock [1]  This looks fine, IFLA_INET6_RA_MTU is best effort.  Add READ_ONCE()/WRITE_ONCE() to document the race.  Note that we might also reject illegal MTU values (mtu < IPV6_MIN_MTU || mtu > skb->dev->mtu) in a future patch.  [1] BUG: KCSAN: data-race in ndisc_router_discovery / ndisc_router_discovery  read to 0xffff888119809c20 of 4 bytes by task 25817 on cpu 1:   ndisc_router_discovery+0x151d/0x1c90 net/ipv6/ndisc.c:1558   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  write to 0xffff888119809c20 of 4 bytes by task 25816 on cpu 0:   ndisc_router_discovery+0x155a/0x1c90 net/ipv6/ndisc.c:1559   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  value changed: 0x00000000 -> 0xe5400659",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23121",
                        "url": "https://ubuntu.com/security/CVE-2026-23121",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mISDN: annotate data-race around dev->work  dev->work can re read locklessly in mISDN_read() and mISDN_poll(). Add READ_ONCE()/WRITE_ONCE() annotations.  BUG: KCSAN: data-race in mISDN_ioctl / mISDN_read  write to 0xffff88812d848280 of 4 bytes by task 10864 on cpu 1:   misdn_add_timer drivers/isdn/mISDN/timerdev.c:175 [inline]   mISDN_ioctl+0x2fb/0x550 drivers/isdn/mISDN/timerdev.c:233   vfs_ioctl fs/ioctl.c:51 [inline]   __do_sys_ioctl fs/ioctl.c:597 [inline]   __se_sys_ioctl+0xce/0x140 fs/ioctl.c:583   __x64_sys_ioctl+0x43/0x50 fs/ioctl.c:583   x64_sys_call+0x14b0/0x3000 arch/x86/include/generated/asm/syscalls_64.h:17   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88812d848280 of 4 bytes by task 10857 on cpu 0:   mISDN_read+0x1f2/0x470 drivers/isdn/mISDN/timerdev.c:112   do_loop_readv_writev fs/read_write.c:847 [inline]   vfs_readv+0x3fb/0x690 fs/read_write.c:1020   do_readv+0xe7/0x210 fs/read_write.c:1080   __do_sys_readv fs/read_write.c:1165 [inline]   __se_sys_readv fs/read_write.c:1162 [inline]   __x64_sys_readv+0x45/0x50 fs/read_write.c:1162   x64_sys_call+0x2831/0x3000 arch/x86/include/generated/asm/syscalls_64.h:20   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  value changed: 0x00000000 -> 0x00000001",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23126",
                        "url": "https://ubuntu.com/security/CVE-2026-23126",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netdevsim: fix a race issue related to the operation on bpf_bound_progs list  The netdevsim driver lacks a protection mechanism for operations on the bpf_bound_progs list. When the nsim_bpf_create_prog() performs list_add_tail, it is possible that nsim_bpf_destroy_prog() is simultaneously performs list_del. Concurrent operations on the list may lead to list corruption and trigger a kernel crash as follows:  [  417.290971] kernel BUG at lib/list_debug.c:62! [  417.290983] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI [  417.290992] CPU: 10 PID: 168 Comm: kworker/10:1 Kdump: loaded Not tainted 6.19.0-rc5 #1 [  417.291003] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [  417.291007] Workqueue: events bpf_prog_free_deferred [  417.291021] RIP: 0010:__list_del_entry_valid_or_report+0xa7/0xc0 [  417.291034] Code: a8 ff 0f 0b 48 89 fe 48 89 ca 48 c7 c7 48 a1 eb ae e8 ed fb a8 ff 0f 0b 48 89 fe 48 89 c2 48 c7 c7 80 a1 eb ae e8 d9 fb a8 ff <0f> 0b 48 89 d1 48 c7 c7 d0 a1 eb ae 48 89 f2 48 89 c6 e8 c2 fb a8 [  417.291040] RSP: 0018:ffffb16a40807df8 EFLAGS: 00010246 [  417.291046] RAX: 000000000000006d RBX: ffff8e589866f500 RCX: 0000000000000000 [  417.291051] RDX: 0000000000000000 RSI: ffff8e59f7b23180 RDI: ffff8e59f7b23180 [  417.291055] RBP: ffffb16a412c9000 R08: 0000000000000000 R09: 0000000000000003 [  417.291059] R10: ffffb16a40807c80 R11: ffffffffaf9edce8 R12: ffff8e594427ac20 [  417.291063] R13: ffff8e59f7b44780 R14: ffff8e58800b7a05 R15: 0000000000000000 [  417.291074] FS:  0000000000000000(0000) GS:ffff8e59f7b00000(0000) knlGS:0000000000000000 [  417.291079] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [  417.291083] CR2: 00007fc4083efe08 CR3: 00000001c3626006 CR4: 0000000000770ee0 [  417.291088] PKRU: 55555554 [  417.291091] Call Trace: [  417.291096]  <TASK> [  417.291103]  nsim_bpf_destroy_prog+0x31/0x80 [netdevsim] [  417.291154]  __bpf_prog_offload_destroy+0x2a/0x80 [  417.291163]  bpf_prog_dev_bound_destroy+0x6f/0xb0 [  417.291171]  bpf_prog_free_deferred+0x18e/0x1a0 [  417.291178]  process_one_work+0x18a/0x3a0 [  417.291188]  worker_thread+0x27b/0x3a0 [  417.291197]  ? __pfx_worker_thread+0x10/0x10 [  417.291207]  kthread+0xe5/0x120 [  417.291214]  ? __pfx_kthread+0x10/0x10 [  417.291221]  ret_from_fork+0x31/0x50 [  417.291230]  ? __pfx_kthread+0x10/0x10 [  417.291236]  ret_from_fork_asm+0x1a/0x30 [  417.291246]  </TASK>  Add a mutex lock, to prevent simultaneous addition and deletion operations on the list.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23059",
                        "url": "https://ubuntu.com/security/CVE-2026-23059",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Sanitize payload size to prevent member overflow  In qla27xx_copy_fpin_pkt() and qla27xx_copy_multiple_pkt(), the frame_size reported by firmware is used to calculate the copy length into item->iocb. However, the iocb member is defined as a fixed-size 64-byte array within struct purex_item.  If the reported frame_size exceeds 64 bytes, subsequent memcpy calls will overflow the iocb member boundary. While extra memory might be allocated, this cross-member write is unsafe and triggers warnings under CONFIG_FORTIFY_SOURCE.  Fix this by capping total_bytes to the size of the iocb member (64 bytes) before allocation and copying. This ensures all copies remain within the bounds of the destination structure member.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23110",
                        "url": "https://ubuntu.com/security/CVE-2026-23110",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: core: Wake up the error handler when final completions race against each other  The fragile ordering between marking commands completed or failed so that the error handler only wakes when the last running command completes or times out has race conditions. These race conditions can cause the SCSI layer to fail to wake the error handler, leaving I/O through the SCSI host stuck as the error state cannot advance.  First, there is an memory ordering issue within scsi_dec_host_busy(). The write which clears SCMD_STATE_INFLIGHT may be reordered with reads counting in scsi_host_busy(). While the local CPU will see its own write, reordering can allow other CPUs in scsi_dec_host_busy() or scsi_eh_inc_host_failed() to see a raised busy count, causing no CPU to see a host busy equal to the host_failed count.  This race condition can be prevented with a memory barrier on the error path to force the write to be visible before counting host busy commands.  Second, there is a general ordering issue with scsi_eh_inc_host_failed(). By counting busy commands before incrementing host_failed, it can race with a final command in scsi_dec_host_busy(), such that scsi_dec_host_busy() does not see host_failed incremented but scsi_eh_inc_host_failed() counts busy commands before SCMD_STATE_INFLIGHT is cleared by scsi_dec_host_busy(), resulting in neither waking the error handler task.  This needs the call to scsi_host_busy() to be moved after host_failed is incremented to close the race condition.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23071",
                        "url": "https://ubuntu.com/security/CVE-2026-23071",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: Fix race condition in hwspinlock irqsave routine  Previously, the address of the shared member '&map->spinlock_flags' was passed directly to 'hwspin_lock_timeout_irqsave'. This creates a race condition where multiple contexts contending for the lock could overwrite the shared flags variable, potentially corrupting the state for the current lock owner.  Fix this by using a local stack variable 'flags' to store the IRQ state temporarily.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23068",
                        "url": "https://ubuntu.com/security/CVE-2026-23068",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: spi-sprd-adi: Fix double free in probe error path  The driver currently uses spi_alloc_host() to allocate the controller but registers it using devm_spi_register_controller().  If devm_register_restart_handler() fails, the code jumps to the put_ctlr label and calls spi_controller_put(). However, since the controller was registered via a devm function, the device core will automatically call spi_controller_put() again when the probe fails. This results in a double-free of the spi_controller structure.  Fix this by switching to devm_spi_alloc_host() and removing the manual spi_controller_put() call.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23123",
                        "url": "https://ubuntu.com/security/CVE-2026-23123",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  interconnect: debugfs: initialize src_node and dst_node to empty strings  The debugfs_create_str() API assumes that the string pointer is either NULL or points to valid kmalloc() memory. Leaving the pointer uninitialized can cause problems.  Initialize src_node and dst_node to empty strings before creating the debugfs entries to guarantee that reads and writes are safe.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71198",
                        "url": "https://ubuntu.com/security/CVE-2025-71198",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event detection  The st_lsm6dsx_acc_channels array of struct iio_chan_spec has a non-NULL event_spec field, indicating support for IIO events. However, event detection is not supported for all sensors, and if userspace tries to configure accelerometer wakeup events on a sensor device that does not support them (e.g. LSM6DS0), st_lsm6dsx_write_event() dereferences a NULL pointer when trying to write to the wakeup register. Define an additional struct iio_chan_spec array whose members have a NULL event_spec field, and use this array instead of st_lsm6dsx_acc_channels for sensors without event detection capability.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23113",
                        "url": "https://ubuntu.com/security/CVE-2026-23113",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop  Currently this is checked before running the pending work. Normally this is quite fine, as work items either end up blocking (which will create a new worker for other items), or they complete fairly quickly. But syzbot reports an issue where io-wq takes seemingly forever to exit, and with a bit of debugging, this turns out to be because it queues a bunch of big (2GB - 4096b) reads with a /dev/msr* file. Since this file type doesn't support ->read_iter(), loop_rw_iter() ends up handling them. Each read returns 16MB of data read, which takes 20 (!!) seconds. With a bunch of these pending, processing the whole chain can take a long time. Easily longer than the syzbot uninterruptible sleep timeout of 140 seconds. This then triggers a complaint off the io-wq exit path:  INFO: task syz.4.135:6326 blocked for more than 143 seconds.       Not tainted syzkaller #0       Blocked by coredump. \"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\" disables this message. task:syz.4.135       state:D stack:26824 pid:6326  tgid:6324  ppid:5957  task_flags:0x400548 flags:0x00080000 Call Trace:  <TASK>  context_switch kernel/sched/core.c:5256 [inline]  __schedule+0x1139/0x6150 kernel/sched/core.c:6863  __schedule_loop kernel/sched/core.c:6945 [inline]  schedule+0xe7/0x3a0 kernel/sched/core.c:6960  schedule_timeout+0x257/0x290 kernel/time/sleep_timeout.c:75  do_wait_for_common kernel/sched/completion.c:100 [inline]  __wait_for_common+0x2fc/0x4e0 kernel/sched/completion.c:121  io_wq_exit_workers io_uring/io-wq.c:1328 [inline]  io_wq_put_and_exit+0x271/0x8a0 io_uring/io-wq.c:1356  io_uring_clean_tctx+0x10d/0x190 io_uring/tctx.c:203  io_uring_cancel_generic+0x69c/0x9a0 io_uring/cancel.c:651  io_uring_files_cancel include/linux/io_uring.h:19 [inline]  do_exit+0x2ce/0x2bd0 kernel/exit.c:911  do_group_exit+0xd3/0x2a0 kernel/exit.c:1112  get_signal+0x2671/0x26d0 kernel/signal.c:3034  arch_do_signal_or_restart+0x8f/0x7e0 arch/x86/kernel/signal.c:337  __exit_to_user_mode_loop kernel/entry/common.c:41 [inline]  exit_to_user_mode_loop+0x8c/0x540 kernel/entry/common.c:75  __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]  syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]  syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]  syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]  do_syscall_64+0x4ee/0xf80 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa02738f749 RSP: 002b:00007fa0281ae0e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca RAX: fffffffffffffe00 RBX: 00007fa0275e6098 RCX: 00007fa02738f749 RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007fa0275e6098 RBP: 00007fa0275e6090 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fa0275e6128 R14: 00007fff14e4fcb0 R15: 00007fff14e4fd98  There's really nothing wrong here, outside of processing these reads will take a LONG time. However, we can speed up the exit by checking the IO_WQ_BIT_EXIT inside the io_worker_handle_work() loop, as syzbot will exit the ring after queueing up all of these reads. Then once the first item is processed, io-wq will simply cancel the rest. That should avoid syzbot running into this complaint again.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23062",
                        "url": "https://ubuntu.com/security/CVE-2026-23062",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro  The GET_INSTANCE_ID macro that caused a kernel panic when accessing sysfs attributes:  1. Off-by-one error: The loop condition used '<=' instead of '<',    causing access beyond array bounds. Since array indices are 0-based    and go from 0 to instances_count-1, the loop should use '<'.  2. Missing NULL check: The code dereferenced attr_name_kobj->name    without checking if attr_name_kobj was NULL, causing a null pointer    dereference in min_length_show() and other attribute show functions.  The panic occurred when fwupd tried to read BIOS configuration attributes:    Oops: general protection fault [#1] SMP KASAN NOPTI   KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]   RIP: 0010:min_length_show+0xcf/0x1d0 [hp_bioscfg]  Add a NULL check for attr_name_kobj before dereferencing and corrects the loop boundary to match the pattern used elsewhere in the driver.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23131",
                        "url": "https://ubuntu.com/security/CVE-2026-23131",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kobject warnings for empty attribute names  The hp-bioscfg driver attempts to register kobjects with empty names when the HP BIOS returns attributes with empty name strings. This causes multiple kernel warnings:    kobject: (00000000135fb5e6): attempted to be registered with empty name!   WARNING: CPU: 14 PID: 3336 at lib/kobject.c:219 kobject_add_internal+0x2eb/0x310  Add validation in hp_init_bios_buffer_attribute() to check if the attribute name is empty after parsing it from the WMI buffer. If empty, log a debug message and skip registration of that attribute, allowing the module to continue processing other valid attributes.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23087",
                        "url": "https://ubuntu.com/security/CVE-2026-23087",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: xen: scsiback: Fix potential memory leak in scsiback_remove()  Memory allocated for struct vscsiblk_info in scsiback_probe() is not freed in scsiback_remove() leading to potential memory leaks on remove, as well as in the scsiback_probe() error paths. Fix that by freeing it in scsiback_remove().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71197",
                        "url": "https://ubuntu.com/security/CVE-2025-71197",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  w1: therm: Fix off-by-one buffer overflow in alarms_store  The sysfs buffer passed to alarms_store() is allocated with 'size + 1' bytes and a NUL terminator is appended. However, the 'size' argument does not account for this extra byte. The original code then allocated 'size' bytes and used strcpy() to copy 'buf', which always writes one byte past the allocated buffer since strcpy() copies until the NUL terminator at index 'size'.  Fix this by parsing the 'buf' parameter directly using simple_strtoll() without allocating any intermediate memory or string copying. This removes the overflow while simplifying the code.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23105",
                        "url": "https://ubuntu.com/security/CVE-2026-23105",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag  This is more of a preventive patch to make the code more consistent and to prevent possible exploits that employ child qlen manipulations on qfq. use cl_is_active instead of relying on the child qdisc's qlen to determine class activation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23103",
                        "url": "https://ubuntu.com/security/CVE-2026-23103",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvlan: Make the addrs_lock be per port  Make the addrs_lock be per port, not per ipvlan dev.  Initial code seems to be written in the assumption, that any address change must occur under RTNL. But it is not so for the case of IPv6. So  1) Introduce per-port addrs_lock.  2) It was needed to fix places where it was forgotten to take lock (ipvlan_open/ipvlan_close)  This appears to be a very minor problem though. Since it's highly unlikely that ipvlan_add_addr() will be called on 2 CPU simultaneously. But nevertheless, this could cause:  1) False-negative of ipvlan_addr_busy(): one interface iterated through all port->ipvlans + ipvlan->addrs under some ipvlan spinlock, and another added IP under its own lock. Though this is only possible for IPv6, since looks like only ipvlan_addr6_event() can be called without rtnl_lock.  2) Race since ipvlan_ht_addr_add(port) is called under different ipvlan->addrs_lock locks  This should not affect performance, since add/remove IP is a rare situation and spinlock is not taken on fast paths.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23120",
                        "url": "https://ubuntu.com/security/CVE-2026-23120",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  l2tp: avoid one data-race in l2tp_tunnel_del_work()  We should read sk->sk_socket only when dealing with kernel sockets.  syzbot reported the following data-race:  BUG: KCSAN: data-race in l2tp_tunnel_del_work / sk_common_release  write to 0xffff88811c182b20 of 8 bytes by task 5365 on cpu 0:   sk_set_socket include/net/sock.h:2092 [inline]   sock_orphan include/net/sock.h:2118 [inline]   sk_common_release+0xae/0x230 net/core/sock.c:4003   udp_lib_close+0x15/0x20 include/net/udp.h:325   inet_release+0xce/0xf0 net/ipv4/af_inet.c:437   __sock_release net/socket.c:662 [inline]   sock_close+0x6b/0x150 net/socket.c:1455   __fput+0x29b/0x650 fs/file_table.c:468   ____fput+0x1c/0x30 fs/file_table.c:496   task_work_run+0x131/0x1a0 kernel/task_work.c:233   resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]   __exit_to_user_mode_loop kernel/entry/common.c:44 [inline]   exit_to_user_mode_loop+0x1fe/0x740 kernel/entry/common.c:75   __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]   syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]   syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]   syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]   do_syscall_64+0x1e1/0x2b0 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88811c182b20 of 8 bytes by task 827 on cpu 1:   l2tp_tunnel_del_work+0x2f/0x1a0 net/l2tp/l2tp_core.c:1418   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0x4ce/0x9d0 kernel/workqueue.c:3340   worker_thread+0x582/0x770 kernel/workqueue.c:3421   kthread+0x489/0x510 kernel/kthread.c:463   ret_from_fork+0x149/0x290 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246  value changed: 0xffff88811b818000 -> 0x0000000000000000",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23083",
                        "url": "https://ubuntu.com/security/CVE-2026-23083",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fou: Don't allow 0 for FOU_ATTR_IPPROTO.  fou_udp_recv() has the same problem mentioned in the previous patch.  If FOU_ATTR_IPPROTO is set to 0, skb is not freed by fou_udp_recv() nor \"resubmit\"-ted in ip_protocol_deliver_rcu().  Let's forbid 0 for FOU_ATTR_IPPROTO.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23095",
                        "url": "https://ubuntu.com/security/CVE-2026-23095",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gue: Fix skb memleak with inner IP protocol 0.  syzbot reported skb memleak below. [0]  The repro generated a GUE packet with its inner protocol 0.  gue_udp_recv() returns -guehdr->proto_ctype for \"resubmit\" in ip_protocol_deliver_rcu(), but this only works with non-zero protocol number.  Let's drop such packets.  Note that 0 is a valid number (IPv6 Hop-by-Hop Option).  I think it is not practical to encap HOPOPT in GUE, so once someone starts to complain, we could pass down a resubmit flag pointer to distinguish two zeros from the upper layer:    * no error   * resubmit HOPOPT  [0] BUG: memory leak unreferenced object 0xffff888109695a00 (size 240):   comm \"syz.0.17\", pid 6088, jiffies 4294943096   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 40 c2 10 81 88 ff ff 00 00 00 00 00 00 00 00  .@..............   backtrace (crc a84b336f):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4958 [inline]     slab_alloc_node mm/slub.c:5263 [inline]     kmem_cache_alloc_noprof+0x3b4/0x590 mm/slub.c:5270     __build_skb+0x23/0x60 net/core/skbuff.c:474     build_skb+0x20/0x190 net/core/skbuff.c:490     __tun_build_skb drivers/net/tun.c:1541 [inline]     tun_build_skb+0x4a1/0xa40 drivers/net/tun.c:1636     tun_get_user+0xc12/0x2030 drivers/net/tun.c:1770     tun_chr_write_iter+0x71/0x120 drivers/net/tun.c:1999     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0xa7/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xf80 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23125",
                        "url": "https://ubuntu.com/security/CVE-2026-23125",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT  A null-ptr-deref was reported in the SCTP transmit path when SCTP-AUTH key initialization fails:    ==================================================================   KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]   CPU: 0 PID: 16 Comm: ksoftirqd/0 Tainted: G W 6.6.0 #2   RIP: 0010:sctp_packet_bundle_auth net/sctp/output.c:264 [inline]   RIP: 0010:sctp_packet_append_chunk+0xb36/0x1260 net/sctp/output.c:401   Call Trace:    sctp_packet_transmit_chunk+0x31/0x250 net/sctp/output.c:189   sctp_outq_flush_data+0xa29/0x26d0 net/sctp/outqueue.c:1111   sctp_outq_flush+0xc80/0x1240 net/sctp/outqueue.c:1217   sctp_cmd_interpreter.isra.0+0x19a5/0x62c0 net/sctp/sm_sideeffect.c:1787   sctp_side_effects net/sctp/sm_sideeffect.c:1198 [inline]   sctp_do_sm+0x1a3/0x670 net/sctp/sm_sideeffect.c:1169   sctp_assoc_bh_rcv+0x33e/0x640 net/sctp/associola.c:1052   sctp_inq_push+0x1dd/0x280 net/sctp/inqueue.c:88   sctp_rcv+0x11ae/0x3100 net/sctp/input.c:243   sctp6_rcv+0x3d/0x60 net/sctp/ipv6.c:1127  The issue is triggered when sctp_auth_asoc_init_active_key() fails in sctp_sf_do_5_1C_ack() while processing an INIT_ACK. In this case, the command sequence is currently:  - SCTP_CMD_PEER_INIT - SCTP_CMD_TIMER_STOP (T1_INIT) - SCTP_CMD_TIMER_START (T1_COOKIE) - SCTP_CMD_NEW_STATE (COOKIE_ECHOED) - SCTP_CMD_ASSOC_SHKEY - SCTP_CMD_GEN_COOKIE_ECHO  If SCTP_CMD_ASSOC_SHKEY fails, asoc->shkey remains NULL, while asoc->peer.auth_capable and asoc->peer.peer_chunks have already been set by SCTP_CMD_PEER_INIT. This allows a DATA chunk with auth = 1 and shkey = NULL to be queued by sctp_datamsg_from_user().  Since command interpretation stops on failure, no COOKIE_ECHO should been sent via SCTP_CMD_GEN_COOKIE_ECHO. However, the T1_COOKIE timer has already been started, and it may enqueue a COOKIE_ECHO into the outqueue later. As a result, the DATA chunk can be transmitted together with the COOKIE_ECHO in sctp_outq_flush_data(), leading to the observed issue.  Similar to the other places where it calls sctp_auth_asoc_init_active_key() right after sctp_process_init(), this patch moves the SCTP_CMD_ASSOC_SHKEY immediately after SCTP_CMD_PEER_INIT, before stopping T1_INIT and starting T1_COOKIE. This ensures that if shared key generation fails, authenticated DATA cannot be sent. It also allows the T1_INIT timer to retransmit INIT, giving the client another chance to process INIT_ACK and retry key setup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23099",
                        "url": "https://ubuntu.com/security/CVE-2026-23099",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: limit BOND_MODE_8023AD to Ethernet devices  BOND_MODE_8023AD makes sense for ARPHRD_ETHER only.  syzbot reported:   BUG: KASAN: global-out-of-bounds in __hw_addr_create net/core/dev_addr_lists.c:63 [inline]  BUG: KASAN: global-out-of-bounds in __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118 Read of size 16 at addr ffffffff8bf94040 by task syz.1.3580/19497  CPU: 1 UID: 0 PID: 19497 Comm: syz.1.3580 Tainted: G             L     syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>   dump_stack_lvl+0xe8/0x150 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  check_region_inline mm/kasan/generic.c:-1 [inline]   kasan_check_range+0x2b0/0x2c0 mm/kasan/generic.c:200   __asan_memcpy+0x29/0x70 mm/kasan/shadow.c:105   __hw_addr_create net/core/dev_addr_lists.c:63 [inline]   __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118   __dev_mc_add net/core/dev_addr_lists.c:868 [inline]   dev_mc_add+0xa1/0x120 net/core/dev_addr_lists.c:886   bond_enslave+0x2b8b/0x3ac0 drivers/net/bonding/bond_main.c:2180   do_set_master+0x533/0x6d0 net/core/rtnetlink.c:2963   do_setlink+0xcf0/0x41c0 net/core/rtnetlink.c:3165   rtnl_changelink net/core/rtnetlink.c:3776 [inline]   __rtnl_newlink net/core/rtnetlink.c:3935 [inline]   rtnl_newlink+0x161c/0x1c90 net/core/rtnetlink.c:4072   rtnetlink_rcv_msg+0x7cf/0xb70 net/core/rtnetlink.c:6958   netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2550   netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline]   netlink_unicast+0x82f/0x9e0 net/netlink/af_netlink.c:1344   netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1894   sock_sendmsg_nosec net/socket.c:727 [inline]   __sock_sendmsg+0x21c/0x270 net/socket.c:742   ____sys_sendmsg+0x505/0x820 net/socket.c:2592   ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2646   __sys_sendmsg+0x164/0x220 net/socket.c:2678   do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]   __do_fast_syscall_32+0x1dc/0x560 arch/x86/entry/syscall_32.c:307   do_fast_syscall_32+0x34/0x80 arch/x86/entry/syscall_32.c:332  entry_SYSENTER_compat_after_hwframe+0x84/0x8e  </TASK>  The buggy address belongs to the variable:  lacpdu_mcast_addr+0x0/0x40",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71194",
                        "url": "https://ubuntu.com/security/CVE-2025-71194",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix deadlock in wait_current_trans() due to ignored transaction type  When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans().  This can lead to a deadlock scenario involving two transactions and pending ordered extents:    1. Transaction A is in TRANS_STATE_COMMIT_DOING state    2. A worker processing an ordered extent calls start_transaction()      with TRANS_JOIN    3. join_transaction() returns -EBUSY because Transaction A is in      TRANS_STATE_COMMIT_DOING    4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes    5. A new Transaction B is created (TRANS_STATE_RUNNING)    6. The ordered extent from step 2 is added to Transaction B's      pending ordered extents    7. Transaction B immediately starts commit by another task and      enters TRANS_STATE_COMMIT_START    8. The worker finally reaches wait_current_trans(), sees Transaction B      in TRANS_STATE_COMMIT_START (a blocked state), and waits      unconditionally    9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START      according to btrfs_blocked_trans_types[]    10. Transaction B is waiting for pending ordered extents to complete    11. Deadlock: Transaction B waits for ordered extent, ordered extent       waits for Transaction B  This can be illustrated by the following call stacks:   CPU0                              CPU1                                     btrfs_finish_ordered_io()                                       start_transaction(TRANS_JOIN)                                         join_transaction()                                           # -EBUSY (Transaction A is                                           # TRANS_STATE_COMMIT_DOING)   # Transaction A completes   # Transaction B created   # ordered extent added to   # Transaction B's pending list   btrfs_commit_transaction()     # Transaction B enters     # TRANS_STATE_COMMIT_START     # waiting for pending ordered     # extents                                         wait_current_trans()                                           # waits for Transaction B                                           # (should not wait!)  Task bstore_kv_sync in btrfs_commit_transaction waiting for ordered extents:    __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   btrfs_commit_transaction+0xbf7/0xda0 [btrfs]   btrfs_sync_file+0x342/0x4d0 [btrfs]   __x64_sys_fdatasync+0x4b/0x80   do_syscall_64+0x33/0x40   entry_SYSCALL_64_after_hwframe+0x44/0xa9  Task kworker in wait_current_trans waiting for transaction commit:    Workqueue: btrfs-syno_nocow btrfs_work_helper [btrfs]   __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   wait_current_trans+0xb0/0x110 [btrfs]   start_transaction+0x346/0x5b0 [btrfs]   btrfs_finish_ordered_io.isra.0+0x49b/0x9c0 [btrfs]   btrfs_work_helper+0xe8/0x350 [btrfs]   process_one_work+0x1d3/0x3c0   worker_thread+0x4d/0x3e0   kthread+0x12d/0x150   ret_from_fork+0x1f/0x30  Fix this by passing the transaction type to wait_current_trans() and checking btrfs_blocked_trans_types[cur_trans->state] against the given type before deciding to wait. This ensures that transaction types which are allowed to join during certain blocked states will not unnecessarily wait and cause deadlocks.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71185",
                        "url": "https://ubuntu.com/security/CVE-2025-71185",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation  Make sure to drop the reference taken when looking up the crossbar platform device during am335x route allocation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23026",
                        "url": "https://ubuntu.com/security/CVE-2026-23026",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config()  Fix a memory leak in gpi_peripheral_config() where the original memory pointed to by gchan->config could be lost if krealloc() fails.  The issue occurs when: 1. gchan->config points to previously allocated memory 2. krealloc() fails and returns NULL 3. The function directly assigns NULL to gchan->config, losing the    reference to the original memory 4. The original memory becomes unreachable and cannot be freed  Fix this by using a temporary variable to hold the krealloc() result and only updating gchan->config when the allocation succeeds.  Found via static analysis and code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71188",
                        "url": "https://ubuntu.com/security/CVE-2025-71188",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: lpc18xx-dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71163",
                        "url": "https://ubuntu.com/security/CVE-2025-71163",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: idxd: fix device leaks on compat bind and unbind  Make sure to drop the reference taken when looking up the idxd device as part of the compat bind and unbind sysfs interface.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71189",
                        "url": "https://ubuntu.com/security/CVE-2025-71189",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: dw: dmamux: fix OF node leak on route allocation failure  Make sure to drop the reference taken to the DMA master OF node also on late route allocation failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71190",
                        "url": "https://ubuntu.com/security/CVE-2025-71190",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: bcm-sba-raid: fix device leak on probe  Make sure to drop the reference taken when looking up the mailbox device during probe on probe failures and on driver unbind.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71191",
                        "url": "https://ubuntu.com/security/CVE-2025-71191",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: at_hdmac: fix device leak on of_dma_xlate()  Make sure to drop the reference taken when looking up the DMA platform device during of_dma_xlate() when releasing channel resources.  Note that commit 3832b78b3ec2 (\"dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()\") fixed the leak in a couple of error paths but the reference is still leaking on successful allocation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23049",
                        "url": "https://ubuntu.com/security/CVE-2026-23049",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel  The connector type for the DataImage SCF0700C48GGU18 panel is missing and devm_drm_panel_bridge_add() requires connector type to be set. This leads to a warning and a backtrace in the kernel log and panel does not work: \" WARNING: CPU: 3 PID: 38 at drivers/gpu/drm/bridge/panel.c:379 devm_drm_of_get_bridge+0xac/0xb8 \" The warning is triggered by a check for valid connector type in devm_drm_panel_bridge_add(). If there is no valid connector type set for a panel, the warning is printed and panel is not added. Fill in the missing connector type to fix the warning and make the panel operational once again.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23144",
                        "url": "https://ubuntu.com/security/CVE-2026-23144",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure  When a context DAMON sysfs directory setup is failed after setup of attrs/ directory, subdirectories of attrs/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23145",
                        "url": "https://ubuntu.com/security/CVE-2026-23145",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref  The error branch for ext4_xattr_inode_update_ref forget to release the refcount for iloc.bh. Find this when review code.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22997",
                        "url": "https://ubuntu.com/security/CVE-2026-22997",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session upon receiving the second rts  Since j1939_session_deactivate_activate_next() in j1939_tp_rxtimer() is called only when the timer is enabled, we need to call j1939_session_deactivate_activate_next() if we cancelled the timer. Otherwise, refcount for j1939_session leaks, which will later appear as  | unregister_netdevice: waiting for vcan0 to become free. Usage count = 2.  problem.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23031",
                        "url": "https://ubuntu.com/security/CVE-2026-23031",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak  In gs_can_open(), the URBs for USB-in transfers are allocated, added to the parent->rx_submitted anchor and submitted. In the complete callback gs_usb_receive_bulk_callback(), the URB is processed and resubmitted. In gs_can_close() the URBs are freed by calling usb_kill_anchored_urbs(parent->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in gs_can_close().  Fix the memory leak by anchoring the URB in the gs_usb_receive_bulk_callback() to the parent->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23032",
                        "url": "https://ubuntu.com/security/CVE-2026-23032",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  null_blk: fix kmemleak by releasing references to fault configfs items  When CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is enabled, the null-blk driver sets up fault injection support by creating the timeout_inject, requeue_inject, and init_hctx_fault_inject configfs items as children of the top-level nullbX configfs group.  However, when the nullbX device is removed, the references taken to these fault-config configfs items are not released. As a result, kmemleak reports a memory leak, for example:  unreferenced object 0xc00000021ff25c40 (size 32):   comm \"mkdir\", pid 10665, jiffies 4322121578   hex dump (first 32 bytes):     69 6e 69 74 5f 68 63 74 78 5f 66 61 75 6c 74 5f  init_hctx_fault_     69 6e 6a 65 63 74 00 88 00 00 00 00 00 00 00 00  inject..........   backtrace (crc 1a018c86):     __kmalloc_node_track_caller_noprof+0x494/0xbd8     kvasprintf+0x74/0xf4     config_item_set_name+0xf0/0x104     config_group_init_type_name+0x48/0xfc     fault_config_init+0x48/0xf0     0xc0080000180559e4     configfs_mkdir+0x304/0x814     vfs_mkdir+0x49c/0x604     do_mkdirat+0x314/0x3d0     sys_mkdir+0xa0/0xd8     system_call_exception+0x1b0/0x4f0     system_call_vectored_common+0x15c/0x2ec  Fix this by explicitly releasing the references to the fault-config configfs items when dropping the reference to the top-level nullbX configfs group.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23033",
                        "url": "https://ubuntu.com/security/CVE-2026-23033",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: omap-dma: fix dma_pool resource leak in error paths  The dma_pool created by dma_pool_create() is not destroyed when dma_async_device_register() or of_dma_controller_register() fails, causing a resource leak in the probe error paths.  Add dma_pool_destroy() in both error paths to properly release the allocated dma_pool resource.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71196",
                        "url": "https://ubuntu.com/security/CVE-2025-71196",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: stm32-usphyc: Fix off by one in probe()  The \"index\" variable is used as an index into the usbphyc->phys[] array which has usbphyc->nphys elements.  So if it is equal to usbphyc->nphys then it is one element out of bounds.  The \"index\" comes from the device tree so it's data that we trust and it's unlikely to be wrong, however it's obviously still worth fixing the bug.  Change the > to >=.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71193",
                        "url": "https://ubuntu.com/security/CVE-2025-71193",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: qcom-qusb2: Fix NULL pointer dereference on early suspend  Enabling runtime PM before attaching the QPHY instance as driver data can lead to a NULL pointer dereference in runtime PM callbacks that expect valid driver data. There is a small window where the suspend callback may run after PM runtime enabling and before runtime forbid. This causes a sporadic crash during boot:  ``` Unable to handle kernel NULL pointer dereference at virtual address 00000000000000a1 [...] CPU: 0 UID: 0 PID: 11 Comm: kworker/0:1 Not tainted 6.16.7+ #116 PREEMPT Workqueue: pm pm_runtime_work pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : qusb2_phy_runtime_suspend+0x14/0x1e0 [phy_qcom_qusb2] lr : pm_generic_runtime_suspend+0x2c/0x44 [...] ```  Attach the QPHY instance as driver data before enabling runtime PM to prevent NULL pointer dereference in runtime PM callbacks.  Reorder pm_runtime_enable() and pm_runtime_forbid() to prevent a short window where an unnecessary runtime suspend can occur.  Use the devres-managed version to ensure PM runtime is symmetrically disabled during driver removal for proper cleanup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71162",
                        "url": "https://ubuntu.com/security/CVE-2025-71162",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: tegra-adma: Fix use-after-free  A use-after-free bug exists in the Tegra ADMA driver when audio streams are terminated, particularly during XRUN conditions. The issue occurs when the DMA buffer is freed by tegra_adma_terminate_all() before the vchan completion tasklet finishes accessing it.  The race condition follows this sequence:    1. DMA transfer completes, triggering an interrupt that schedules the      completion tasklet (tasklet has not executed yet)   2. Audio playback stops, calling tegra_adma_terminate_all() which      frees the DMA buffer memory via kfree()   3. The scheduled tasklet finally executes, calling vchan_complete()      which attempts to access the already-freed memory  Since tasklets can execute at any time after being scheduled, there is no guarantee that the buffer will remain valid when vchan_complete() runs.  Fix this by properly synchronizing the virtual channel completion:  - Calling vchan_terminate_vdesc() in tegra_adma_stop() to mark the    descriptors as terminated instead of freeing the descriptor.  - Add the callback tegra_adma_synchronize() that calls    vchan_synchronize() which kills any pending tasklets and frees any    terminated descriptors.  Crash logs: [  337.427523] BUG: KASAN: use-after-free in vchan_complete+0x124/0x3b0 [  337.427544] Read of size 8 at addr ffff000132055428 by task swapper/0/0  [  337.427562] Call trace: [  337.427564]  dump_backtrace+0x0/0x320 [  337.427571]  show_stack+0x20/0x30 [  337.427575]  dump_stack_lvl+0x68/0x84 [  337.427584]  print_address_description.constprop.0+0x74/0x2b8 [  337.427590]  kasan_report+0x1f4/0x210 [  337.427598]  __asan_load8+0xa0/0xd0 [  337.427603]  vchan_complete+0x124/0x3b0 [  337.427609]  tasklet_action_common.constprop.0+0x190/0x1d0 [  337.427617]  tasklet_action+0x30/0x40 [  337.427623]  __do_softirq+0x1a0/0x5c4 [  337.427628]  irq_exit+0x110/0x140 [  337.427633]  handle_domain_irq+0xa4/0xe0 [  337.427640]  gic_handle_irq+0x64/0x160 [  337.427644]  call_on_irq_stack+0x20/0x4c [  337.427649]  do_interrupt_handler+0x7c/0x90 [  337.427654]  el1_interrupt+0x30/0x80 [  337.427659]  el1h_64_irq_handler+0x18/0x30 [  337.427663]  el1h_64_irq+0x7c/0x80 [  337.427667]  cpuidle_enter_state+0xe4/0x540 [  337.427674]  cpuidle_enter+0x54/0x80 [  337.427679]  do_idle+0x2e0/0x380 [  337.427685]  cpu_startup_entry+0x2c/0x70 [  337.427690]  rest_init+0x114/0x130 [  337.427695]  arch_call_rest_init+0x18/0x24 [  337.427702]  start_kernel+0x380/0x3b4 [  337.427706]  __primary_switched+0xc0/0xc8",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71195",
                        "url": "https://ubuntu.com/security/CVE-2025-71195",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: xilinx: xdma: Fix regmap max_register  The max_register field is assigned the size of the register memory region instead of the offset of the last register. The result is that reading from the regmap via debugfs can cause a segmentation fault:  tail /sys/kernel/debug/regmap/xdma.1.auto/registers Unable to handle kernel paging request at virtual address ffff800082f70000 Mem abort info:   ESR = 0x0000000096000007   EC = 0x25: DABT (current EL), IL = 32 bits   SET = 0, FnV = 0   EA = 0, S1PTW = 0   FSC = 0x07: level 3 translation fault [...] Call trace:  regmap_mmio_read32le+0x10/0x30  _regmap_bus_reg_read+0x74/0xc0  _regmap_read+0x68/0x198  regmap_read+0x54/0x88  regmap_read_debugfs+0x140/0x380  regmap_map_read_file+0x30/0x48  full_proxy_read+0x68/0xc8  vfs_read+0xcc/0x310  ksys_read+0x7c/0x120  __arm64_sys_read+0x24/0x40  invoke_syscall.constprop.0+0x64/0x108  do_el0_svc+0xb0/0xd8  el0_svc+0x38/0x130  el0t_64_sync_handler+0x120/0x138  el0t_64_sync+0x194/0x198 Code: aa1e03e9 d503201f f9400000 8b214000 (b9400000) ---[ end trace 0000000000000000 ]--- note: tail[1217] exited with irqs disabled note: tail[1217] exited with preempt_count 1 Segmentation fault",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23006",
                        "url": "https://ubuntu.com/security/CVE-2026-23006",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: tlv320adcx140: fix null pointer  The \"snd_soc_component\" in \"adcx140_priv\" was only used once but never set. It was only used for reaching \"dev\" which is already present in \"adcx140_priv\".",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22999",
                        "url": "https://ubuntu.com/security/CVE-2026-22999",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: do not free existing class in qfq_change_class()  Fixes qfq_change_class() error case.  cl->qdisc and cl should only be freed if a new class and qdisc were allocated, or we risk various UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23010",
                        "url": "https://ubuntu.com/security/CVE-2026-23010",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix use-after-free in inet6_addr_del().  syzbot reported use-after-free of inet6_ifaddr in inet6_addr_del(). [0]  The cited commit accidentally moved ipv6_del_addr() for mngtmpaddr before reading its ifp->flags for temporary addresses in inet6_addr_del().  Let's move ipv6_del_addr() down to fix the UAF.  [0]: BUG: KASAN: slab-use-after-free in inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117 Read of size 4 at addr ffff88807b89c86c by task syz.3.1618/9593  CPU: 0 UID: 0 PID: 9593 Comm: syz.3.1618 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>  __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:378 [inline]  print_report+0xcd/0x630 mm/kasan/report.c:482  kasan_report+0xe0/0x110 mm/kasan/report.c:595  inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117  addrconf_del_ifaddr+0x11e/0x190 net/ipv6/addrconf.c:3181  inet6_ioctl+0x1e5/0x2b0 net/ipv6/af_inet6.c:582  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f164cf8f749 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f164de64038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007f164d1e5fa0 RCX: 00007f164cf8f749 RDX: 0000200000000000 RSI: 0000000000008936 RDI: 0000000000000003 RBP: 00007f164d013f91 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f164d1e6038 R14: 00007f164d1e5fa0 R15: 00007ffde15c8288  </TASK>  Allocated by task 9593:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  poison_kmalloc_redzone mm/kasan/common.c:397 [inline]  __kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:414  kmalloc_noprof include/linux/slab.h:957 [inline]  kzalloc_noprof include/linux/slab.h:1094 [inline]  ipv6_add_addr+0x4e3/0x2010 net/ipv6/addrconf.c:1120  inet6_addr_add+0x256/0x9b0 net/ipv6/addrconf.c:3050  addrconf_add_ifaddr+0x1fc/0x450 net/ipv6/addrconf.c:3160  inet6_ioctl+0x103/0x2b0 net/ipv6/af_inet6.c:580  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 6099:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  kasan_save_free_info+0x3b/0x60 mm/kasan/generic.c:584  poison_slab_object mm/kasan/common.c:252 [inline]  __kasan_slab_free+0x5f/0x80 mm/kasan/common.c:284  kasan_slab_free include/linux/kasan.h:234 [inline]  slab_free_hook mm/slub.c:2540 [inline]  slab_free_freelist_hook mm/slub.c:2569 [inline]  slab_free_bulk mm/slub.c:6696 [inline]  kmem_cache_free_bulk mm/slub.c:7383 [inline]  kmem_cache_free_bulk+0x2bf/0x680 mm/slub.c:7362  kfree_bulk include/linux/slab.h:830 [inline]  kvfree_rcu_bulk+0x1b7/0x1e0 mm/slab_common.c:1523  kvfree_rcu_drain_ready mm/slab_common.c:1728 [inline]  kfree_rcu_monitor+0x1d0/0x2f0 mm/slab_common.c:1801  process_one_work+0x9ba/0x1b20 kernel/workqueue.c:3257  process_scheduled_works kernel/workqu ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23054",
                        "url": "https://ubuntu.com/security/CVE-2026-23054",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hv_netvsc: reject RSS hash key programming without RX indirection table  RSS configuration requires a valid RX indirection table. When the device reports a single receive queue, rndis_filter_device_add() does not allocate an indirection table, accepting RSS hash key updates in this state leads to a hang.  Fix this by gating netvsc_set_rxfh() on ndc->rx_table_sz and return -EOPNOTSUPP when the table is absent. This aligns set_rxfh with the device capabilities and prevents incorrect behavior.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23011",
                        "url": "https://ubuntu.com/security/CVE-2026-23011",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: ip_gre: make ipgre_header() robust  Analog to commit db5b4e39c4e6 (\"ip6_gre: make ip6gre_header() robust\")  Over the years, syzbot found many ways to crash the kernel in ipgre_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 ipgre device.  [1] skbuff: skb_under_panic: text:ffffffff89ea3cb7 len:2030915468 put:2030915372 head:ffff888058b43000 data:ffff887fdfa6e194 tail:0x120 end:0x6c0 dev:team0  kernel BUG at net/core/skbuff.c:213 ! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 1 UID: 0 PID: 1322 Comm: kworker/1:9 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Workqueue: mld mld_ifc_work  RIP: 0010:skb_panic+0x157/0x160 net/core/skbuff.c:213 Call Trace:  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ipgre_header+0x67/0x290 net/ipv4/ip_gre.c:897   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   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   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0xad1/0x1770 kernel/workqueue.c:3340   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23001",
                        "url": "https://ubuntu.com/security/CVE-2026-23001",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix possible UAF in macvlan_forward_source()  Add RCU protection on (struct macvlan_source_entry)->vlan.  Whenever macvlan_hash_del_source() is called, we must clear entry->vlan pointer before RCU grace period starts.  This allows macvlan_forward_source() to skip over entries queued for freeing.  Note that macvlan_dev are already RCU protected, as they are embedded in a standard netdev (netdev_priv(ndev)).  https: //lore.kernel.org/netdev/695fb1e8.050a0220.1c677c.039f.GAE@google.com/T/#u",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23003",
                        "url": "https://ubuntu.com/security/CVE-2026-23003",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv()  Blamed commit did not take care of VLAN encapsulations as spotted by syzbot [1].  Use skb_vlan_inet_prepare() instead of pskb_inet_may_pull().  [1]  BUG: KMSAN: uninit-value in __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]  BUG: KMSAN: uninit-value in INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]  BUG: KMSAN: uninit-value in IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]   INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]   IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   ip6ip6_dscp_ecn_decapsulate+0x16f/0x1b0 net/ipv6/ip6_tunnel.c:729   __ip6_tnl_rcv+0xed9/0x1b50 net/ipv6/ip6_tunnel.c:860   ip6_tnl_rcv+0xc3/0x100 net/ipv6/ip6_tunnel.c:903  gre_rcv+0x1529/0x1b90 net/ipv6/ip6_gre.c:-1   ip6_protocol_deliver_rcu+0x1c89/0x2c60 net/ipv6/ip6_input.c:438   ip6_input_finish+0x1f4/0x4a0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x9c/0x330 net/ipv6/ip6_input.c:500   ip6_mc_input+0x7ca/0xc10 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x958/0x990 net/ipv6/ip6_input.c:79   NF_HOOK include/linux/netfilter.h:318 [inline]   ipv6_rcv+0xf1/0x3c0 net/ipv6/ip6_input.c:311   __netif_receive_skb_one_core net/core/dev.c:6139 [inline]   __netif_receive_skb+0x1df/0xac0 net/core/dev.c:6252   netif_receive_skb_internal net/core/dev.c:6338 [inline]   netif_receive_skb+0x57/0x630 net/core/dev.c:6397   tun_rx_batched+0x1df/0x980 drivers/net/tun.c:1485   tun_get_user+0x5c0e/0x6c60 drivers/net/tun.c:1953   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Uninit was created at:   slab_post_alloc_hook mm/slub.c:4960 [inline]   slab_alloc_node mm/slub.c:5263 [inline]   kmem_cache_alloc_node_noprof+0x9e7/0x17a0 mm/slub.c:5315   kmalloc_reserve+0x13c/0x4b0 net/core/skbuff.c:586   __alloc_skb+0x805/0x1040 net/core/skbuff.c:690   alloc_skb include/linux/skbuff.h:1383 [inline]   alloc_skb_with_frags+0xc5/0xa60 net/core/skbuff.c:6712   sock_alloc_send_pskb+0xacc/0xc60 net/core/sock.c:2995   tun_alloc_skb drivers/net/tun.c:1461 [inline]   tun_get_user+0x1142/0x6c60 drivers/net/tun.c:1794   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  CPU: 0 UID: 0 PID: 6465 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(none) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23141",
                        "url": "https://ubuntu.com/security/CVE-2026-23141",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: send: check for inline extents in range_is_hole_in_parent()  Before accessing the disk_bytenr field of a file extent item we need to check if we are dealing with an inline extent. This is because for inline extents their data starts at the offset of the disk_bytenr field. So accessing the disk_bytenr means we are accessing inline data or in case the inline data is less than 8 bytes we can actually cause an invalid memory access if this inline extent item is the first item in the leaf or access metadata from other items.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22998",
                        "url": "https://ubuntu.com/security/CVE-2026-22998",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec  Commit efa56305908b (\"nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length\") added ttag bounds checking and data_offset validation in nvmet_tcp_handle_h2c_data_pdu(), but it did not validate whether the command's data structures (cmd->req.sg and cmd->iov) have been properly initialized before processing H2C_DATA PDUs.  The nvmet_tcp_build_pdu_iovec() function dereferences these pointers without NULL checks. This can be triggered by sending H2C_DATA PDU immediately after the ICREQ/ICRESP handshake, before sending a CONNECT command or NVMe write command.  Attack vectors that trigger NULL pointer dereferences: 1. H2C_DATA PDU sent before CONNECT → both pointers NULL 2. H2C_DATA PDU for READ command → cmd->req.sg allocated, cmd->iov NULL 3. H2C_DATA PDU for uninitialized command slot → both pointers NULL  The fix validates both cmd->req.sg and cmd->iov before calling nvmet_tcp_build_pdu_iovec(). Both checks are required because: - Uninitialized commands: both NULL - READ commands: cmd->req.sg allocated, cmd->iov NULL - WRITE commands: both allocated",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23037",
                        "url": "https://ubuntu.com/security/CVE-2026-23037",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: etas_es58x: allow partial RX URB allocation to succeed  When es58x_alloc_rx_urbs() fails to allocate the requested number of URBs but succeeds in allocating some, it returns an error code. This causes es58x_open() to return early, skipping the cleanup label 'free_urbs', which leads to the anchored URBs being leaked.  As pointed out by maintainer Vincent Mailhol, the driver is designed to handle partial URB allocation gracefully. Therefore, partial allocation should not be treated as a fatal error.  Modify es58x_alloc_rx_urbs() to return 0 if at least one URB has been allocated, restoring the intended behavior and preventing the leak in es58x_open().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23038",
                        "url": "https://ubuntu.com/security/CVE-2026-23038",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node()  In nfs4_ff_alloc_deviceid_node(), if the allocation for ds_versions fails, the function jumps to the out_scratch label without freeing the already allocated dsaddrs list, leading to a memory leak.  Fix this by jumping to the out_err_drain_dsaddrs label, which properly frees the dsaddrs list before cleaning up other resources.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71184",
                        "url": "https://ubuntu.com/security/CVE-2025-71184",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix NULL dereference on root when tracing inode eviction  When evicting an inode the first thing we do is to setup tracing for it, which implies fetching the root's id. But in btrfs_evict_inode() the root might be NULL, as implied in the next check that we do in btrfs_evict_inode().  Hence, we either should set the ->root_objectid to 0 in case the root is NULL, or we move tracing setup after checking that the root is not NULL. Setting the rootid to 0 at least gives us the possibility to trace this call even in the case when the root is NULL, so that's the solution taken here.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "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-2025-71160",
                        "url": "https://ubuntu.com/security/CVE-2025-71160",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: avoid chain re-validation if possible  Hamza Mahfooz reports cpu soft lock-ups in nft_chain_validate():   watchdog: BUG: soft lockup - CPU#1 stuck for 27s! [iptables-nft-re:37547] [..]  RIP: 0010:nft_chain_validate+0xcb/0x110 [nf_tables] [..]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_table_validate+0x6b/0xb0 [nf_tables]   nf_tables_validate+0x8b/0xa0 [nf_tables]   nf_tables_commit+0x1df/0x1eb0 [nf_tables] [..]  Currently nf_tables will traverse the entire table (chain graph), starting from the entry points (base chains), exploring all possible paths (chain jumps).  But there are cases where we could avoid revalidation.  Consider: 1  input -> j2 -> j3 2  input -> j2 -> j3 3  input -> j1 -> j2 -> j3  Then the second rule does not need to revalidate j2, and, by extension j3, because this was already checked during validation of the first rule. We need to validate it only for rule 3.  This is needed because chain loop detection also ensures we do not exceed the jump stack: Just because we know that j2 is cycle free, its last jump might now exceed the allowed stack size.  We also need to update all reachable chains with the new largest observed call depth.  Care has to be taken to revalidate even if the chain depth won't be an issue: chain validation also ensures that expressions are not called from invalid base chains.  For example, the masquerade expression can only be called from NAT postrouting base chains.  Therefore we also need to keep record of the base chain context (type, hooknum) and revalidate if the chain becomes reachable from a different hook location.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22994",
                        "url": "https://ubuntu.com/security/CVE-2026-22994",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix reference count leak in bpf_prog_test_run_xdp()  syzbot is reporting    unregister_netdevice: waiting for sit0 to become free. Usage count = 2  problem. A debug printk() patch found that a refcount is obtained at xdp_convert_md_to_buff() from bpf_prog_test_run_xdp().  According to commit ec94670fcb3b (\"bpf: Support specifying ingress via xdp_md context in BPF_PROG_TEST_RUN\"), the refcount obtained by xdp_convert_md_to_buff() will be released by xdp_convert_buff_to_md().  Therefore, we can consider that the error handling path introduced by commit 1c1949982524 (\"bpf: introduce frags support to bpf_prog_test_run_xdp()\") forgot to call xdp_convert_buff_to_md().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23140",
                        "url": "https://ubuntu.com/security/CVE-2026-23140",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf, test_run: Subtract size of xdp_frame from allowed metadata size  The xdp_frame structure takes up part of the XDP frame headroom, limiting the size of the metadata. However, in bpf_test_run, we don't take this into account, which makes it possible for userspace to supply a metadata size that is too large (taking up the entire headroom).  If userspace supplies such a large metadata size in live packet mode, the xdp_update_frame_from_buff() call in xdp_test_run_init_page() call will fail, after which packet transmission proceeds with an uninitialised frame structure, leading to the usual Bad Stuff.  The commit in the Fixes tag fixed a related bug where the second check in xdp_update_frame_from_buff() could fail, but did not add any additional constraints on the metadata size. Complete the fix by adding an additional check on the metadata size. Reorder the checks slightly to make the logic clearer and add a comment.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71192",
                        "url": "https://ubuntu.com/security/CVE-2025-71192",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ac97: fix a double free in snd_ac97_controller_register()  If ac97_add_adapter() fails, put_device() is the correct way to drop the device reference. kfree() is not required. Add kfree() if idr_alloc() fails and in ac97_adapter_release() to do the cleanup.  Found by code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 16:16: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-22979",
                        "url": "https://ubuntu.com/security/CVE-2026-22979",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix memory leak in skb_segment_list for GRO packets  When skb_segment_list() is called during packet forwarding, it handles packets that were aggregated by the GRO engine.  Historically, the segmentation logic in skb_segment_list assumes that individual segments are split from a parent SKB and may need to carry their own socket memory accounting. Accordingly, the code transfers truesize from the parent to the newly created segments.  Prior to commit ed4cccef64c1 (\"gro: fix ownership transfer\"), this truesize subtraction in skb_segment_list() was valid because fragments still carry a reference to the original socket.  However, commit ed4cccef64c1 (\"gro: fix ownership transfer\") changed this behavior by ensuring that fraglist entries are explicitly orphaned (skb->sk = NULL) to prevent illegal orphaning later in the stack. This change meant that the entire socket memory charge remained with the head SKB, but the corresponding accounting logic in skb_segment_list() was never updated.  As a result, the current code unconditionally adds each fragment's truesize to delta_truesize and subtracts it from the parent SKB. Since the fragments are no longer charged to the socket, this subtraction results in an effective under-count of memory when the head is freed. This causes sk_wmem_alloc to remain non-zero, preventing socket destruction and leading to a persistent memory leak.  The leak can be observed via KMEMLEAK when tearing down the networking environment:  unreferenced object 0xffff8881e6eb9100 (size 2048):   comm \"ping\", pid 6720, jiffies 4295492526   backtrace:     kmem_cache_alloc_noprof+0x5c6/0x800     sk_prot_alloc+0x5b/0x220     sk_alloc+0x35/0xa00     inet6_create.part.0+0x303/0x10d0     __sock_create+0x248/0x640     __sys_socket+0x11b/0x1d0  Since skb_segment_list() is exclusively used for SKB_GSO_FRAGLIST packets constructed by GRO, the truesize adjustment is removed.  The call to skb_release_head_state() must be preserved. As documented in commit cf673ed0e057 (\"net: fix fraglist segmentation reference count leak\"), it is still required to correctly drop references to SKB extensions that may be overwritten during __copy_skb_header().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15: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-2026-23139",
                        "url": "https://ubuntu.com/security/CVE-2026-23139",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_conncount: update last_gc only when GC has been performed  Currently last_gc is being updated everytime a new connection is tracked, that means that it is updated even if a GC wasn't performed. With a sufficiently high packet rate, it is possible to always bypass the GC, causing the list to grow infinitely.  Update the last_gc value only when a GC has been actually performed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40149",
                        "url": "https://ubuntu.com/security/CVE-2025-40149",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock().  get_netdev_for_sock() is called during setsockopt(), so not under RCU.  Using sk_dst_get(sk)->dev could trigger UAF.  Let's use __sk_dst_get() and dst_dev_rcu().  Note that the only ->ndo_sk_get_lower_dev() user is bond_sk_get_lower_dev(), which uses RCU.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-12 11:15: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-2026-23047",
                        "url": "https://ubuntu.com/security/CVE-2026-23047",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make calc_target() set t->paused, not just clear it  Currently calc_target() clears t->paused if the request shouldn't be paused anymore, but doesn't ever set t->paused even though it's able to determine when the request should be paused.  Setting t->paused is left to __submit_request() which is fine for regular requests but doesn't work for linger requests -- since __submit_request() doesn't operate on linger requests, there is nowhere for lreq->t.paused to be set. One consequence of this is that watches don't get reestablished on paused -> unpaused transitions in cases where requests have been paused long enough for the (paused) unwatch request to time out and for the subsequent (re)watch request to enter the paused state.  On top of the watch not getting reestablished, rbd_reregister_watch() gets stuck with rbd_dev->watch_mutex held:    rbd_register_watch     __rbd_register_watch       ceph_osdc_watch         linger_reg_commit_wait  It's waiting for lreq->reg_commit_wait to be completed, but for that to happen the respective request needs to end up on need_resend_linger list and be kicked when requests are unpaused.  There is no chance for that if the request in question is never marked paused in the first place.  The fact that rbd_dev->watch_mutex remains taken out forever then prevents the image from getting unmapped -- \"rbd unmap\" would inevitably hang in D state on an attempt to grab the mutex.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23136",
                        "url": "https://ubuntu.com/security/CVE-2026-23136",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: reset sparse-read state in osd_fault()  When a fault occurs, the connection is abandoned, reestablished, and any pending operations are retried. The OSD client tracks the progress of a sparse-read reply using a separate state machine, largely independent of the messenger's state.  If a connection is lost mid-payload or the sparse-read state machine returns an error, the sparse-read state is not reset. The OSD client will then interpret the beginning of a new reply as the continuation of the old one. If this makes the sparse-read machinery enter a failure state, it may never recover, producing loops like:    libceph:  [0] got 0 extents   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read  Therefore, reset the sparse-read state in osd_fault(), ensuring retries start from a clean state.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15: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": "high",
                        "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-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-2025-71183",
                        "url": "https://ubuntu.com/security/CVE-2025-71183",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: always detect conflicting inodes when logging inode refs  After rename exchanging (either with the rename exchange operation or regular renames in multiple non-atomic steps) two inodes and at least one of them is a directory, we can end up with a log tree that contains only of the inodes and after a power failure that can result in an attempt to delete the other inode when it should not because it was not deleted before the power failure. In some case that delete attempt fails when the target inode is a directory that contains a subvolume inside it, since the log replay code is not prepared to deal with directory entries that point to root items (only inode items).  1) We have directories \"dir1\" (inode A) and \"dir2\" (inode B) under the    same parent directory;  2) We have a file (inode C) under directory \"dir1\" (inode A);  3) We have a subvolume inside directory \"dir2\" (inode B);  4) All these inodes were persisted in a past transaction and we are    currently at transaction N;  5) We rename the file (inode C), so at btrfs_log_new_name() we update    inode C's last_unlink_trans to N;  6) We get a rename exchange for \"dir1\" (inode A) and \"dir2\" (inode B),    so after the exchange \"dir1\" is inode B and \"dir2\" is inode A.    During the rename exchange we call btrfs_log_new_name() for inodes    A and B, but because they are directories, we don't update their    last_unlink_trans to N;  7) An fsync against the file (inode C) is done, and because its inode    has a last_unlink_trans with a value of N we log its parent directory    (inode A) (through btrfs_log_all_parents(), called from    btrfs_log_inode_parent()).  8) So we end up with inode B not logged, which now has the old name    of inode A. At copy_inode_items_to_log(), when logging inode A, we    did not check if we had any conflicting inode to log because inode    A has a generation lower than the current transaction (created in    a past transaction);  9) After a power failure, when replaying the log tree, since we find that    inode A has a new name that conflicts with the name of inode B in the    fs tree, we attempt to delete inode B... this is wrong since that    directory was never deleted before the power failure, and because there    is a subvolume inside that directory, attempting to delete it will fail    since replay_dir_deletes() and btrfs_unlink_inode() are not prepared    to deal with dir items that point to roots instead of inodes.     When that happens the mount fails and we get a stack trace like the    following:     [87.2314] BTRFS info (device dm-0): start tree-log replay    [87.2318] BTRFS critical (device dm-0): failed to delete reference to subvol, root 5 inode 256 parent 259    [87.2332] ------------[ cut here ]------------    [87.2338] BTRFS: Transaction aborted (error -2)    [87.2346] WARNING: CPU: 1 PID: 638968 at fs/btrfs/inode.c:4345 __btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2368] Modules linked in: btrfs loop dm_thin_pool (...)    [87.2470] CPU: 1 UID: 0 PID: 638968 Comm: mount Tainted: G        W          6.18.0-rc7-btrfs-next-218+ #2 PREEMPT(full)    [87.2489] Tainted: [W]=WARN    [87.2494] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014    [87.2514] RIP: 0010:__btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2538] Code: c0 89 04 24 (...)    [87.2568] RSP: 0018:ffffc0e741f4b9b8 EFLAGS: 00010286    [87.2574] RAX: 0000000000000000 RBX: ffff9d3ec8a6cf60 RCX: 0000000000000000    [87.2582] RDX: 0000000000000002 RSI: ffffffff84ab45a1 RDI: 00000000ffffffff    [87.2591] RBP: ffff9d3ec8a6ef20 R08: 0000000000000000 R09: ffffc0e741f4b840    [87.2599] R10: ffff9d45dc1fffa8 R11: 0000000000000003 R12: ffff9d3ee26d77e0    [87.2608] R13: ffffc0e741f4ba98 R14: ffff9d4458040800 R15: ffff9d44b6b7ca10    [87.2618] FS:  00007f7b9603a840(0000) GS:ffff9d4658982000(0000) knlGS:0000000000000000    [87. ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16: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-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-2024-50004",
                        "url": "https://ubuntu.com/security/CVE-2024-50004",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: update DML2 policy EnhancedPrefetchScheduleAccelerationFinal DCN35  [WHY & HOW] Mismatch in DCN35 DML2 cause bw validation failed to acquire unexpected DPP pipe to cause grey screen and system hang. Remove EnhancedPrefetchScheduleAccelerationFinal value override to match HW spec.  (cherry picked from commit 9dad21f910fcea2bdcff4af46159101d7f9cd8ba)",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-10-21 19:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23274",
                        "url": "https://ubuntu.com/security/CVE-2026-23274",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels  IDLETIMER revision 0 rules reuse existing timers by label and always call mod_timer() on timer->timer.  If the label was created first by revision 1 with XT_IDLETIMER_ALARM, the object uses alarm timer semantics and timer->timer is never initialized. Reusing that object from revision 0 causes mod_timer() on an uninitialized timer_list, triggering debugobjects warnings and possible panic when panic_on_warn=1.  Fix this by rejecting revision 0 rule insertion when an existing timer with the same label is of ALARM type.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-20 09:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23351",
                        "url": "https://ubuntu.com/security/CVE-2026-23351",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: split gc into unlink and reclaim phase  Yiming Qian reports Use-after-free in the pipapo set type:   Under a large number of expired elements, commit-time GC can run for a very   long time in a non-preemptible context, triggering soft lockup warnings and   RCU stall reports (local denial of service).  We must split GC in an unlink and a reclaim phase.  We cannot queue elements for freeing until pointers have been swapped. Expired elements are still exposed to both the packet path and userspace dumpers via the live copy of the data structure.  call_rcu() does not protect us: dump operations or element lookups starting after call_rcu has fired can still observe the free'd element, unless the commit phase has made enough progress to swap the clone and live pointers before any new reader has picked up the old version.  This a similar approach as done recently for the rbtree backend in commit 35f83a75529a (\"netfilter: nft_set_rbtree: don't gc elements on insert\").",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-25 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23231",
                        "url": "https://ubuntu.com/security/CVE-2026-23231",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-03-04 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23209",
                        "url": "https://ubuntu.com/security/CVE-2026-23209",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23112",
                        "url": "https://ubuntu.com/security/CVE-2026-23112",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23231",
                        "url": "https://ubuntu.com/security/CVE-2026-23231",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-03-04 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23209",
                        "url": "https://ubuntu.com/security/CVE-2026-23209",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23112",
                        "url": "https://ubuntu.com/security/CVE-2026-23112",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-36347",
                        "url": "https://ubuntu.com/security/CVE-2024-36347",
                        "cve_description": "Improper signature verification in AMD CPU ROM microcode patch loader may allow an attacker with local administrator privilege to load malicious microcode, potentially resulting in loss of integrity of x86 instruction execution, loss of confidentiality and integrity of data in x86 CPU privileged context and compromise of SMM execution environment.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-06-27 23:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40164",
                        "url": "https://ubuntu.com/security/CVE-2025-40164",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Fix using smp_processor_id() in preemptible code warnings  Syzbot reported the following warning:  BUG: using smp_processor_id() in preemptible [00000000] code: dhcpcd/2879 caller is usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331 CPU: 1 UID: 0 PID: 2879 Comm: dhcpcd Not tainted 6.15.0-rc4-syzkaller-00098-g615dca38c2ea #0 PREEMPT(voluntary) Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120  check_preemption_disabled+0xd0/0xe0 lib/smp_processor_id.c:49  usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331  usbnet_resume_rx+0x4b/0x170 drivers/net/usb/usbnet.c:708  usbnet_change_mtu+0x1be/0x220 drivers/net/usb/usbnet.c:417  __dev_set_mtu net/core/dev.c:9443 [inline]  netif_set_mtu_ext+0x369/0x5c0 net/core/dev.c:9496  netif_set_mtu+0xb0/0x160 net/core/dev.c:9520  dev_set_mtu+0xae/0x170 net/core/dev_api.c:247  dev_ifsioc+0xa31/0x18d0 net/core/dev_ioctl.c:572  dev_ioctl+0x223/0x10e0 net/core/dev_ioctl.c:821  sock_do_ioctl+0x19d/0x280 net/socket.c:1204  sock_ioctl+0x42f/0x6a0 net/socket.c:1311  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+0x190/0x200 fs/ioctl.c:892  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  For historical and portability reasons, the netif_rx() is usually run in the softirq or interrupt context, this commit therefore add local_bh_disable/enable() protection in the usbnet_resume_rx().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-12 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40325",
                        "url": "https://ubuntu.com/security/CVE-2025-40325",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid10: wait barrier before returning discard request with REQ_NOWAIT  raid10_handle_discard should wait barrier before returning a discard bio which has REQ_NOWAIT. And there is no need to print warning calltrace if a discard bio has REQ_NOWAIT flag. Quality engineer usually checks dmesg and reports error if dmesg has warning/error calltrace.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-18 07:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68206",
                        "url": "https://ubuntu.com/security/CVE-2025-68206",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_ct: add seqadj extension for natted connections  Sequence adjustment may be required for FTP traffic with PASV/EPSV modes. due to need to re-write packet payload (IP, port) on the ftp control connection. This can require changes to the TCP length and expected seq / ack_seq.  The easiest way to reproduce this issue is with PASV mode. Example ruleset: table inet ftp_nat {         ct helper ftp_helper {                 type \"ftp\" protocol tcp                 l3proto inet         }          chain prerouting {                 type filter hook prerouting priority 0; policy accept;                 tcp dport 21 ct state new ct helper set \"ftp_helper\"         } } table ip nat {         chain prerouting {                 type nat hook prerouting priority -100; policy accept;                 tcp dport 21 dnat ip prefix to ip daddr map { \t\t\t192.168.100.1 : 192.168.13.2/32 }         }          chain postrouting {                 type nat hook postrouting priority 100 ; policy accept;                 tcp sport 21 snat ip prefix to ip saddr map { \t\t\t192.168.13.2 : 192.168.100.1/32 }         } }  Note that the ftp helper gets assigned *after* the dnat setup.  The inverse (nat after helper assign) is handled by an existing check in nf_nat_setup_info() and will not show the problem.  Topoloy:   +-------------------+     +----------------------------------+  | FTP: 192.168.13.2 | <-> | NAT: 192.168.13.3, 192.168.100.1 |  +-------------------+     +----------------------------------+                                       |                          +-----------------------+                          | Client: 192.168.100.2 |                          +-----------------------+  ftp nat changes do not work as expected in this case: Connected to 192.168.100.1. [..] ftp> epsv EPSV/EPRT on IPv4 off. ftp> ls 227 Entering passive mode (192,168,100,1,209,129). 421 Service not available, remote server has closed connection.  Kernel logs: Missing nfct_seqadj_ext_add() setup call WARNING: CPU: 1 PID: 0 at net/netfilter/nf_conntrack_seqadj.c:41 [..]  __nf_nat_mangle_tcp_packet+0x100/0x160 [nf_nat]  nf_nat_ftp+0x142/0x280 [nf_nat_ftp]  help+0x4d1/0x880 [nf_conntrack_ftp]  nf_confirm+0x122/0x2e0 [nf_conntrack]  nf_hook_slow+0x3c/0xb0  ..  Fix this by adding the required extension when a conntrack helper is assigned to a connection that has a nat binding.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15: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-71135",
                        "url": "https://ubuntu.com/security/CVE-2025-71135",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid5: fix possible null-pointer dereferences in raid5_store_group_thread_cnt()  The variable mddev->private is first assigned to conf and then checked:    conf = mddev->private;   if (!conf) ...  If conf is NULL, then mddev->private is also NULL. In this case, null-pointer dereferences can occur when calling raid5_quiesce():    raid5_quiesce(mddev, true);   raid5_quiesce(mddev, false);  since mddev->private is assigned to conf again in raid5_quiesce(), and conf is dereferenced in several places, for example:    conf->quiesce = 0;   wake_up(&conf->wait_for_quiescent);  To fix this issue, the function should unlock mddev and return before invoking raid5_quiesce() when conf is NULL, following the existing pattern in raid5_change_consistency_policy().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38234",
                        "url": "https://ubuntu.com/security/CVE-2025-38234",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/rt: Fix race in push_rt_task  Overview ======== When a CPU chooses to call push_rt_task and picks a task to push to another CPU's runqueue then it will call find_lock_lowest_rq method which would take a double lock on both CPUs' runqueues. If one of the locks aren't readily available, it may lead to dropping the current runqueue lock and reacquiring both the locks at once. During this window it is possible that the task is already migrated and is running on some other CPU. These cases are already handled. However, if the task is migrated and has already been executed and another CPU is now trying to wake it up (ttwu) such that it is queued again on the runqeue (on_rq is 1) and also if the task was run by the same CPU, then the current checks will pass even though the task was migrated out and is no longer in the pushable tasks list.  Crashes ======= This bug resulted in quite a few flavors of crashes triggering kernel panics with various crash signatures such as assert failures, page faults, null pointer dereferences, and queue corruption errors all coming from scheduler itself.  Some of the crashes: -> kernel BUG at kernel/sched/rt.c:1616! BUG_ON(idx >= MAX_RT_PRIO)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? pick_next_task_rt+0x6e/0x1d0    ? do_error_trap+0x64/0xa0    ? pick_next_task_rt+0x6e/0x1d0    ? exc_invalid_op+0x4c/0x60    ? pick_next_task_rt+0x6e/0x1d0    ? asm_exc_invalid_op+0x12/0x20    ? pick_next_task_rt+0x6e/0x1d0    __schedule+0x5cb/0x790    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: kernel NULL pointer dereference, address: 00000000000000c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? __warn+0x8a/0xe0    ? exc_page_fault+0x3d6/0x520    ? asm_exc_page_fault+0x1e/0x30    ? pick_next_task_rt+0xb5/0x1d0    ? pick_next_task_rt+0x8c/0x1d0    __schedule+0x583/0x7e0    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: unable to handle page fault for address: ffff9464daea5900    kernel BUG at kernel/sched/rt.c:1861! BUG_ON(rq->cpu != task_cpu(p))  -> kernel BUG at kernel/sched/rt.c:1055! BUG_ON(!rq->nr_running)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? dequeue_top_rt_rq+0xa2/0xb0    ? do_error_trap+0x64/0xa0    ? dequeue_top_rt_rq+0xa2/0xb0    ? exc_invalid_op+0x4c/0x60    ? dequeue_top_rt_rq+0xa2/0xb0    ? asm_exc_invalid_op+0x12/0x20    ? dequeue_top_rt_rq+0xa2/0xb0    dequeue_rt_entity+0x1f/0x70    dequeue_task_rt+0x2d/0x70    __schedule+0x1a8/0x7e0    ? blk_finish_plug+0x25/0x40    schedule+0x3c/0xb0    futex_wait_queue_me+0xb6/0x120    futex_wait+0xd9/0x240    do_futex+0x344/0xa90    ? get_mm_exe_file+0x30/0x60    ? audit_exe_compare+0x58/0x70    ? audit_filter_rules.constprop.26+0x65e/0x1220    __x64_sys_futex+0x148/0x1f0    do_syscall_64+0x30/0x80    entry_SYSCALL_64_after_hwframe+0x62/0xc7  -> BUG: unable to handle page fault for address: ffff8cf3608bc2c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? spurious_kernel_fault+0x171/0x1c0    ? exc_page_fault+0x3b6/0x520    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? asm_exc_page_fault+0x1e/0x30    ? _cond_resched+0x15/0x30    ? futex_wait_queue_me+0xc8/0x120    ? futex_wait+0xd9/0x240    ? try_to_wake_up+0x1b8/0x490    ? futex_wake+0x78/0x160    ? do_futex+0xcd/0xa90    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? plist_del+0x6a/0xd0    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? dequeue_pushable_task+0x20/0x70    ? __schedule+0x382/0x7e0    ? asm_sysvec_reschedule_i ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-07-04 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68811",
                        "url": "https://ubuntu.com/security/CVE-2025-68811",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: use rc_pageoff for memcpy byte offset  svc_rdma_copy_inline_range added rc_curpage (page index) to the page base instead of the byte offset rc_pageoff. Use rc_pageoff so copies land within the current page.  Found by ZeroPath (https://zeropath.com)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68810",
                        "url": "https://ubuntu.com/security/CVE-2025-68810",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot  Reject attempts to disable KVM_MEM_GUEST_MEMFD on a memslot that was initially created with a guest_memfd binding, as KVM doesn't support toggling KVM_MEM_GUEST_MEMFD on existing memslots.  KVM prevents enabling KVM_MEM_GUEST_MEMFD, but doesn't prevent clearing the flag.  Failure to reject the new memslot results in a use-after-free due to KVM not unbinding from the guest_memfd instance.  Unbinding on a FLAGS_ONLY change is easy enough, and can/will be done as a hardening measure (in anticipation of KVM supporting dirty logging on guest_memfd at some point), but fixing the use-after-free would only address the immediate symptom.    ==================================================================   BUG: KASAN: slab-use-after-free in kvm_gmem_release+0x362/0x400 [kvm]   Write of size 8 at addr ffff8881111ae908 by task repro/745    CPU: 7 UID: 1000 PID: 745 Comm: repro Not tainted 6.18.0-rc6-115d5de2eef3-next-kasan #3 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   Call Trace:    <TASK>    dump_stack_lvl+0x51/0x60    print_report+0xcb/0x5c0    kasan_report+0xb4/0xe0    kvm_gmem_release+0x362/0x400 [kvm]    __fput+0x2fa/0x9d0    task_work_run+0x12c/0x200    do_exit+0x6ae/0x2100    do_group_exit+0xa8/0x230    __x64_sys_exit_group+0x3a/0x50    x64_sys_call+0x737/0x740    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f581f2eac31    </TASK>    Allocated by task 745 on cpu 6 at 9.746971s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_kmalloc+0x77/0x90    kvm_set_memory_region.part.0+0x652/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53    Freed by task 745 on cpu 6 at 9.747467s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_save_free_info+0x37/0x50    __kasan_slab_free+0x3b/0x60    kfree+0xf5/0x440    kvm_set_memslot+0x3c2/0x1160 [kvm]    kvm_set_memory_region.part.0+0x86a/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71109",
                        "url": "https://ubuntu.com/security/CVE-2025-71109",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  MIPS: ftrace: Fix memory corruption when kernel is located beyond 32 bits  Since commit e424054000878 (\"MIPS: Tracing: Reduce the overhead of dynamic Function Tracer\"), the macro UASM_i_LA_mostly has been used, and this macro can generate more than 2 instructions. At the same time, the code in ftrace assumes that no more than 2 instructions can be generated, which is why it stores them in an int[2] array. However, as previously noted, the macro UASM_i_LA_mostly (and now UASM_i_LA) causes a buffer overflow when _mcount is beyond 32 bits. This leads to corruption of the variables located in the __read_mostly section.  This corruption was observed because the variable __cpu_primary_thread_mask was corrupted, causing a hang very early during boot.  This fix prevents the corruption by avoiding the generation of instructions if they could exceed 2 instructions in length. Fortunately, insn_la_mcount is only used if the instrumented code is located outside the kernel code section, so dynamic ftrace can still be used, albeit in a more limited scope. This is still preferable to corrupting memory and/or crashing the kernel.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68770",
                        "url": "https://ubuntu.com/security/CVE-2025-68770",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bnxt_en: Fix XDP_TX path  For XDP_TX action in bnxt_rx_xdp(), clearing of the event flags is not correct.  __bnxt_poll_work() -> bnxt_rx_pkt() -> bnxt_rx_xdp() may be looping within NAPI and some event flags may be set in earlier iterations.  In particular, if BNXT_TX_EVENT is set earlier indicating some XDP_TX packets are ready and pending, it will be cleared if it is XDP_TX action again.  Normally, we will set BNXT_TX_EVENT again when we successfully call __bnxt_xmit_xdp().  But if the TX ring has no more room, the flag will not be set.  This will cause the TX producer to be ahead but the driver will not hit the TX doorbell.  For multi-buf XDP_TX, there is no need to clear the event flags and set BNXT_AGG_EVENT.  The BNXT_AGG_EVENT flag should have been set earlier in bnxt_rx_pkt().  The visible symptom of this is that the RX ring associated with the TX XDP ring will eventually become empty and all packets will be dropped. Because this condition will cause the driver to not refill the RX ring seeing that the TX ring has forever pending XDP_TX packets.  The fix is to only clear BNXT_RX_EVENT when we have successfully called __bnxt_xmit_xdp().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71072",
                        "url": "https://ubuntu.com/security/CVE-2025-71072",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  shmem: fix recovery on rename failures  maple_tree insertions can fail if we are seriously short on memory; simple_offset_rename() does not recover well if it runs into that. The same goes for simple_offset_rename_exchange().  Moreover, shmem_whiteout() expects that if it succeeds, the caller will progress to d_move(), i.e. that shmem_rename2() won't fail past the successful call of shmem_whiteout().  Not hard to fix, fortunately - mtree_store() can't fail if the index we are trying to store into is already present in the tree as a singleton.  For simple_offset_rename_exchange() that's enough - we just need to be careful about the order of operations.  For simple_offset_rename() solution is to preinsert the target into the tree for new_dir; the rest can be done without any potentially failing operations.  That preinsertion has to be done in shmem_rename2() rather than in simple_offset_rename() itself - otherwise we'd need to deal with the possibility of failure after successful shmem_whiteout().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68374",
                        "url": "https://ubuntu.com/security/CVE-2025-68374",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: fix rcu protection in md_wakeup_thread  We attempted to use RCU to protect the pointer 'thread', but directly passed the value when calling md_wakeup_thread(). This means that the RCU pointer has been acquired before rcu_read_lock(), which renders rcu_read_lock() ineffective and could lead to a use-after-free.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68378",
                        "url": "https://ubuntu.com/security/CVE-2025-68378",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix stackmap overflow check in __bpf_get_stackid()  Syzkaller reported a KASAN slab-out-of-bounds write in __bpf_get_stackid() when copying stack trace data. The issue occurs when the perf trace  contains more stack entries than the stack map bucket can hold,  leading to an out-of-bounds write in the bucket's data array.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-57795",
                        "url": "https://ubuntu.com/security/CVE-2024-57795",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Remove the direct link to net_device  The similar patch in siw is in the link: https://git.kernel.org/rdma/rdma/c/16b87037b48889  This problem also occurred in RXE. The following analyze this problem. In the following Call Traces: \" BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 net/core/dev.c:8782 Read of size 4 at addr ffff8880554640b0 by task kworker/1:4/5295  CPU: 1 UID: 0 PID: 5295 Comm: kworker/1:4 Not tainted 6.12.0-rc3-syzkaller-00399-g9197b73fd7bb #0 Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: infiniband ib_cache_event_task 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:377 [inline]  print_report+0x169/0x550 mm/kasan/report.c:488  kasan_report+0x143/0x180 mm/kasan/report.c:601  dev_get_flags+0x188/0x1d0 net/core/dev.c:8782  rxe_query_port+0x12d/0x260 drivers/infiniband/sw/rxe/rxe_verbs.c:60  __ib_query_port drivers/infiniband/core/device.c:2111 [inline]  ib_query_port+0x168/0x7d0 drivers/infiniband/core/device.c:2143  ib_cache_update+0x1a9/0xb80 drivers/infiniband/core/cache.c:1494  ib_cache_event_task+0xf3/0x1e0 drivers/infiniband/core/cache.c:1568  process_one_work kernel/workqueue.c:3229 [inline]  process_scheduled_works+0xa65/0x1850 kernel/workqueue.c:3310  worker_thread+0x870/0xd30 kernel/workqueue.c:3391  kthread+0x2f2/0x390 kernel/kthread.c:389  ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:147  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244  </TASK> \"  1). In the link [1],  \"  infiniband syz2: set down \"  This means that on 839.350575, the event ib_cache_event_task was sent andi queued in ib_wq.  2). In the link [1],  \"  team0 (unregistering): Port device team_slave_0 removed \"  It indicates that before 843.251853, the net device should be freed.  3). In the link [1],  \"  BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 \"  This means that on 850.559070, this slab-use-after-free problem occurred.  In all, on 839.350575, the event ib_cache_event_task was sent and queued in ib_wq,  before 843.251853, the net device veth was freed.  on 850.559070, this event was executed, and the mentioned freed net device was called. Thus, the above call trace occurred.  [1] https://syzkaller.appspot.com/x/log.txt?x=12e7025f980000",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-01-15 13: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-71140",
                        "url": "https://ubuntu.com/security/CVE-2025-71140",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: mediatek: vcodec: Use spinlock for context list protection lock  Previously a mutex was added to protect the encoder and decoder context lists from unexpected changes originating from the SCP IP block, causing the context pointer to go invalid, resulting in a NULL pointer dereference in the IPI handler.  Turns out on the MT8173, the VPU IPI handler is called from hard IRQ context. This causes a big warning from the scheduler. This was first reported downstream on the ChromeOS kernels, but is also reproducible on mainline using Fluster with the FFmpeg v4l2m2m decoders. Even though the actual capture format is not supported, the affected code paths are triggered.  Since this lock just protects the context list and operations on it are very fast, it should be OK to switch to a spinlock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-68772",
                        "url": "https://ubuntu.com/security/CVE-2025-68772",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating compression context during writeback  Bai, Shuangpeng <sjb7183@psu.edu> reported a bug as below:  Oops: divide error: 0000 [#1] SMP KASAN PTI CPU: 0 UID: 0 PID: 11441 Comm: syz.0.46 Not tainted 6.17.0 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP: 0010:f2fs_all_cluster_page_ready+0x106/0x550 fs/f2fs/compress.c:857 Call Trace:  <TASK>  f2fs_write_cache_pages fs/f2fs/data.c:3078 [inline]  __f2fs_write_data_pages fs/f2fs/data.c:3290 [inline]  f2fs_write_data_pages+0x1c19/0x3600 fs/f2fs/data.c:3317  do_writepages+0x38e/0x640 mm/page-writeback.c:2634  filemap_fdatawrite_wbc mm/filemap.c:386 [inline]  __filemap_fdatawrite_range mm/filemap.c:419 [inline]  file_write_and_wait_range+0x2ba/0x3e0 mm/filemap.c:794  f2fs_do_sync_file+0x6e6/0x1b00 fs/f2fs/file.c:294  generic_write_sync include/linux/fs.h:3043 [inline]  f2fs_file_write_iter+0x76e/0x2700 fs/f2fs/file.c:5259  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x7e9/0xe00 fs/read_write.c:686  ksys_write+0x19d/0x2d0 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xf7/0x470 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The bug was triggered w/ below race condition:  fsync\t\t\t\tsetattr\t\t\tioctl - f2fs_do_sync_file  - file_write_and_wait_range   - f2fs_write_cache_pages   : inode is non-compressed   : cc.cluster_size =     F2FS_I(inode)->i_cluster_size = 0    - tag_pages_for_writeback \t\t\t\t- f2fs_setattr \t\t\t\t - truncate_setsize \t\t\t\t - f2fs_truncate \t\t\t\t\t\t\t- f2fs_fileattr_set \t\t\t\t\t\t\t - f2fs_setflags_common \t\t\t\t\t\t\t  - set_compress_context \t\t\t\t\t\t\t  : F2FS_I(inode)->i_cluster_size = 4 \t\t\t\t\t\t\t  : set_inode_flag(inode, FI_COMPRESSED_FILE)    - f2fs_compressed_file    : return true    - f2fs_all_cluster_page_ready    : \"pgidx % cc->cluster_size\" trigger dividing 0 issue  Let's change as below to fix this issue: - introduce a new atomic type variable .writeback in structure f2fs_inode_info to track the number of threads which calling f2fs_write_cache_pages(). - use .i_sem lock to protect .writeback update. - check .writeback before update compression context in f2fs_setflags_common() to avoid race w/ ->writepages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15: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-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-71141",
                        "url": "https://ubuntu.com/security/CVE-2025-71141",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/tilcdc: Fix removal actions in case of failed probe  The drm_kms_helper_poll_fini() and drm_atomic_helper_shutdown() helpers should only be called when the device has been successfully registered. Currently, these functions are called unconditionally in tilcdc_fini(), which causes warnings during probe deferral scenarios.  [    7.972317] WARNING: CPU: 0 PID: 23 at drivers/gpu/drm/drm_atomic_state_helper.c:175 drm_atomic_helper_crtc_duplicate_state+0x60/0x68 ... [    8.005820]  drm_atomic_helper_crtc_duplicate_state from drm_atomic_get_crtc_state+0x68/0x108 [    8.005858]  drm_atomic_get_crtc_state from drm_atomic_helper_disable_all+0x90/0x1c8 [    8.005885]  drm_atomic_helper_disable_all from drm_atomic_helper_shutdown+0x90/0x144 [    8.005911]  drm_atomic_helper_shutdown from tilcdc_fini+0x68/0xf8 [tilcdc] [    8.005957]  tilcdc_fini [tilcdc] from tilcdc_pdev_probe+0xb0/0x6d4 [tilcdc]  Fix this by rewriting the failed probe cleanup path using the standard goto error handling pattern, which ensures that cleanup functions are only called on successfully initialized resources. Additionally, remove the now-unnecessary is_registered flag.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 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-71088",
                        "url": "https://ubuntu.com/security/CVE-2025-71088",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fallback earlier on simult connection  Syzkaller reports a simult-connect race leading to inconsistent fallback status:    WARNING: CPU: 3 PID: 33 at net/mptcp/subflow.c:1515 subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Modules linked in:   CPU: 3 UID: 0 PID: 33 Comm: ksoftirqd/3 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:subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Code: 89 ee e8 78 61 3c f6 40 84 ed 75 21 e8 8e 66 3c f6 44 89 fe bf 07 00 00 00 e8 c1 61 3c f6 41 83 ff 07 74 09 e8 76 66 3c f6 90 <0f> 0b 90 e8 6d 66 3c f6 48 89 df e8 e5 ad ff ff 31 ff 89 c5 89 c6   RSP: 0018:ffffc900006cf338 EFLAGS: 00010246   RAX: 0000000000000000 RBX: ffff888031acd100 RCX: ffffffff8b7f2abf   RDX: ffff88801e6ea440 RSI: ffffffff8b7f2aca RDI: 0000000000000005   RBP: 0000000000000000 R08: 0000000000000005 R09: 0000000000000007   R10: 0000000000000004 R11: 0000000000002c10 R12: ffff88802ba69900   R13: 1ffff920000d9e67 R14: ffff888046f81800 R15: 0000000000000004   FS:  0000000000000000(0000) GS:ffff8880d69bc000(0000) knlGS:0000000000000000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 0000560fc0ca1670 CR3: 0000000032c3a000 CR4: 0000000000352ef0   Call Trace:    <TASK>    tcp_data_queue+0x13b0/0x4f90 net/ipv4/tcp_input.c:5197    tcp_rcv_state_process+0xfdf/0x4ec0 net/ipv4/tcp_input.c:6922    tcp_v6_do_rcv+0x492/0x1740 net/ipv6/tcp_ipv6.c:1672    tcp_v6_rcv+0x2976/0x41e0 net/ipv6/tcp_ipv6.c:1918    ip6_protocol_deliver_rcu+0x188/0x1520 net/ipv6/ip6_input.c:438    ip6_input_finish+0x1e4/0x4b0 net/ipv6/ip6_input.c:489    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ip6_input+0x105/0x2f0 net/ipv6/ip6_input.c:500    dst_input include/net/dst.h:471 [inline]    ip6_rcv_finish net/ipv6/ip6_input.c:79 [inline]    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ipv6_rcv+0x264/0x650 net/ipv6/ip6_input.c:311    __netif_receive_skb_one_core+0x12d/0x1e0 net/core/dev.c:5979    __netif_receive_skb+0x1d/0x160 net/core/dev.c:6092    process_backlog+0x442/0x15e0 net/core/dev.c:6444    __napi_poll.constprop.0+0xba/0x550 net/core/dev.c:7494    napi_poll net/core/dev.c:7557 [inline]    net_rx_action+0xa9f/0xfe0 net/core/dev.c:7684    handle_softirqs+0x216/0x8e0 kernel/softirq.c:579    run_ksoftirqd kernel/softirq.c:968 [inline]    run_ksoftirqd+0x3a/0x60 kernel/softirq.c:960    smpboot_thread_fn+0x3f7/0xae0 kernel/smpboot.c:160    kthread+0x3c2/0x780 kernel/kthread.c:463    ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148    ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245    </TASK>  The TCP subflow can process the simult-connect syn-ack packet after transitioning to TCP_FIN1 state, bypassing the MPTCP fallback check, as the sk_state_change() callback is not invoked for * -> FIN_WAIT1 transitions.  That will move the msk socket to an inconsistent status and the next incoming data will hit the reported splat.  Close the race moving the simult-fallback check at the earliest possible stage - that is at syn-ack generation time.  About the fixes tags: [2] was supposed to also fix this issue introduced by [3]. [1] is required as a dependence: it was not explicitly marked as a fix, but it is one and it has already been backported before [3]. In other words, this commit should be backported up to [3], including [2] and [1] if that's not already there.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71065",
                        "url": "https://ubuntu.com/security/CVE-2025-71065",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid potential deadlock  As Jiaming Zhang and syzbot reported, there is potential deadlock in f2fs as below:  Chain exists of:   &sbi->cp_rwsem --> fs_reclaim --> sb_internal#2   Possible unsafe locking scenario:         CPU0                    CPU1        ----                    ----   rlock(sb_internal#2);                                lock(fs_reclaim);                                lock(sb_internal#2);   rlock(&sbi->cp_rwsem);   *** DEADLOCK ***  3 locks held by kswapd0/73:  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat mm/vmscan.c:7015 [inline]  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0x951/0x2800 mm/vmscan.c:7389  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_trylock_shared fs/super.c:562 [inline]  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_cache_scan+0x91/0x4b0 fs/super.c:197  #2: ffff888011840610 (sb_internal#2){.+.+}-{0:0}, at: f2fs_evict_inode+0x8d9/0x1b60 fs/f2fs/inode.c:890  stack backtrace: CPU: 0 UID: 0 PID: 73 Comm: kswapd0 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 Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_circular_bug+0x2ee/0x310 kernel/locking/lockdep.c:2043  check_noncircular+0x134/0x160 kernel/locking/lockdep.c:2175  check_prev_add kernel/locking/lockdep.c:3165 [inline]  check_prevs_add kernel/locking/lockdep.c:3284 [inline]  validate_chain+0xb9b/0x2140 kernel/locking/lockdep.c:3908  __lock_acquire+0xab9/0xd20 kernel/locking/lockdep.c:5237  lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5868  down_read+0x46/0x2e0 kernel/locking/rwsem.c:1537  f2fs_down_read fs/f2fs/f2fs.h:2278 [inline]  f2fs_lock_op fs/f2fs/f2fs.h:2357 [inline]  f2fs_do_truncate_blocks+0x21c/0x10c0 fs/f2fs/file.c:791  f2fs_truncate_blocks+0x10a/0x300 fs/f2fs/file.c:867  f2fs_truncate+0x489/0x7c0 fs/f2fs/file.c:925  f2fs_evict_inode+0x9f2/0x1b60 fs/f2fs/inode.c:897  evict+0x504/0x9c0 fs/inode.c:810  f2fs_evict_inode+0x1dc/0x1b60 fs/f2fs/inode.c:853  evict+0x504/0x9c0 fs/inode.c:810  dispose_list fs/inode.c:852 [inline]  prune_icache_sb+0x21b/0x2c0 fs/inode.c:1000  super_cache_scan+0x39b/0x4b0 fs/super.c:224  do_shrink_slab+0x6ef/0x1110 mm/shrinker.c:437  shrink_slab_memcg mm/shrinker.c:550 [inline]  shrink_slab+0x7ef/0x10d0 mm/shrinker.c:628  shrink_one+0x28a/0x7c0 mm/vmscan.c:4955  shrink_many mm/vmscan.c:5016 [inline]  lru_gen_shrink_node mm/vmscan.c:5094 [inline]  shrink_node+0x315d/0x3780 mm/vmscan.c:6081  kswapd_shrink_node mm/vmscan.c:6941 [inline]  balance_pgdat mm/vmscan.c:7124 [inline]  kswapd+0x147c/0x2800 mm/vmscan.c:7389  kthread+0x70e/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>  The root cause is deadlock among four locks as below:  kswapd - fs_reclaim\t\t\t\t--- Lock A  - shrink_one   - evict    - f2fs_evict_inode     - sb_start_intwrite\t\t\t--- Lock B  - iput  - evict   - f2fs_evict_inode    - sb_start_intwrite\t\t\t--- Lock B    - f2fs_truncate     - f2fs_truncate_blocks      - f2fs_do_truncate_blocks       - f2fs_lock_op\t\t\t--- Lock C  ioctl - f2fs_ioc_commit_atomic_write  - f2fs_lock_op\t\t\t\t--- Lock C   - __f2fs_commit_atomic_write    - __replace_atomic_write_block     - f2fs_get_dnode_of_data      - __get_node_folio       - f2fs_check_nid_range        - f2fs_handle_error         - f2fs_record_errors          - f2fs_down_write\t\t--- Lock D  open - do_open  - do_truncate   - security_inode_need_killpriv    - f2fs_getxattr     - lookup_all_xattrs      - f2fs_handle_error       - f2fs_record_errors        - f2fs_down_write\t\t--- Lock D         - f2fs_commit_super          - read_mapping_folio           - filemap_alloc_folio_noprof            - prepare_alloc_pages             - fs_reclaim_acquire\t--- Lock A  In order to a ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68345",
                        "url": "https://ubuntu.com/security/CVE-2025-68345",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: hda: cs35l41: Fix NULL pointer dereference in cs35l41_hda_read_acpi()  The acpi_get_first_physical_node() function can return NULL, in which case the get_device() function also returns NULL, but this value is then dereferenced without checking,so add a check to prevent a crash.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11: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-71130",
                        "url": "https://ubuntu.com/security/CVE-2025-71130",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/gem: Zero-initialize the eb.vma array in i915_gem_do_execbuffer  Initialize the eb.vma array with values of 0 when the eb structure is first set up. In particular, this sets the eb->vma[i].vma pointers to NULL, simplifying cleanup and getting rid of the bug described below.  During the execution of eb_lookup_vmas(), the eb->vma array is successively filled up with struct eb_vma objects. This process includes calling eb_add_vma(), which might fail; however, even in the event of failure, eb->vma[i].vma is set for the currently processed buffer.  If eb_add_vma() fails, eb_lookup_vmas() returns with an error, which prompts a call to eb_release_vmas() to clean up the mess. Since eb_lookup_vmas() might fail during processing any (possibly not first) buffer, eb_release_vmas() checks whether a buffer's vma is NULL to know at what point did the lookup function fail.  In eb_lookup_vmas(), eb->vma[i].vma is set to NULL if either the helper function eb_lookup_vma() or eb_validate_vma() fails. eb->vma[i+1].vma is set to NULL in case i915_gem_object_userptr_submit_init() fails; the current one needs to be cleaned up by eb_release_vmas() at this point, so the next one is set. If eb_add_vma() fails, neither the current nor the next vma is set to NULL, which is a source of a NULL deref bug described in the issue linked in the Closes tag.  When entering eb_lookup_vmas(), the vma pointers are set to the slab poison value, instead of NULL. This doesn't matter for the actual lookup, since it gets overwritten anyway, however the eb_release_vmas() function only recognizes NULL as the stopping value, hence the pointers are being set to NULL as they go in case of intermediate failure. This patch changes the approach to filling them all with NULL at the start instead, rather than handling that manually during failure.  (cherry picked from commit 08889b706d4f0b8d2352b7ca29c2d8df4d0787cd)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71138",
                        "url": "https://ubuntu.com/security/CVE-2025-71138",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/msm/dpu: Add missing NULL pointer check for pingpong interface  It is checked almost always in dpu_encoder_phys_wb_setup_ctl(), but in a single place the check is missing. Also use convenient locals instead of phys_enc->* where available.  Patchwork: https://patchwork.freedesktop.org/patch/693860/",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16: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-71129",
                        "url": "https://ubuntu.com/security/CVE-2025-71129",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: BPF: Sign extend kfunc call arguments  The kfunc calls are native calls so they should follow LoongArch calling conventions. Sign extend its arguments properly to avoid kernel panic. This is done by adding a new emit_abi_ext() helper. The emit_abi_ext() helper performs extension in place meaning a value already store in the target register (Note: this is different from the existing sign_extend() helper and thus we can't reuse it).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-71143",
                        "url": "https://ubuntu.com/security/CVE-2025-71143",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  clk: samsung: exynos-clkout: Assign .num before accessing .hws  Commit f316cdff8d67 (\"clk: Annotate struct clk_hw_onecell_data with __counted_by\") annotated the hws member of 'struct clk_hw_onecell_data' with __counted_by, which informs the bounds sanitizer (UBSAN_BOUNDS) about the number of elements in .hws[], so that it can warn when .hws[] is accessed out of bounds. As noted in that change, the __counted_by member must be initialized with the number of elements before the first array access happens, otherwise there will be a warning from each access prior to the initialization because the number of elements is zero. This occurs in exynos_clkout_probe() due to .num being assigned after .hws[] has been accessed:    UBSAN: array-index-out-of-bounds in drivers/clk/samsung/clk-exynos-clkout.c:178:18   index 0 is out of range for type 'clk_hw *[*]'  Move the .num initialization to before the first access of .hws[], clearing up the warning.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-71089",
                        "url": "https://ubuntu.com/security/CVE-2025-71089",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu: disable SVA when CONFIG_X86 is set  Patch series \"Fix stale IOTLB entries for kernel address space\", v7.  This proposes a fix for a security vulnerability related to IOMMU Shared Virtual Addressing (SVA).  In an SVA context, an IOMMU can cache kernel page table entries.  When a kernel page table page is freed and reallocated for another purpose, the IOMMU might still hold stale, incorrect entries.  This can be exploited to cause a use-after-free or write-after-free condition, potentially leading to privilege escalation or data corruption.  This solution introduces a deferred freeing mechanism for kernel page table pages, which provides a safe window to notify the IOMMU to invalidate its caches before the page is reused.   This patch (of 8):  In the IOMMU Shared Virtual Addressing (SVA) context, the IOMMU hardware shares and walks the CPU's page tables.  The x86 architecture maps the kernel's virtual address space into the upper portion of every process's page table.  Consequently, in an SVA context, the IOMMU hardware can walk and cache kernel page table entries.  The Linux kernel currently lacks a notification mechanism for kernel page table changes, specifically when page table pages are freed and reused. The IOMMU driver is only notified of changes to user virtual address mappings.  This can cause the IOMMU's internal caches to retain stale entries for kernel VA.  Use-After-Free (UAF) and Write-After-Free (WAF) conditions arise when kernel page table pages are freed and later reallocated.  The IOMMU could misinterpret the new data as valid page table entries.  The IOMMU might then walk into attacker-controlled memory, leading to arbitrary physical memory DMA access or privilege escalation.  This is also a Write-After-Free issue, as the IOMMU will potentially continue to write Accessed and Dirty bits to the freed memory while attempting to walk the stale page tables.  Currently, SVA contexts are unprivileged and cannot access kernel mappings.  However, the IOMMU will still walk kernel-only page tables all the way down to the leaf entries, where it realizes the mapping is for the kernel and errors out.  This means the IOMMU still caches these intermediate page table entries, making the described vulnerability a real concern.  Disable SVA on x86 architecture until the IOMMU can receive notification to flush the paging cache before freeing the CPU kernel page table pages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16: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-71153",
                        "url": "https://ubuntu.com/security/CVE-2025-71153",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix memory leak in get_file_all_info()  In get_file_all_info(), if vfs_getattr() fails, the function returns immediately without freeing the allocated filename, leading to a memory leak.  Fix this by freeing the filename before returning in this error case.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 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-71095",
                        "url": "https://ubuntu.com/security/CVE-2025-71095",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: stmmac: fix the crash issue for zero copy XDP_TX action  There is a crash issue when running zero copy XDP_TX action, the crash log is shown below.  [  216.122464] Unable to handle kernel paging request at virtual address fffeffff80000000 [  216.187524] Internal error: Oops: 0000000096000144 [#1]  SMP [  216.301694] Call trace: [  216.304130]  dcache_clean_poc+0x20/0x38 (P) [  216.308308]  __dma_sync_single_for_device+0x1bc/0x1e0 [  216.313351]  stmmac_xdp_xmit_xdpf+0x354/0x400 [  216.317701]  __stmmac_xdp_run_prog+0x164/0x368 [  216.322139]  stmmac_napi_poll_rxtx+0xba8/0xf00 [  216.326576]  __napi_poll+0x40/0x218 [  216.408054] Kernel panic - not syncing: Oops: Fatal exception in interrupt  For XDP_TX action, the xdp_buff is converted to xdp_frame by xdp_convert_buff_to_frame(). The memory type of the resulting xdp_frame depends on the memory type of the xdp_buff. For page pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_POOL. For zero copy XSK pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_ORDER0. However, stmmac_xdp_xmit_back() does not check the memory type and always uses the page pool type, this leads to invalid mappings and causes the crash. Therefore, check the xdp_buff memory type in stmmac_xdp_xmit_back() to fix this issue.",
                        "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-71101",
                        "url": "https://ubuntu.com/security/CVE-2025-71101",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix out-of-bounds array access in ACPI package parsing  The hp_populate_*_elements_from_package() functions in the hp-bioscfg driver contain out-of-bounds array access vulnerabilities.  These functions parse ACPI packages into internal data structures using a for loop with index variable 'elem' that iterates through enum_obj/integer_obj/order_obj/password_obj/string_obj arrays.  When processing multi-element fields like PREREQUISITES and ENUM_POSSIBLE_VALUES, these functions read multiple consecutive array elements using expressions like 'enum_obj[elem + reqs]' and 'enum_obj[elem + pos_values]' within nested loops.  The bug is that the bounds check only validated elem, but did not consider the additional offset when accessing elem + reqs or elem + pos_values.  The fix changes the bounds check to validate the actual accessed index.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16: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-71071",
                        "url": "https://ubuntu.com/security/CVE-2025-71071",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu/mediatek: fix use-after-free on probe deferral  The driver is dropping the references taken to the larb devices during probe after successful lookup as well as on errors. This can potentially lead to a use-after-free in case a larb device has not yet been bound to its driver so that the iommu driver probe defers.  Fix this by keeping the references as expected while the iommu driver is bound.",
                        "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-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-71149",
                        "url": "https://ubuntu.com/security/CVE-2025-71149",
                        "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68778",
                        "url": "https://ubuntu.com/security/CVE-2025-68778",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: don't log conflicting inode if it's a dir moved in the current transaction  We can't log a conflicting inode if it's a directory and it was moved from one parent directory to another parent directory in the current transaction, as this can result an attempt to have a directory with two hard links during log replay, one for the old parent directory and another for the new parent directory.  The following scenario triggers that issue:  1) We have directories \"dir1\" and \"dir2\" created in a past transaction.    Directory \"dir1\" has inode A as its parent directory;  2) We move \"dir1\" to some other directory;  3) We create a file with the name \"dir1\" in directory inode A;  4) We fsync the new file. This results in logging the inode of the new file    and the inode for the directory \"dir1\" that was previously moved in the    current transaction. So the log tree has the INODE_REF item for the    new location of \"dir1\";  5) We move the new file to some other directory. This results in updating    the log tree to included the new INODE_REF for the new location of the    file and removes the INODE_REF for the old location. This happens    during the rename when we call btrfs_log_new_name();  6) We fsync the file, and that persists the log tree changes done in the    previous step (btrfs_log_new_name() only updates the log tree in    memory);  7) We have a power failure;  8) Next time the fs is mounted, log replay happens and when processing    the inode for directory \"dir1\" we find a new INODE_REF and add that    link, but we don't remove the old link of the inode since we have    not logged the old parent directory of the directory inode \"dir1\".  As a result after log replay finishes when we trigger writeback of the subvolume tree's extent buffers, the tree check will detect that we have a directory a hard link count of 2 and we get a mount failure. The errors and stack traces reported in dmesg/syslog are like this:     [ 3845.729764] BTRFS info (device dm-0): start tree-log replay    [ 3845.730304] page: refcount:3 mapcount:0 mapping:000000005c8a3027 index:0x1d00 pfn:0x11510c    [ 3845.731236] memcg:ffff9264c02f4e00    [ 3845.731751] aops:btree_aops [btrfs] ino:1    [ 3845.732300] flags: 0x17fffc00000400a(uptodate|private|writeback|node=0|zone=2|lastcpupid=0x1ffff)    [ 3845.733346] raw: 017fffc00000400a 0000000000000000 dead000000000122 ffff9264d978aea8    [ 3845.734265] raw: 0000000000001d00 ffff92650e6d4738 00000003ffffffff ffff9264c02f4e00    [ 3845.735305] page dumped because: eb page dump    [ 3845.735981] BTRFS critical (device dm-0): corrupt leaf: root=5 block=30408704 slot=6 ino=257, invalid nlink: has 2 expect no more than 1 for dir    [ 3845.737786] BTRFS info (device dm-0): leaf 30408704 gen 10 total ptrs 17 free space 14881 owner 5    [ 3845.737789] BTRFS info (device dm-0): refs 4 lock_owner 0 current 30701    [ 3845.737792] \titem 0 key (256 INODE_ITEM 0) itemoff 16123 itemsize 160    [ 3845.737794] \t\tinode generation 3 transid 9 size 16 nbytes 16384    [ 3845.737795] \t\tblock group 0 mode 40755 links 1 uid 0 gid 0    [ 3845.737797] \t\trdev 0 sequence 2 flags 0x0    [ 3845.737798] \t\tatime 1764259517.0    [ 3845.737800] \t\tctime 1764259517.572889464    [ 3845.737801] \t\tmtime 1764259517.572889464    [ 3845.737802] \t\totime 1764259517.0    [ 3845.737803] \titem 1 key (256 INODE_REF 256) itemoff 16111 itemsize 12    [ 3845.737805] \t\tindex 0 name_len 2    [ 3845.737807] \titem 2 key (256 DIR_ITEM 2363071922) itemoff 16077 itemsize 34    [ 3845.737808] \t\tlocation key (257 1 0) type 2    [ 3845.737810] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737811] \titem 3 key (256 DIR_ITEM 2676584006) itemoff 16043 itemsize 34    [ 3845.737813] \t\tlocation key (258 1 0) type 2    [ 3845.737814] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737815] \titem 4 key (256 DIR_INDEX 2) itemoff 16009 itemsize 34    [ 3845.737816] \t\tlocation key (257 1 0) type 2    [ ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71119",
                        "url": "https://ubuntu.com/security/CVE-2025-71119",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/kexec: Enable SMT before waking offline CPUs  If SMT is disabled or a partial SMT state is enabled, when a new kernel image is loaded for kexec, on reboot the following warning is observed:  kexec: Waking offline cpu 228. WARNING: CPU: 0 PID: 9062 at arch/powerpc/kexec/core_64.c:223 kexec_prepare_cpus+0x1b0/0x1bc [snip]  NIP kexec_prepare_cpus+0x1b0/0x1bc  LR  kexec_prepare_cpus+0x1a0/0x1bc  Call Trace:   kexec_prepare_cpus+0x1a0/0x1bc (unreliable)   default_machine_kexec+0x160/0x19c   machine_kexec+0x80/0x88   kernel_kexec+0xd0/0x118   __do_sys_reboot+0x210/0x2c4   system_call_exception+0x124/0x320   system_call_vectored_common+0x15c/0x2ec  This occurs as add_cpu() fails due to cpu_bootable() returning false for CPUs that fail the cpu_smt_thread_allowed() check or non primary threads if SMT is disabled.  Fix the issue by enabling SMT and resetting the number of SMT threads to the number of threads per core, before attempting to wake up all present CPUs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-71148",
                        "url": "https://ubuntu.com/security/CVE-2025-71148",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: restore destructor on submit failure  handshake_req_submit() replaces sk->sk_destruct but never restores it when submission fails before the request is hashed. handshake_sk_destruct() then returns early and the original destructor never runs, leaking the socket. Restore sk_destruct on the error path.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15: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-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-71107",
                        "url": "https://ubuntu.com/security/CVE-2025-71107",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: ensure node page reads complete before f2fs_put_super() finishes  Xfstests generic/335, generic/336 sometimes crash with the following message:  F2FS-fs (dm-0): detect filesystem reference count leak during umount, type: 9, count: 1 ------------[ cut here ]------------ kernel BUG at fs/f2fs/super.c:1939! Oops: invalid opcode: 0000 [#1] SMP NOPTI CPU: 1 UID: 0 PID: 609351 Comm: umount Tainted: G        W          6.17.0-rc5-xfstests-g9dd1835ecda5 #1 PREEMPT(none) Tainted: [W]=WARN Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:f2fs_put_super+0x3b3/0x3c0 Call Trace:  <TASK>  generic_shutdown_super+0x7e/0x190  kill_block_super+0x1a/0x40  kill_f2fs_super+0x9d/0x190  deactivate_locked_super+0x30/0xb0  cleanup_mnt+0xba/0x150  task_work_run+0x5c/0xa0  exit_to_user_mode_loop+0xb7/0xc0  do_syscall_64+0x1ae/0x1c0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  </TASK> ---[ end trace 0000000000000000 ]---  It appears that sometimes it is possible that f2fs_put_super() is called before all node page reads are completed. Adding a call to f2fs_wait_on_all_pages() for F2FS_RD_NODE fixes the problem.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15: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-71126",
                        "url": "https://ubuntu.com/security/CVE-2025-71126",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: avoid deadlock on fallback while reinjecting  Jakub reported an MPTCP deadlock at fallback time:   WARNING: possible recursive locking detected  6.18.0-rc7-virtme #1 Not tainted  --------------------------------------------  mptcp_connect/20858 is trying to acquire lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_try_fallback+0xd8/0x280   but task is already holding lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   other info that might help us debug this:   Possible unsafe locking scenario:          CPU0         ----    lock(&msk->fallback_lock);    lock(&msk->fallback_lock);    *** DEADLOCK ***    May be due to missing lock nesting notation   3 locks held by mptcp_connect/20858:   #0: ff1100001da18290 (sk_lock-AF_INET){+.+.}-{0:0}, at: mptcp_sendmsg+0x114/0x1bc0   #1: ff1100001db40fd0 (k-sk_lock-AF_INET#2){+.+.}-{0:0}, at: __mptcp_retrans+0x2cb/0xaa0   #2: ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   stack backtrace:  CPU: 0 UID: 0 PID: 20858 Comm: mptcp_connect Not tainted 6.18.0-rc7-virtme #1 PREEMPT(full)  Hardware name: Bochs, BIOS Bochs 01/01/2011  Call Trace:   <TASK>   dump_stack_lvl+0x6f/0xa0   print_deadlock_bug.cold+0xc0/0xcd   validate_chain+0x2ff/0x5f0   __lock_acquire+0x34c/0x740   lock_acquire.part.0+0xbc/0x260   _raw_spin_lock_bh+0x38/0x50   __mptcp_try_fallback+0xd8/0x280   mptcp_sendmsg_frag+0x16c2/0x3050   __mptcp_retrans+0x421/0xaa0   mptcp_release_cb+0x5aa/0xa70   release_sock+0xab/0x1d0   mptcp_sendmsg+0xd5b/0x1bc0   sock_write_iter+0x281/0x4d0   new_sync_write+0x3c5/0x6f0   vfs_write+0x65e/0xbb0   ksys_write+0x17e/0x200   do_syscall_64+0xbb/0xfd0   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7fa5627cbc5e  Code: 4d 89 d8 e8 14 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa  RSP: 002b:00007fff1fe14700 EFLAGS: 00000202 ORIG_RAX: 0000000000000001  RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00007fa5627cbc5e  RDX: 0000000000001f9c RSI: 00007fff1fe16984 RDI: 0000000000000005  RBP: 00007fff1fe14710 R08: 0000000000000000 R09: 0000000000000000  R10: 0000000000000000 R11: 0000000000000202 R12: 00007fff1fe16920  R13: 0000000000002000 R14: 0000000000001f9c R15: 0000000000001f9c  The packet scheduler could attempt a reinjection after receiving an MP_FAIL and before the infinite map has been transmitted, causing a deadlock since MPTCP needs to do the reinjection atomically from WRT fallback.  Address the issue explicitly avoiding the reinjection in the critical scenario. Note that this is the only fallback critical section that could potentially send packets and hit the double-lock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-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-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-71151",
                        "url": "https://ubuntu.com/security/CVE-2025-71151",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cifs: Fix memory and information leak in smb3_reconfigure()  In smb3_reconfigure(), if smb3_sync_session_ctx_passwords() fails, the function returns immediately without freeing and erasing the newly allocated new_password and new_password2. This causes both a memory leak and a potential information leak.  Fix this by calling kfree_sensitive() on both password buffers before returning in this error case.",
                        "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-68773",
                        "url": "https://ubuntu.com/security/CVE-2025-68773",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: fsl-cpm: Check length parity before switching to 16 bit mode  Commit fc96ec826bce (\"spi: fsl-cpm: Use 16 bit mode for large transfers with even size\") failed to make sure that the size is really even before switching to 16 bit mode. Until recently the problem went unnoticed because kernfs uses a pre-allocated bounce buffer of size PAGE_SIZE for reading EEPROM.  But commit 8ad6249c51d0 (\"eeprom: at25: convert to spi-mem API\") introduced an additional dynamically allocated bounce buffer whose size is exactly the size of the transfer, leading to a buffer overrun in the fsl-cpm driver when that size is odd.  Add the missing length parity verification and remain in 8 bit mode when the length is not even.",
                        "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-68806",
                        "url": "https://ubuntu.com/security/CVE-2025-68806",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix buffer validation by including null terminator size in EA length  The smb2_set_ea function, which handles Extended Attributes (EA), was performing buffer validation checks that incorrectly omitted the size of the null terminating character (+1 byte) for EA Name. This patch fixes the issue by explicitly adding '+ 1' to EaNameLength where the null terminator is expected to be present in the buffer, ensuring the validation accurately reflects the total required buffer size.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71150",
                        "url": "https://ubuntu.com/security/CVE-2025-71150",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix refcount leak when invalid session is found on session lookup  When a session is found but its state is not SMB2_SESSION_VALID, It indicates that no valid session was found, but it is missing to decrement the reference count acquired by the session lookup, which results in a reference count leak. This patch fixes the issue by explicitly calling ksmbd_user_session_put to release the reference to the session.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68786",
                        "url": "https://ubuntu.com/security/CVE-2025-68786",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: skip lock-range check on equal size to avoid size==0 underflow  When size equals the current i_size (including 0), the code used to call check_lock_range(filp, i_size, size - 1, WRITE), which computes `size - 1` and can underflow for size==0. Skip the equal case.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68789",
                        "url": "https://ubuntu.com/security/CVE-2025-68789",
                        "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                        "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-68775",
                        "url": "https://ubuntu.com/security/CVE-2025-68775",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: duplicate handshake cancellations leak socket  When a handshake request is cancelled it is removed from the handshake_net->hn_requests list, but it is still present in the handshake_rhashtbl until it is destroyed.  If a second cancellation request arrives for the same handshake request, then remove_pending() will return false... and assuming HANDSHAKE_F_REQ_COMPLETED isn't set in req->hr_flags, we'll continue processing through the out_true label, where we put another reference on the sock and a refcount underflow occurs.  This can happen for example if a handshake times out - particularly if the SUNRPC client sends the AUTH_TLS probe to the server but doesn't follow it up with the ClientHello due to a problem with tlshd.  When the timeout is hit on the server, the server will send a FIN, which triggers a cancellation request via xs_reset_transport().  When the timeout is hit on the client, another cancellation request happens via xs_tls_handshake_sync().  Add a test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED) in the pending cancel path so duplicate cancels can be detected.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15: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-71122",
                        "url": "https://ubuntu.com/security/CVE-2025-71122",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommufd/selftest: Check for overflow in IOMMU_TEST_OP_ADD_RESERVED  syzkaller found it could overflow math in the test infrastructure and cause a WARN_ON by corrupting the reserved interval tree. This only effects test kernels with CONFIG_IOMMUFD_TEST.  Validate the user input length in the test ioctl.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-68809",
                        "url": "https://ubuntu.com/security/CVE-2025-68809",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: vfs: fix race on m_flags in vfs_cache  ksmbd maintains delete-on-close and pending-delete state in ksmbd_inode->m_flags. In vfs_cache.c this field is accessed under inconsistent locking: some paths read and modify m_flags under ci->m_lock while others do so without taking the lock at all.  Examples:   - ksmbd_query_inode_status() and __ksmbd_inode_close() use    ci->m_lock when checking or updating m_flags.  - ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete() and ksmbd_fd_set_delete_on_close()    used to read and modify m_flags without ci->m_lock.  This creates a potential data race on m_flags when multiple threads open, close and delete the same file concurrently. In the worst case delete-on-close and pending-delete bits can be lost or observed in an inconsistent state, leading to confusing delete semantics (files that stay on disk after delete-on-close, or files that disappear while still in use).  Fix it by:   - Making ksmbd_query_inode_status() look at m_flags under ci->m_lock    after dropping inode_hash_lock.  - Adding ci->m_lock protection to all helpers that read or modify    m_flags (ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete(), ksmbd_fd_set_delete_on_close()).  - Keeping the existing ci->m_lock protection in __ksmbd_inode_close(),    and moving the actual unlink/xattr removal outside the lock.  This unifies the locking around m_flags and removes the data race while preserving the existing delete-on-close behaviour.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68817",
                        "url": "https://ubuntu.com/security/CVE-2025-68817",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency  Under high concurrency, A tree-connection object (tcon) is freed on a disconnect path while another path still holds a reference and later executes *_put()/write on it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16: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-71067",
                        "url": "https://ubuntu.com/security/CVE-2025-71067",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs: set dummy blocksize to read boot_block when mounting  When mounting, sb->s_blocksize is used to read the boot_block without being defined or validated. Set a dummy blocksize before attempting to read the boot_block.  The issue can be triggered with the following syz reproducer:    mkdirat(0xffffffffffffff9c, &(0x7f0000000080)='./file1\\x00', 0x0)   r4 = openat$nullb(0xffffffffffffff9c, &(0x7f0000000040), 0x121403, 0x0)   ioctl$FS_IOC_SETFLAGS(r4, 0x40081271, &(0x7f0000000980)=0x4000)   mount(&(0x7f0000000140)=@nullb, &(0x7f0000000040)='./cgroup\\x00',         &(0x7f0000000000)='ntfs3\\x00', 0x2208004, 0x0)   syz_clone(0x88200200, 0x0, 0x0, 0x0, 0x0, 0x0)  Here, the ioctl sets the bdev block size to 16384. During mount, get_tree_bdev_flags() calls sb_set_blocksize(sb, block_size(bdev)), but since block_size(bdev) > PAGE_SIZE, sb_set_blocksize() leaves sb->s_blocksize at zero.  Later, ntfs_init_from_boot() attempts to read the boot_block while sb->s_blocksize is still zero, which triggers the bug.  [almaz.alexandrovich@paragon-software.com: changed comment style, added return value handling]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16: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-68798",
                        "url": "https://ubuntu.com/security/CVE-2025-68798",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf/x86/amd: Check event before enable to avoid GPF  On AMD machines cpuc->events[idx] can become NULL in a subtle race condition with NMI->throttle->x86_pmu_stop().  Check event for NULL in amd_pmu_enable_all() before enable to avoid a GPF. This appears to be an AMD only issue.  Syzkaller reported a GPF in amd_pmu_enable_all.  INFO: NMI handler (perf_event_nmi_handler) took too long to run: 13.143     msecs Oops: general protection fault, probably for non-canonical address     0xdffffc0000000034: 0000  PREEMPT SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x00000000000001a0-0x00000000000001a7] CPU: 0 UID: 0 PID: 328415 Comm: repro_36674776 Not tainted 6.12.0-rc1-syzk RIP: 0010:x86_pmu_enable_event (arch/x86/events/perf_event.h:1195     arch/x86/events/core.c:1430) RSP: 0018:ffff888118009d60 EFLAGS: 00010012 RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000000034 RSI: 0000000000000000 RDI: 00000000000001a0 RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000002 R13: ffff88811802a440 R14: ffff88811802a240 R15: ffff8881132d8601 FS:  00007f097dfaa700(0000) GS:ffff888118000000(0000) GS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000200001c0 CR3: 0000000103d56000 CR4: 00000000000006f0 Call Trace:  <IRQ> amd_pmu_enable_all (arch/x86/events/amd/core.c:760 (discriminator 2)) x86_pmu_enable (arch/x86/events/core.c:1360) event_sched_out (kernel/events/core.c:1191 kernel/events/core.c:1186     kernel/events/core.c:2346) __perf_remove_from_context (kernel/events/core.c:2435) event_function (kernel/events/core.c:259) remote_function (kernel/events/core.c:92 (discriminator 1)     kernel/events/core.c:72 (discriminator 1)) __flush_smp_call_function_queue (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207 ./include/trace/events/csd.h:64     kernel/smp.c:135 kernel/smp.c:540) __sysvec_call_function_single (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207     ./arch/x86/include/asm/trace/irq_vectors.h:99 arch/x86/kernel/smp.c:272) sysvec_call_function_single (arch/x86/kernel/smp.c:266 (discriminator 47)     arch/x86/kernel/smp.c:266 (discriminator 47))  </IRQ>",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68794",
                        "url": "https://ubuntu.com/security/CVE-2025-68794",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iomap: adjust read range correctly for non-block-aligned positions  iomap_adjust_read_range() assumes that the position and length passed in are block-aligned. This is not always the case however, as shown in the syzbot generated case for erofs. This causes too many bytes to be skipped for uptodate blocks, which results in returning the incorrect position and length to read in. If all the blocks are uptodate, this underflows length and returns a position beyond the folio.  Fix the calculation to also take into account the block offset when calculating how many bytes can be skipped for uptodate blocks.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16: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-68766",
                        "url": "https://ubuntu.com/security/CVE-2025-68766",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()  If irq_domain_translate_twocell() sets \"hwirq\" to >= MCHP_EIC_NIRQ (2) then it results in an out of bounds access.  The code checks for invalid values, but doesn't set the error code.  Return -EINVAL in that case, instead of returning success.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68756",
                        "url": "https://ubuntu.com/security/CVE-2025-68756",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  block: Use RCU in blk_mq_[un]quiesce_tagset() instead of set->tag_list_lock  blk_mq_{add,del}_queue_tag_set() functions add and remove queues from tagset, the functions make sure that tagset and queues are marked as shared when two or more queues are attached to the same tagset. Initially a tagset starts as unshared and when the number of added queues reaches two, blk_mq_add_queue_tag_set() marks it as shared along with all the queues attached to it. When the number of attached queues drops to 1 blk_mq_del_queue_tag_set() need to mark both the tagset and the remaining queues as unshared.  Both functions need to freeze current queues in tagset before setting on unsetting BLK_MQ_F_TAG_QUEUE_SHARED flag. While doing so, both functions hold set->tag_list_lock mutex, which makes sense as we do not want queues to be added or deleted in the process. This used to work fine until commit 98d81f0df70c (\"nvme: use blk_mq_[un]quiesce_tagset\") made the nvme driver quiesce tagset instead of quiscing individual queues. blk_mq_quiesce_tagset() does the job and quiesce the queues in set->tag_list while holding set->tag_list_lock also.  This results in deadlock between two threads with these stacktraces:    __schedule+0x47c/0xbb0   ? timerqueue_add+0x66/0xb0   schedule+0x1c/0xa0   schedule_preempt_disabled+0xa/0x10   __mutex_lock.constprop.0+0x271/0x600   blk_mq_quiesce_tagset+0x25/0xc0   nvme_dev_disable+0x9c/0x250   nvme_timeout+0x1fc/0x520   blk_mq_handle_expired+0x5c/0x90   bt_iter+0x7e/0x90   blk_mq_queue_tag_busy_iter+0x27e/0x550   ? __blk_mq_complete_request_remote+0x10/0x10   ? __blk_mq_complete_request_remote+0x10/0x10   ? __call_rcu_common.constprop.0+0x1c0/0x210   blk_mq_timeout_work+0x12d/0x170   process_one_work+0x12e/0x2d0   worker_thread+0x288/0x3a0   ? rescuer_thread+0x480/0x480   kthread+0xb8/0xe0   ? kthread_park+0x80/0x80   ret_from_fork+0x2d/0x50   ? kthread_park+0x80/0x80   ret_from_fork_asm+0x11/0x20    __schedule+0x47c/0xbb0   ? xas_find+0x161/0x1a0   schedule+0x1c/0xa0   blk_mq_freeze_queue_wait+0x3d/0x70   ? destroy_sched_domains_rcu+0x30/0x30   blk_mq_update_tag_set_shared+0x44/0x80   blk_mq_exit_queue+0x141/0x150   del_gendisk+0x25a/0x2d0   nvme_ns_remove+0xc9/0x170   nvme_remove_namespaces+0xc7/0x100   nvme_remove+0x62/0x150   pci_device_remove+0x23/0x60   device_release_driver_internal+0x159/0x200   unbind_store+0x99/0xa0   kernfs_fop_write_iter+0x112/0x1e0   vfs_write+0x2b1/0x3d0   ksys_write+0x4e/0xb0   do_syscall_64+0x5b/0x160   entry_SYSCALL_64_after_hwframe+0x4b/0x53  The top stacktrace is showing nvme_timeout() called to handle nvme command timeout. timeout handler is trying to disable the controller and as a first step, it needs to blk_mq_quiesce_tagset() to tell blk-mq not to call queue callback handlers. The thread is stuck waiting for set->tag_list_lock as it tries to walk the queues in set->tag_list.  The lock is held by the second thread in the bottom stack which is waiting for one of queues to be frozen. The queue usage counter will drop to zero after nvme_timeout() finishes, and this will not happen because the thread will wait for this mutex forever.  Given that [un]quiescing queue is an operation that does not need to sleep, update blk_mq_[un]quiesce_tagset() to use RCU instead of taking set->tag_list_lock, update blk_mq_{add,del}_queue_tag_set() to use RCU safe list operations. Also, delete INIT_LIST_HEAD(&q->tag_set_list) in blk_mq_del_queue_tag_set() because we can not re-initialize it while the list is being traversed under RCU. The deleted queue will not be added/deleted to/from a tagset and it will be freed in blk_free_queue() after the end of RCU grace period.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68753",
                        "url": "https://ubuntu.com/security/CVE-2025-68753",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: add bounds check in put_user loop for DSP events  In the DSP event handling code, a put_user() loop copies event data. When the user buffer size is not aligned to 4 bytes, it could overwrite beyond the buffer boundary.  Fix by adding a bounds check before put_user().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68347",
                        "url": "https://ubuntu.com/security/CVE-2025-68347",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: fix buffer overflow in hwdep read for DSP events  The DSP event handling code in hwdep_read() could write more bytes to the user buffer than requested, when a user provides a buffer smaller than the event header size (8 bytes).  Fix by using min_t() to clamp the copy size, This ensures we never copy more than the user requested.",
                        "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-68763",
                        "url": "https://ubuntu.com/security/CVE-2025-68763",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: starfive - Correctly handle return of sg_nents_for_len  The return value of sg_nents_for_len was assigned to an unsigned long in starfive_hash_digest, causing negative error codes to be converted to large positive integers.  Add error checking for sg_nents_for_len and return immediately on failure to prevent potential buffer overflows.",
                        "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-68741",
                        "url": "https://ubuntu.com/security/CVE-2025-68741",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Fix improper freeing of purex item  In qla2xxx_process_purls_iocb(), an item is allocated via qla27xx_copy_multiple_pkt(), which internally calls qla24xx_alloc_purex_item().  The qla24xx_alloc_purex_item() function may return a pre-allocated item from a per-adapter pool for small allocations, instead of dynamically allocating memory with kzalloc().  An error handling path in qla2xxx_process_purls_iocb() incorrectly uses kfree() to release the item. If the item was from the pre-allocated pool, calling kfree() on it is a bug that can lead to memory corruption.  Fix this by using the correct deallocation function, qla24xx_free_purex_item(), which properly handles both dynamically allocated and pre-allocated items.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68742",
                        "url": "https://ubuntu.com/security/CVE-2025-68742",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix invalid prog->stats access when update_effective_progs fails  Syzkaller triggers an invalid memory access issue following fault injection in update_effective_progs. The issue can be described as follows:  __cgroup_bpf_detach   update_effective_progs     compute_effective_progs       bpf_prog_array_alloc <-- fault inject   purge_effective_progs     /* change to dummy_bpf_prog */     array->items[index] = &dummy_bpf_prog.prog  ---softirq start--- __do_softirq   ...     __cgroup_bpf_run_filter_skb       __bpf_prog_run_save_cb         bpf_prog_run           stats = this_cpu_ptr(prog->stats)           /* invalid memory access */           flags = u64_stats_update_begin_irqsave(&stats->syncp) ---softirq end---    static_branch_dec(&cgroup_bpf_enabled_key[atype])  The reason is that fault injection caused update_effective_progs to fail and then changed the original prog into dummy_bpf_prog.prog in purge_effective_progs. Then a softirq came, and accessing the members of dummy_bpf_prog.prog in the softirq triggers invalid mem access.  To fix it, skip updating stats when stats is NULL.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16: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-68363",
                        "url": "https://ubuntu.com/security/CVE-2025-68363",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Check skb->transport_header is set in bpf_skb_check_mtu  The bpf_skb_check_mtu helper needs to use skb->transport_header when the BPF_MTU_CHK_SEGS flag is used:  \tbpf_skb_check_mtu(skb, ifindex, &mtu_len, 0, BPF_MTU_CHK_SEGS)  The transport_header is not always set. There is a WARN_ON_ONCE report when CONFIG_DEBUG_NET is enabled + skb->gso_size is set + bpf_prog_test_run is used:  WARNING: CPU: 1 PID: 2216 at ./include/linux/skbuff.h:3071  skb_gso_validate_network_len  bpf_skb_check_mtu  bpf_prog_3920e25740a41171_tc_chk_segs_flag # A test in the next patch  bpf_test_run  bpf_prog_test_run_skb  For a normal ingress skb (not test_run), skb_reset_transport_header is performed but there is plan to avoid setting it as described in commit 2170a1f09148 (\"net: no longer reset transport_header in __netif_receive_skb_core()\").  This patch fixes the bpf helper by checking skb_transport_header_was_set(). The check is done just before skb->transport_header is used, to avoid breaking the existing bpf prog. The WARN_ON_ONCE is limited to bpf_prog_test_run, so targeting bpf-next.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68744",
                        "url": "https://ubuntu.com/security/CVE-2025-68744",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Free special fields when update [lru_,]percpu_hash maps  As [lru_,]percpu_hash maps support BPF_KPTR_{REF,PERCPU}, missing calls to 'bpf_obj_free_fields()' in 'pcpu_copy_value()' could cause the memory referenced by BPF_KPTR_{REF,PERCPU} fields to be held until the map gets freed.  Fix this by calling 'bpf_obj_free_fields()' after 'copy_map_value[,_long]()' in 'pcpu_copy_value()'.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16: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-68755",
                        "url": "https://ubuntu.com/security/CVE-2025-68755",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: most: remove broken i2c driver  The MOST I2C driver has been completely broken for five years without anyone noticing so remove the driver from staging.  Specifically, commit 723de0f9171e (\"staging: most: remove device from interface structure\") started requiring drivers to set the interface device pointer before registration, but the I2C driver was never updated which results in a NULL pointer dereference if anyone ever tries to probe it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68371",
                        "url": "https://ubuntu.com/security/CVE-2025-68371",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: smartpqi: Fix device resources accessed after device removal  Correct possible race conditions during device removal.  Previously, a scheduled work item to reset a LUN could still execute after the device was removed, leading to use-after-free and other resource access issues.  This race condition occurs because the abort handler may schedule a LUN reset concurrently with device removal via sdev_destroy(), leading to use-after-free and improper access to freed resources.    - Check in the device reset handler if the device is still present in     the controller's SCSI device list before running; if not, the reset     is skipped.    - Cancel any pending TMF work that has not started in sdev_destroy().    - Ensure device freeing in sdev_destroy() is done while holding the     LUN reset mutex to avoid races with ongoing resets.",
                        "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-68379",
                        "url": "https://ubuntu.com/security/CVE-2025-68379",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Fix null deref on srq->rq.queue after resize failure  A NULL pointer dereference can occur in rxe_srq_chk_attr() when ibv_modify_srq() is invoked twice in succession under certain error conditions. The first call may fail in rxe_queue_resize(), which leads rxe_srq_from_attr() to set srq->rq.queue = NULL. The second call then triggers a crash (null deref) when accessing srq->rq.queue->buf->index_mask.  Call Trace: <TASK> rxe_modify_srq+0x170/0x480 [rdma_rxe] ? __pfx_rxe_modify_srq+0x10/0x10 [rdma_rxe] ? uverbs_try_lock_object+0x4f/0xa0 [ib_uverbs] ? rdma_lookup_get_uobject+0x1f0/0x380 [ib_uverbs] ib_uverbs_modify_srq+0x204/0x290 [ib_uverbs] ? __pfx_ib_uverbs_modify_srq+0x10/0x10 [ib_uverbs] ? tryinc_node_nr_active+0xe6/0x150 ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x2c0/0x470 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_run_method+0x55a/0x6e0 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ib_uverbs_cmd_verbs+0x54d/0x800 [ib_uverbs] ? __pfx_ib_uverbs_cmd_verbs+0x10/0x10 [ib_uverbs] ? __pfx___raw_spin_lock_irqsave+0x10/0x10 ? __pfx_do_vfs_ioctl+0x10/0x10 ? ioctl_has_perm.constprop.0.isra.0+0x2c7/0x4c0 ? __pfx_ioctl_has_perm.constprop.0.isra.0+0x10/0x10 ib_uverbs_ioctl+0x13e/0x220 [ib_uverbs] ? __pfx_ib_uverbs_ioctl+0x10/0x10 [ib_uverbs] __x64_sys_ioctl+0x138/0x1c0 do_syscall_64+0x82/0x250 ? fdget_pos+0x58/0x4c0 ? ksys_write+0xf3/0x1c0 ? __pfx_ksys_write+0x10/0x10 ? do_syscall_64+0xc8/0x250 ? __pfx_vm_mmap_pgoff+0x10/0x10 ? fget+0x173/0x230 ? fput+0x2a/0x80 ? ksys_mmap_pgoff+0x224/0x4c0 ? do_syscall_64+0xc8/0x250 ? do_user_addr_fault+0x37b/0xfe0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 entry_SYSCALL_64_after_hwframe+0x76/0x7e",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68380",
                        "url": "https://ubuntu.com/security/CVE-2025-68380",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix peer HE MCS assignment  In ath11k_wmi_send_peer_assoc_cmd(), peer's transmit MCS is sent to firmware as receive MCS while peer's receive MCS sent as transmit MCS, which goes against firmwire's definition.  While connecting to a misbehaved AP that advertises 0xffff (meaning not supported) for 160 MHz transmit MCS map, firmware crashes due to 0xffff is assigned to he_mcs->rx_mcs_set field.  \tExt Tag: HE Capabilities \t    [...] \t    Supported HE-MCS and NSS Set \t\t[...] \t        Rx and Tx MCS Maps 160 MHz \t\t    [...] \t            Tx HE-MCS Map 160 MHz: 0xffff  Swap the assignment to fix this issue.  As the HE rate control mask is meant to limit our own transmit MCS, it needs to go via he_mcs->rx_mcs_set field. With the aforementioned swapping done, change is needed as well to apply it to the peer's receive MCS.  Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41 Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11: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-68256",
                        "url": "https://ubuntu.com/security/CVE-2025-68256",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in rtw_get_ie() parser  The Information Element (IE) parser rtw_get_ie() trusted the length byte of each IE without validating that the IE body (len bytes after the 2-byte header) fits inside the remaining frame buffer. A malformed frame can advertise an IE length larger than the available data, causing the parser to increment its pointer beyond the buffer end. This results in out-of-bounds reads or, depending on the pattern, an infinite loop.  Fix by validating that (offset + 2 + len) does not exceed the limit before accepting the IE or advancing to the next element.  This prevents OOB reads and ensures the parser terminates safely on malformed frames.",
                        "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-68265",
                        "url": "https://ubuntu.com/security/CVE-2025-68265",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: fix admin request_queue lifetime  The namespaces can access the controller's admin request_queue, and stale references on the namespaces may exist after tearing down the controller. Ensure the admin request_queue is active by moving the controller's 'put' to after all controller references have been released to ensure no one is can access the request_queue. This fixes a reported use-after-free bug:    BUG: KASAN: slab-use-after-free in blk_queue_enter+0x41c/0x4a0   Read of size 8 at addr ffff88c0a53819f8 by task nvme/3287   CPU: 67 UID: 0 PID: 3287 Comm: nvme Tainted: G            E      6.13.2-ga1582f1a031e #15   Tainted: [E]=UNSIGNED_MODULE   Hardware name: Jabil /EGS 2S MB1, BIOS 1.00 06/18/2025   Call Trace:    <TASK>    dump_stack_lvl+0x4f/0x60    print_report+0xc4/0x620    ? _raw_spin_lock_irqsave+0x70/0xb0    ? _raw_read_unlock_irqrestore+0x30/0x30    ? blk_queue_enter+0x41c/0x4a0    kasan_report+0xab/0xe0    ? blk_queue_enter+0x41c/0x4a0    blk_queue_enter+0x41c/0x4a0    ? __irq_work_queue_local+0x75/0x1d0    ? blk_queue_start_drain+0x70/0x70    ? irq_work_queue+0x18/0x20    ? vprintk_emit.part.0+0x1cc/0x350    ? wake_up_klogd_work_func+0x60/0x60    blk_mq_alloc_request+0x2b7/0x6b0    ? __blk_mq_alloc_requests+0x1060/0x1060    ? __switch_to+0x5b7/0x1060    nvme_submit_user_cmd+0xa9/0x330    nvme_user_cmd.isra.0+0x240/0x3f0    ? force_sigsegv+0xe0/0xe0    ? nvme_user_cmd64+0x400/0x400    ? vfs_fileattr_set+0x9b0/0x9b0    ? cgroup_update_frozen_flag+0x24/0x1c0    ? cgroup_leave_frozen+0x204/0x330    ? nvme_ioctl+0x7c/0x2c0    blkdev_ioctl+0x1a8/0x4d0    ? blkdev_common_ioctl+0x1930/0x1930    ? fdget+0x54/0x380    __x64_sys_ioctl+0x129/0x190    do_syscall_64+0x5b/0x160    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f765f703b0b   Code: ff ff ff 85 c0 79 9b 49 c7 c4 ff ff ff ff 5b 5d 4c 89 e0 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d dd 52 0f 00 f7 d8 64 89 01 48   RSP: 002b:00007ffe2cefe808 EFLAGS: 00000202 ORIG_RAX: 0000000000000010   RAX: ffffffffffffffda RBX: 00007ffe2cefe860 RCX: 00007f765f703b0b   RDX: 00007ffe2cefe860 RSI: 00000000c0484e41 RDI: 0000000000000003   RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000000   R10: 00007f765f611d50 R11: 0000000000000202 R12: 0000000000000003   R13: 00000000c0484e41 R14: 0000000000000001 R15: 00007ffe2cefea60    </TASK>",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15: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-68259",
                        "url": "https://ubuntu.com/security/CVE-2025-68259",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: SVM: Don't skip unrelated instruction if INT3/INTO is replaced  When re-injecting a soft interrupt from an INT3, INT0, or (select) INTn instruction, discard the exception and retry the instruction if the code stream is changed (e.g. by a different vCPU) between when the CPU executes the instruction and when KVM decodes the instruction to get the next RIP.  As effectively predicted by commit 6ef88d6e36c2 (\"KVM: SVM: Re-inject INT3/INTO instead of retrying the instruction\"), failure to verify that the correct INTn instruction was decoded can effectively clobber guest state due to decoding the wrong instruction and thus specifying the wrong next RIP.  The bug most often manifests as \"Oops: int3\" panics on static branch checks in Linux guests.  Enabling or disabling a static branch in Linux uses the kernel's \"text poke\" code patching mechanism.  To modify code while other CPUs may be executing that code, Linux (temporarily) replaces the first byte of the original instruction with an int3 (opcode 0xcc), then patches in the new code stream except for the first byte, and finally replaces the int3 with the first byte of the new code stream.  If a CPU hits the int3, i.e. executes the code while it's being modified, then the guest kernel must look up the RIP to determine how to handle the #BP, e.g. by emulating the new instruction.  If the RIP is incorrect, then this lookup fails and the guest kernel panics.  The bug reproduces almost instantly by hacking the guest kernel to repeatedly check a static branch[1] while running a drgn script[2] on the host to constantly swap out the memory containing the guest's TSS.  [1]: https://gist.github.com/osandov/44d17c51c28c0ac998ea0334edf90b5a [2]: https://gist.github.com/osandov/10e45e45afa29b11e0c7209247afc00b",
                        "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-68263",
                        "url": "https://ubuntu.com/security/CVE-2025-68263",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: ipc: fix use-after-free in ipc_msg_send_request  ipc_msg_send_request() waits for a generic netlink reply using an ipc_msg_table_entry on the stack. The generic netlink handler (handle_generic_event()/handle_response()) fills entry->response under ipc_msg_table_lock, but ipc_msg_send_request() used to validate and free entry->response without holding the same lock.  Under high concurrency this allows a race where handle_response() is copying data into entry->response while ipc_msg_send_request() has just freed it, leading to a slab-use-after-free reported by KASAN in handle_generic_event():    BUG: KASAN: slab-use-after-free in handle_generic_event+0x3c4/0x5f0 [ksmbd]   Write of size 12 at addr ffff888198ee6e20 by task pool/109349   ...   Freed by task:     kvfree     ipc_msg_send_request [ksmbd]     ksmbd_rpc_open -> ksmbd_session_rpc_open [ksmbd]  Fix by: - Taking ipc_msg_table_lock in ipc_msg_send_request() while validating   entry->response, freeing it when invalid, and removing the entry from   ipc_msg_table. - Returning the final entry->response pointer to the caller only after   the hash entry is removed under the lock. - Returning NULL in the error path, preserving the original API   semantics.  This makes all accesses to entry->response consistent with handle_response(), which already updates and fills the response buffer under ipc_msg_table_lock, and closes the race that allowed the UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15: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-2026-23111",
                        "url": "https://ubuntu.com/security/CVE-2026-23111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23209",
                        "url": "https://ubuntu.com/security/CVE-2026-23209",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23074",
                        "url": "https://ubuntu.com/security/CVE-2026-23074",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23060",
                        "url": "https://ubuntu.com/security/CVE-2026-23060",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23074",
                        "url": "https://ubuntu.com/security/CVE-2026-23074",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23060",
                        "url": "https://ubuntu.com/security/CVE-2026-23060",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23111",
                        "url": "https://ubuntu.com/security/CVE-2026-23111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2151069,
                    2151070,
                    2150047,
                    2150048,
                    2149766,
                    2149762,
                    2147981,
                    2148397,
                    2146465,
                    2147982,
                    2147447,
                    2147400,
                    2147065,
                    2144577,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2145171,
                    2144060,
                    2144006,
                    2144914,
                    2143152,
                    2143083,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144380,
                    2147889,
                    2147890,
                    2144380,
                    2143477,
                    2144887,
                    2144730,
                    2143478,
                    2142235,
                    2143033,
                    2142337,
                    2141276,
                    2139322,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2144266,
                    2144267
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-31419",
                                "url": "https://ubuntu.com/security/CVE-2026-31419",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: bonding: fix use-after-free in bond_xmit_broadcast()  bond_xmit_broadcast() reuses the original skb for the last slave (determined by bond_is_last_slave()) and clones it for others. Concurrent slave enslave/release can mutate the slave list during RCU-protected iteration, changing which slave is \"last\" mid-loop. This causes the original skb to be double-consumed (double-freed).  Replace the racy bond_is_last_slave() check with a simple index comparison (i + 1 == slaves_count) against the pre-snapshot slave count taken via READ_ONCE() before the loop.  This preserves the zero-copy optimization for the last slave while making the \"last\" determination stable against concurrent list mutations.  The UAF can trigger the following crash:  ================================================================== BUG: KASAN: slab-use-after-free in skb_clone Read of size 8 at addr ffff888100ef8d40 by task exploit/147  CPU: 1 UID: 0 PID: 147 Comm: exploit Not tainted 7.0.0-rc3+ #4 PREEMPTLAZY Call Trace:  <TASK>  dump_stack_lvl (lib/dump_stack.c:123)  print_report (mm/kasan/report.c:379 mm/kasan/report.c:482)  kasan_report (mm/kasan/report.c:597)  skb_clone (include/linux/skbuff.h:1724 include/linux/skbuff.h:1792 include/linux/skbuff.h:3396 net/core/skbuff.c:2108)  bond_xmit_broadcast (drivers/net/bonding/bond_main.c:5334)  bond_start_xmit (drivers/net/bonding/bond_main.c:5567 drivers/net/bonding/bond_main.c:5593)  dev_hard_start_xmit (include/linux/netdevice.h:5325 include/linux/netdevice.h:5334 net/core/dev.c:3871 net/core/dev.c:3887)  __dev_queue_xmit (include/linux/netdevice.h:3601 net/core/dev.c:4838)  ip6_finish_output2 (include/net/neighbour.h:540 include/net/neighbour.h:554 net/ipv6/ip6_output.c:136)  ip6_finish_output (net/ipv6/ip6_output.c:208 net/ipv6/ip6_output.c:219)  ip6_output (net/ipv6/ip6_output.c:250)  ip6_send_skb (net/ipv6/ip6_output.c:1985)  udp_v6_send_skb (net/ipv6/udp.c:1442)  udpv6_sendmsg (net/ipv6/udp.c:1733)  __sys_sendto (net/socket.c:730 net/socket.c:742 net/socket.c:2206)  __x64_sys_sendto (net/socket.c:2209)  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)  </TASK>  Allocated by task 147:  Freed by task 147:  The buggy address belongs to the object at ffff888100ef8c80  which belongs to the cache skbuff_head_cache of size 224 The buggy address is located 192 bytes inside of  freed 224-byte region [ffff888100ef8c80, ffff888100ef8d60)  Memory state around the buggy address:  ffff888100ef8c00: fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc  ffff888100ef8c80: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff888100ef8d00: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc                                                     ^  ffff888100ef8d80: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb  ffff888100ef8e00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-13 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31431",
                                "url": "https://ubuntu.com/security/CVE-2026-31431",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: algif_aead - Revert to operating out-of-place  This mostly reverts commit 72548b093ee3 except for the copying of the associated data.  There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings.  Get rid of all the complexity added for in-place operation and just copy the AD directly.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-04-22 09:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31533",
                                "url": "https://ubuntu.com/security/CVE-2026-31533",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption  The -EBUSY handling in tls_do_encryption(), introduced by commit 859054147318 (\"net: tls: handle backlogging of crypto requests\"), has a use-after-free due to double cleanup of encrypt_pending and the scatterlist entry.  When crypto_aead_encrypt() returns -EBUSY, the request is enqueued to the cryptd backlog and the async callback tls_encrypt_done() will be invoked upon completion. That callback unconditionally restores the scatterlist entry (sge->offset, sge->length) and decrements ctx->encrypt_pending. However, if tls_encrypt_async_wait() returns an error, the synchronous error path in tls_do_encryption() performs the same cleanup again, double-decrementing encrypt_pending and double-restoring the scatterlist.  The double-decrement corrupts the encrypt_pending sentinel (initialized to 1), making tls_encrypt_async_wait() permanently skip the wait for pending async callbacks. A subsequent sendmsg can then free the tls_rec via bpf_exec_tx_verdict() while a cryptd callback is still pending, resulting in a use-after-free when the callback fires on the freed record.  Fix this by skipping the synchronous cleanup when the -EBUSY async wait returns an error, since the callback has already handled encrypt_pending and sge restoration.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-23 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31504",
                                "url": "https://ubuntu.com/security/CVE-2026-31504",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix fanout UAF in packet_release() via NETDEV_UP race  `packet_release()` has a race window where `NETDEV_UP` can re-register a socket into a fanout group's `arr[]` array. The re-registration is not cleaned up by `fanout_release()`, leaving a dangling pointer in the fanout array. `packet_release()` does NOT zero `po->num` in its `bind_lock` section. After releasing `bind_lock`, `po->num` is still non-zero and `po->ifindex` still matches the bound device. A concurrent `packet_notifier(NETDEV_UP)` that already found the socket in `sklist` can re-register the hook. For fanout sockets, this re-registration calls `__fanout_link(sk, po)` which adds the socket back into `f->arr[]` and increments `f->num_members`, but does NOT increment `f->sk_ref`.  The fix sets `po->num` to zero in `packet_release` while `bind_lock` is held to prevent NETDEV_UP from linking, preventing the race window.  This bug was found following an additional audit with Claude Code based on CVE-2025-38617.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-22 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-117.117~22.04.1 -proposed tracker (LP: #2151069)",
                            "",
                            "  [ Ubuntu: 6.8.0-117.117 ]",
                            "",
                            "  * noble/linux: 6.8.0-117.117 -proposed tracker (LP: #2151070)",
                            "  * CVE-2026-31419",
                            "    - net: bonding: fix use-after-free in bond_xmit_broadcast()",
                            "  * CVE-2026-31431",
                            "    - crypto: scatterwalk - Backport memcpy_sglist()",
                            "    - crypto: algif_aead - use memcpy_sglist() instead of null skcipher",
                            "    - crypto: algif_aead - Revert to operating out-of-place",
                            "    - crypto: algif_aead - snapshot IV for async AEAD requests",
                            "    - crypto: authenc - use memcpy_sglist() instead of null skcipher",
                            "    - crypto: authencesn - Do not place hiseq at end of dst for out-of-place",
                            "      decryption",
                            "    - crypto: authencesn - Fix src offset when decrypting in-place",
                            "    - crypto: af_alg - Fix page reassignment overflow in af_alg_pull_tsgl",
                            "    - crypto: algif_aead - Fix minimum RX size check for decryption",
                            "  * CVE-2026-31533",
                            "    - net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption",
                            "  * CVE-2026-31504",
                            "    - net: fix fanout UAF in packet_release() via NETDEV_UP race",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-117.117~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2151069,
                            2151070
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Thu, 07 May 2026 23:11:56 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-116.116~22.04.1 -proposed tracker (LP: #2150047)",
                            "",
                            "  [ Ubuntu: 6.8.0-116.116 ]",
                            "",
                            "  * noble/linux: 6.8.0-116.116 -proposed tracker (LP: #2150048)",
                            "  * Linux kernel  6.17.0-22.22  breaks amdxdna (LP: #2149766)",
                            "    - Revert \"iommu: disable SVA when CONFIG_X86 is set\"",
                            "  * Revert \"netfilter: conntrack: fix erronous removal of offload bit\"",
                            "    (LP: #2149762)",
                            "    - Revert \"netfilter: conntrack: fix erronous removal of offload bit\"",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-116.116~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2150047,
                            2150048,
                            2149766,
                            2149762
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 24 Apr 2026 13:42:45 +0200"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23214",
                                "url": "https://ubuntu.com/security/CVE-2026-23214",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: reject new transactions if the fs is fully read-only  [BUG] There is a bug report where a heavily fuzzed fs is mounted with all rescue mount options, which leads to the following warnings during unmount:    BTRFS: Transaction aborted (error -22)   Modules linked in:   CPU: 0 UID: 0 PID: 9758 Comm: repro.out Not tainted   6.19.0-rc5-00002-gb71e635feefc #7 PREEMPT(full)   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014   RIP: 0010:find_free_extent_update_loop fs/btrfs/extent-tree.c:4208 [inline]   RIP: 0010:find_free_extent+0x52f0/0x5d20 fs/btrfs/extent-tree.c:4611   Call Trace:    <TASK>    btrfs_reserve_extent+0x2cd/0x790 fs/btrfs/extent-tree.c:4705    btrfs_alloc_tree_block+0x1e1/0x10e0 fs/btrfs/extent-tree.c:5157    btrfs_force_cow_block+0x578/0x2410 fs/btrfs/ctree.c:517    btrfs_cow_block+0x3c4/0xa80 fs/btrfs/ctree.c:708    btrfs_search_slot+0xcad/0x2b50 fs/btrfs/ctree.c:2130    btrfs_truncate_inode_items+0x45d/0x2350 fs/btrfs/inode-item.c:499    btrfs_evict_inode+0x923/0xe70 fs/btrfs/inode.c:5628    evict+0x5f4/0xae0 fs/inode.c:837    __dentry_kill+0x209/0x660 fs/dcache.c:670    finish_dput+0xc9/0x480 fs/dcache.c:879    shrink_dcache_for_umount+0xa0/0x170 fs/dcache.c:1661    generic_shutdown_super+0x67/0x2c0 fs/super.c:621    kill_anon_super+0x3b/0x70 fs/super.c:1289    btrfs_kill_super+0x41/0x50 fs/btrfs/super.c:2127    deactivate_locked_super+0xbc/0x130 fs/super.c:474    cleanup_mnt+0x425/0x4c0 fs/namespace.c:1318    task_work_run+0x1d4/0x260 kernel/task_work.c:233    exit_task_work include/linux/task_work.h:40 [inline]    do_exit+0x694/0x22f0 kernel/exit.c:971    do_group_exit+0x21c/0x2d0 kernel/exit.c:1112    __do_sys_exit_group kernel/exit.c:1123 [inline]    __se_sys_exit_group kernel/exit.c:1121 [inline]    __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1121    x64_sys_call+0x2210/0x2210 arch/x86/include/generated/asm/syscalls_64.h:232    do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]    do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94    entry_SYSCALL_64_after_hwframe+0x77/0x7f   RIP: 0033:0x44f639   Code: Unable to access opcode bytes at 0x44f60f.   RSP: 002b:00007ffc15c4e088 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7   RAX: ffffffffffffffda RBX: 00000000004c32f0 RCX: 000000000044f639   RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001   RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 0000000000000000   R10: 0000000000000000 R11: 0000000000000246 R12: 00000000004c32f0   R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001    </TASK>  Since rescue mount options will mark the full fs read-only, there should be no new transaction triggered.  But during unmount we will evict all inodes, which can trigger a new transaction, and triggers warnings on a heavily corrupted fs.  [CAUSE] Btrfs allows new transaction even on a read-only fs, this is to allow log replay happen even on read-only mounts, just like what ext4/xfs do.  However with rescue mount options, the fs is fully read-only and cannot be remounted read-write, thus in that case we should also reject any new transactions.  [FIX] If we find the fs has rescue mount options, we should treat the fs as error, so that no new transaction can be started.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23213",
                                "url": "https://ubuntu.com/security/CVE-2026-23213",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/pm: Disable MMIO access during SMU Mode 1 reset  During Mode 1 reset, the ASIC undergoes a reset cycle and becomes temporarily inaccessible via PCIe. Any attempt to access MMIO registers during this window (e.g., from interrupt handlers or other driver threads) can result in uncompleted PCIe transactions, leading to NMI panics or system hangs.  To prevent this, set the `no_hw_access` flag to true immediately after triggering the reset. This signals other driver components to skip register accesses while the device is offline.  A memory barrier `smp_mb()` is added to ensure the flag update is globally visible to all cores before the driver enters the sleep/wait state.  (cherry picked from commit 7edb503fe4b6d67f47d8bb0dfafb8e699bb0f8a4)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71225",
                                "url": "https://ubuntu.com/security/CVE-2025-71225",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: suspend array while updating raid_disks via sysfs  In raid1_reshape(), freeze_array() is called before modifying the r1bio memory pool (conf->r1bio_pool) and conf->raid_disks, and unfreeze_array() is called after the update is completed.  However, freeze_array() only waits until nr_sync_pending and (nr_pending - nr_queued) of all buckets reaches zero. When an I/O error occurs, nr_queued is increased and the corresponding r1bio is queued to either retry_list or bio_end_io_list. As a result, freeze_array() may unblock before these r1bios are released.  This can lead to a situation where conf->raid_disks and the mempool have already been updated while queued r1bios, allocated with the old raid_disks value, are later released. Consequently, free_r1bio() may access memory out of bounds in put_all_bios() and release r1bios of the wrong size to the new mempool, potentially causing issues with the mempool as well.  Since only normal I/O might increase nr_queued while an I/O error occurs, suspending the array avoids this issue.  Note: Updating raid_disks via ioctl SET_ARRAY_INFO already suspends the array. Therefore, we suspend the array when updating raid_disks via sysfs to avoid this issue too.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68823",
                                "url": "https://ubuntu.com/security/CVE-2025-68823",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ublk: fix deadlock when reading partition table  When one process(such as udev) opens ublk block device (e.g., to read the partition table via bdev_open()), a deadlock[1] can occur:  1. bdev_open() grabs disk->open_mutex 2. The process issues read I/O to ublk backend to read partition table 3. In __ublk_complete_rq(), blk_update_request() or blk_mq_end_request()    runs bio->bi_end_io() callbacks 4. If this triggers fput() on file descriptor of ublk block device, the    work may be deferred to current task's task work (see fput() implementation) 5. This eventually calls blkdev_release() from the same context 6. blkdev_release() tries to grab disk->open_mutex again 7. Deadlock: same task waiting for a mutex it already holds  The fix is to run blk_update_request() and blk_mq_end_request() with bottom halves disabled. This forces blkdev_release() to run in kernel work-queue context instead of current task work context, and allows ublk server to make forward progress, and avoids the deadlock.  [axboe: rewrite comment in ublk]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23191",
                                "url": "https://ubuntu.com/security/CVE-2026-23191",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: aloop: Fix racy access at PCM trigger  The PCM trigger callback of aloop driver tries to check the PCM state and stop the stream of the tied substream in the corresponding cable. Since both check and stop operations are performed outside the cable lock, this may result in UAF when a program attempts to trigger frequently while opening/closing the tied stream, as spotted by fuzzers.  For addressing the UAF, this patch changes two things: - It covers the most of code in loopback_check_format() with   cable->lock spinlock, and add the proper NULL checks.  This avoids   already some racy accesses. - In addition, now we try to check the state of the capture PCM stream   that may be stopped in this function, which was the major pain point   leading to UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23215",
                                "url": "https://ubuntu.com/security/CVE-2026-23215",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/vmware: Fix hypercall clobbers  Fedora QA reported the following panic:    BUG: unable to handle page fault for address: 0000000040003e54   #PF: supervisor write access in kernel mode   #PF: error_code(0x0002) - not-present page   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20251119-3.fc43 11/19/2025   RIP: 0010:vmware_hypercall4.constprop.0+0x52/0x90   ..   Call Trace:    vmmouse_report_events+0x13e/0x1b0    psmouse_handle_byte+0x15/0x60    ps2_interrupt+0x8a/0xd0    ...  because the QEMU VMware mouse emulation is buggy, and clears the top 32 bits of %rdi that the kernel kept a pointer in.  The QEMU vmmouse driver saves and restores the register state in a \"uint32_t data[6];\" and as a result restores the state with the high bits all cleared.  RDI originally contained the value of a valid kernel stack address (0xff5eeb3240003e54).  After the vmware hypercall it now contains 0x40003e54, and we get a page fault as a result when it is dereferenced.  The proper fix would be in QEMU, but this works around the issue in the kernel to keep old setups working, when old kernels had not happened to keep any state in %rdi over the hypercall.  In theory this same issue exists for all the hypercalls in the vmmouse driver; in practice it has only been seen with vmware_hypercall3() and vmware_hypercall4().  For now, just mark RDI/RSI as clobbered for those two calls.  This should have a minimal effect on code generation overall as it should be rare for the compiler to want to make RDI/RSI live across hypercalls.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23182",
                                "url": "https://ubuntu.com/security/CVE-2026-23182",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra: Fix a memory leak in tegra_slink_probe()  In tegra_slink_probe(), when platform_get_irq() fails, it directly returns from the function with an error code, which causes a memory leak.  Replace it with a goto label to ensure proper cleanup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23190",
                                "url": "https://ubuntu.com/security/CVE-2026-23190",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: amd: fix memory leak in acp3x pdm dma ops",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23254",
                                "url": "https://ubuntu.com/security/CVE-2026-23254",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: gro: fix outer network offset  The udp GRO complete stage assumes that all the packets inserted the RX have the `encapsulation` flag zeroed. Such assumption is not true, as a few H/W NICs can set such flag when H/W offloading the checksum for an UDP encapsulated traffic, the tun driver can inject GSO packets with UDP encapsulation and the problematic layout can also be created via a veth based setup.  Due to the above, in the problematic scenarios, udp4_gro_complete() uses the wrong network offset (inner instead of outer) to compute the outer UDP header pseudo checksum, leading to csum validation errors later on in packet processing.  Address the issue always clearing the encapsulation flag at GRO completion time. Such flag will be set again as needed for encapsulated packets by udp_gro_complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23180",
                                "url": "https://ubuntu.com/security/CVE-2026-23180",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: add bounds check for if_id in IRQ handler  The IRQ handler extracts if_id from the upper 16 bits of the hardware status register and uses it to index into ethsw->ports[] without validation. Since if_id can be any 16-bit value (0-65535) but the ports array is only allocated with sw_attr.num_ifs elements, this can lead to an out-of-bounds read potentially.  Add a bounds check before accessing the array, consistent with the existing validation in dpaa2_switch_rx().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23256",
                                "url": "https://ubuntu.com/security/CVE-2026-23256",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in VF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Compile tested only. Issue found using code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23257",
                                "url": "https://ubuntu.com/security/CVE-2026-23257",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in PF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Also, decrement i in the devlink_alloc failure path to point to the last successfully allocated index.  Compile tested only. Issue found using code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23258",
                                "url": "https://ubuntu.com/security/CVE-2026-23258",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Initialize netdev pointer before queue setup  In setup_nic_devices(), the netdev is allocated using alloc_etherdev_mq(). However, the pointer to this structure is stored in oct->props[i].netdev only after the calls to netif_set_real_num_rx_queues() and netif_set_real_num_tx_queues().  If either of these functions fails, setup_nic_devices() returns an error without freeing the allocated netdev. Since oct->props[i].netdev is still NULL at this point, the cleanup function liquidio_destroy_nic_device() will fail to find and free the netdev, resulting in a memory leak.  Fix this by initializing oct->props[i].netdev before calling the queue setup functions. This ensures that the netdev is properly accessible for cleanup in case of errors.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23206",
                                "url": "https://ubuntu.com/security/CVE-2026-23206",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: prevent ZERO_SIZE_PTR dereference when num_ifs is zero  The driver allocates arrays for ports, FDBs, and filter blocks using kcalloc() with ethsw->sw_attr.num_ifs as the element count. When the device reports zero interfaces (either due to hardware configuration or firmware issues), kcalloc(0, ...) returns ZERO_SIZE_PTR (0x10) instead of NULL.  Later in dpaa2_switch_probe(), the NAPI initialization unconditionally accesses ethsw->ports[0]->netdev, which attempts to dereference ZERO_SIZE_PTR (address 0x10), resulting in a kernel panic.  Add a check to ensure num_ifs is greater than zero after retrieving device attributes. This prevents the zero-sized allocations and subsequent invalid pointer dereference.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23204",
                                "url": "https://ubuntu.com/security/CVE-2026-23204",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: cls_u32: use skb_header_pointer_careful()  skb_header_pointer() does not fully validate negative @offset values.  Use skb_header_pointer_careful() instead.  GangMin Kim provided a report and a repro fooling u32_classify():  BUG: KASAN: slab-out-of-bounds in u32_classify+0x1180/0x11b0 net/sched/cls_u32.c:221",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23205",
                                "url": "https://ubuntu.com/security/CVE-2026-23205",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/client: fix memory leak in smb2_open_file()  Reproducer:    1. server: directories are exported read-only   2. client: mount -t cifs //${server_ip}/export /mnt   3. client: dd if=/dev/zero of=/mnt/file bs=512 count=1000 oflag=direct   4. client: umount /mnt   5. client: sleep 1   6. client: modprobe -r cifs  The error message is as follows:   =============================================================================   BUG cifs_small_rq (Not tainted): Objects remaining on __kmem_cache_shutdown()  -----------------------------------------------------------------------------    Object 0x00000000d47521be @offset=14336   ...   WARNING: mm/slub.c:1251 at __kmem_cache_shutdown+0x34e/0x440, CPU#0: modprobe/1577   ...   Call Trace:    <TASK>    kmem_cache_destroy+0x94/0x190    cifs_destroy_request_bufs+0x3e/0x50 [cifs]    cleanup_module+0x4e/0x540 [cifs]    __se_sys_delete_module+0x278/0x400    __x64_sys_delete_module+0x5f/0x70    x64_sys_call+0x2299/0x2ff0    do_syscall_64+0x89/0x350    entry_SYSCALL_64_after_hwframe+0x76/0x7e   ...   kmem_cache_destroy cifs_small_rq: Slab cache still has objects when called from cifs_destroy_request_bufs+0x3e/0x50 [cifs]   WARNING: mm/slab_common.c:532 at kmem_cache_destroy+0x16b/0x190, CPU#0: modprobe/1577",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23176",
                                "url": "https://ubuntu.com/security/CVE-2026-23176",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: toshiba_haps: Fix memory leaks in add/remove routines  toshiba_haps_add() leaks the haps object allocated by it if it returns an error after allocating that object successfully.  toshiba_haps_remove() does not free the object pointed to by toshiba_haps before clearing that pointer, so it becomes unreachable allocated memory.  Address these memory leaks by using devm_kzalloc() for allocating the memory in question.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23216",
                                "url": "https://ubuntu.com/security/CVE-2026-23216",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_conn_usage_count()  In iscsit_dec_conn_usage_count(), the function calls complete() while holding the conn->conn_usage_lock. As soon as complete() is invoked, the waiter (such as iscsit_close_connection()) may wake up and proceed to free the iscsit_conn structure.  If the waiter frees the memory before the current thread reaches spin_unlock_bh(), it results in a KASAN slab-use-after-free as the function attempts to release a lock within the already-freed connection structure.  Fix this by releasing the spinlock before calling complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23193",
                                "url": "https://ubuntu.com/security/CVE-2026-23193",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_session_usage_count()  In iscsit_dec_session_usage_count(), the function calls complete() while holding the sess->session_usage_lock. Similar to the connection usage count logic, the waiter signaled by complete() (e.g., in the session release path) may wake up and free the iscsit_session structure immediately.  This creates a race condition where the current thread may attempt to execute spin_unlock_bh() on a session structure that has already been deallocated, resulting in a KASAN slab-use-after-free.  To resolve this, release the session_usage_lock before calling complete() to ensure all dereferences of the sess pointer are finished before the waiter is allowed to proceed with deallocation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23260",
                                "url": "https://ubuntu.com/security/CVE-2026-23260",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: maple: free entry on mas_store_gfp() failure  regcache_maple_write() allocates a new block ('entry') to merge adjacent ranges and then stores it with mas_store_gfp(). When mas_store_gfp() fails, the new 'entry' remains allocated and is never freed, leaking memory.  Free 'entry' on the failure path; on success continue freeing the replaced neighbor blocks ('lower', 'upper').",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23179",
                                "url": "https://ubuntu.com/security/CVE-2026-23179",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: fixup hang in nvmet_tcp_listen_data_ready()  When the socket is closed while in TCP_LISTEN a callback is run to flush all outstanding packets, which in turns calls nvmet_tcp_listen_data_ready() with the sk_callback_lock held. So we need to check if we are in TCP_LISTEN before attempting to get the sk_callback_lock() to avoid a deadlock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23261",
                                "url": "https://ubuntu.com/security/CVE-2026-23261",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: release admin tagset if init fails  nvme_fabrics creates an NVMe/FC controller in following path:      nvmf_dev_write()       -> nvmf_create_ctrl()         -> nvme_fc_create_ctrl()           -> nvme_fc_init_ctrl()  nvme_fc_init_ctrl() allocates the admin blk-mq resources right after nvme_add_ctrl() succeeds.  If any of the subsequent steps fail (changing the controller state, scheduling connect work, etc.), we jump to the fail_ctrl path, which tears down the controller references but never frees the admin queue/tag set.  The leaked blk-mq allocations match the kmemleak report seen during blktests nvme/fc.  Check ctrl->ctrl.admin_tagset in the fail_ctrl path and call nvme_remove_admin_tag_set() when it is set so that all admin queue allocations are reclaimed whenever controller setup aborts.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23178",
                                "url": "https://ubuntu.com/security/CVE-2026-23178",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()  `i2c_hid_xfer` is used to read `recv_len + sizeof(__le16)` bytes of data into `ihid->rawbuf`.  The former can come from the userspace in the hidraw driver and is only bounded by HID_MAX_BUFFER_SIZE(16384) by default (unless we also set `max_buffer_size` field of `struct hid_ll_driver` which we do not).  The latter has size determined at runtime by the maximum size of different report types you could receive on any particular device and can be a much smaller value.  Fix this by truncating `recv_len` to `ihid->bufsize - sizeof(__le16)`.  The impact is low since access to hidraw devices requires root.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71268",
                                "url": "https://ubuntu.com/security/CVE-2025-71268",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix reservation leak in some error paths when inserting inline extent  If we fail to allocate a path or join a transaction, we return from __cow_file_range_inline() without freeing the reserved qgroup data, resulting in a leak. Fix this by ensuring we call btrfs_qgroup_free_data() in such cases.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71270",
                                "url": "https://ubuntu.com/security/CVE-2025-71270",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: Enable exception fixup for specific ADE subcode  This patch allows the LoongArch BPF JIT to handle recoverable memory access errors generated by BPF_PROBE_MEM* instructions.  When a BPF program performs memory access operations, the instructions it executes may trigger ADEM exceptions. The kernel’s built-in BPF exception table mechanism (EX_TYPE_BPF) will generate corresponding exception fixup entries in the JIT compilation phase; however, the architecture-specific trap handling function needs to proactively call the common fixup routine to achieve exception recovery.  do_ade(): fix EX_TYPE_BPF memory access exceptions for BPF programs, ensure safe execution.  Relevant test cases: illegal address access tests in module_attach and subprogs_extable of selftests/bpf.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71220",
                                "url": "https://ubuntu.com/security/CVE-2025-71220",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/server: call ksmbd_session_rpc_close() on error path in create_smb2_pipe()  When ksmbd_iov_pin_rsp() fails, we should call ksmbd_session_rpc_close().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71222",
                                "url": "https://ubuntu.com/security/CVE-2025-71222",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: wlcore: ensure skb headroom before skb_push  This avoids occasional skb_under_panic Oops from wl1271_tx_work. In this case, headroom is less than needed (typically 110 - 94 = 16 bytes).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71224",
                                "url": "https://ubuntu.com/security/CVE-2025-71224",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: ocb: skip rx_no_sta when interface is not joined  ieee80211_ocb_rx_no_sta() assumes a valid channel context, which is only present after JOIN_OCB.  RX may run before JOIN_OCB is executed, in which case the OCB interface is not operational. Skip RX peer handling when the interface is not joined to avoid warnings in the RX path.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23262",
                                "url": "https://ubuntu.com/security/CVE-2026-23262",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gve: Fix stats report corruption on queue count change  The driver and the NIC share a region in memory for stats reporting. The NIC calculates its offset into this region based on the total size of the stats region and the size of the NIC's stats.  When the number of queues is changed, the driver's stats region is resized. If the queue count is increased, the NIC can write past the end of the allocated stats region, causing memory corruption. If the queue count is decreased, there is a gap between the driver and NIC stats, leading to incorrect stats reporting.  This change fixes the issue by allocating stats region with maximum size, and the offset calculation for NIC stats is changed to match with the calculation of the NIC.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38201",
                                "url": "https://ubuntu.com/security/CVE-2025-38201",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX  Otherwise, it is possible to hit WARN_ON_ONCE in __kvmalloc_node_noprof() when resizing hashtable because __GFP_NOWARN is unset.  Similar to:    b541ba7d1f5a (\"netfilter: conntrack: clamp maximum hashtable size to INT_MAX\")",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-07-04 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23198",
                                "url": "https://ubuntu.com/security/CVE-2026-23198",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Don't clobber irqfd routing type when deassigning irqfd  When deassigning a KVM_IRQFD, don't clobber the irqfd's copy of the IRQ's routing entry as doing so breaks kvm_arch_irq_bypass_del_producer() on x86 and arm64, which explicitly look for KVM_IRQ_ROUTING_MSI.  Instead, to handle a concurrent routing update, verify that the irqfd is still active before consuming the routing information.  As evidenced by the x86 and arm64 bugs, and another bug in kvm_arch_update_irqfd_routing() (see below), clobbering the entry type without notifying arch code is surprising and error prone.  As a bonus, checking that the irqfd is active provides a convenient location for documenting _why_ KVM must not consume the routing entry for an irqfd that is in the process of being deassigned: once the irqfd is deleted from the list (which happens *before* the eventfd is detached), it will no longer receive updates via kvm_irq_routing_update(), and so KVM could deliver an event using stale routing information (relative to KVM_SET_GSI_ROUTING returning to userspace).  As an even better bonus, explicitly checking for the irqfd being active fixes a similar bug to the one the clobbering is trying to prevent: if an irqfd is deactivated, and then its routing is changed, kvm_irq_routing_update() won't invoke kvm_arch_update_irqfd_routing() (because the irqfd isn't in the list).  And so if the irqfd is in bypass mode, IRQs will continue to be posted using the old routing information.  As for kvm_arch_irq_bypass_del_producer(), clobbering the routing type results in KVM incorrectly keeping the IRQ in bypass mode, which is especially problematic on AMD as KVM tracks IRQs that are being posted to a vCPU in a list whose lifetime is tied to the irqfd.  Without the help of KASAN to detect use-after-free, the most common sympton on AMD is a NULL pointer deref in amd_iommu_update_ga() due to the memory for irqfd structure being re-allocated and zeroed, resulting in irqfd->irq_bypass_data being NULL when read by avic_update_iommu_vcpu_affinity():    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 40cf2b9067 P4D 40cf2b9067 PUD 408362a067 PMD 0   Oops: Oops: 0000 [#1] SMP   CPU: 6 UID: 0 PID: 40383 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--5dddc257e6b2-irqfd #31 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:amd_iommu_update_ga+0x19/0xe0   Call Trace:    <TASK>    avic_update_iommu_vcpu_affinity+0x3d/0x90 [kvm_amd]    __avic_vcpu_load+0xf4/0x130 [kvm_amd]    kvm_arch_vcpu_load+0x89/0x210 [kvm]    vcpu_load+0x30/0x40 [kvm]    kvm_arch_vcpu_ioctl_run+0x45/0x620 [kvm]    kvm_vcpu_ioctl+0x571/0x6a0 [kvm]    __se_sys_ioctl+0x6d/0xb0    do_syscall_64+0x6f/0x9d0    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x46893b     </TASK>   ---[ end trace 0000000000000000 ]---  If AVIC is inhibited when the irfd is deassigned, the bug will manifest as list corruption, e.g. on the next irqfd assignment.    list_add corruption. next->prev should be prev (ffff8d474d5cd588),                        but was 0000000000000000. (next=ffff8d8658f86530).   ------------[ cut here ]------------   kernel BUG at lib/list_debug.c:31!   Oops: invalid opcode: 0000 [#1] SMP   CPU: 128 UID: 0 PID: 80818 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--f19dc4d680ba-irqfd #28 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:__list_add_valid_or_report+0x97/0xc0   Call Trace:    <TASK>    avic_pi_update_irte+0x28e/0x2b0 [kvm_amd]    kvm_pi_update_irte+0xbf/0x190 [kvm]    kvm_arch_irq_bypass_add_producer+0x72/0x90 [kvm]    irq_bypass_register_consumer+0xcd/0x170 [irqbypa ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23264",
                                "url": "https://ubuntu.com/security/CVE-2026-23264",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Revert \"drm/amd: Check if ASPM is enabled from PCIe subsystem\"  This reverts commit 7294863a6f01248d72b61d38478978d638641bee.  This commit was erroneously applied again after commit 0ab5d711ec74 (\"drm/amd: Refactor `amdgpu_aspm` to be evaluated per device\") removed it, leading to very hard to debug crashes, when used with a system with two AMD GPUs of which only one supports ASPM.  (cherry picked from commit 97a9689300eb2b393ba5efc17c8e5db835917080)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23187",
                                "url": "https://ubuntu.com/security/CVE-2026-23187",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: fix out-of-range access of bc->domains  Fix out-of-range access of bc->domains in imx8m_blk_ctrl_remove().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23148",
                                "url": "https://ubuntu.com/security/CVE-2026-23148",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference  There is a race condition in nvmet_bio_done() that can cause a NULL pointer dereference in blk_cgroup_bio_start():  1. nvmet_bio_done() is called when a bio completes 2. nvmet_req_complete() is called, which invokes req->ops->queue_response(req) 3. The queue_response callback can re-queue and re-submit the same request 4. The re-submission reuses the same inline_bio from nvmet_req 5. Meanwhile, nvmet_req_bio_put() (called after nvmet_req_complete)    invokes bio_uninit() for inline_bio, which sets bio->bi_blkg to NULL 6. The re-submitted bio enters submit_bio_noacct_nocheck() 7. blk_cgroup_bio_start() dereferences bio->bi_blkg, causing a crash:    BUG: kernel NULL pointer dereference, address: 0000000000000028   #PF: supervisor read access in kernel mode   RIP: 0010:blk_cgroup_bio_start+0x10/0xd0   Call Trace:    submit_bio_noacct_nocheck+0x44/0x250    nvmet_bdev_execute_rw+0x254/0x370 [nvmet]    process_one_work+0x193/0x3c0    worker_thread+0x281/0x3a0  Fix this by reordering nvmet_bio_done() to call nvmet_req_bio_put() BEFORE nvmet_req_complete(). This ensures the bio is cleaned up before the request can be re-submitted, preventing the race condition.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23166",
                                "url": "https://ubuntu.com/security/CVE-2026-23166",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ice: Fix NULL pointer dereference in ice_vsi_set_napi_queues  Add NULL pointer checks in ice_vsi_set_napi_queues() to prevent crashes during resume from suspend when rings[q_idx]->q_vector is NULL.  Tested adaptor: 60:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller E810-XXV for SFP [8086:159b] (rev 02)         Subsystem: Intel Corporation Ethernet Network Adapter E810-XXV-2 [8086:4003]  SR-IOV state: both disabled and enabled can reproduce this issue.  kernel version: v6.18  Reproduce steps: Boot up and execute suspend like systemctl suspend or rtcwake.  Log: <1>[  231.443607] BUG: kernel NULL pointer dereference, address: 0000000000000040 <1>[  231.444052] #PF: supervisor read access in kernel mode <1>[  231.444484] #PF: error_code(0x0000) - not-present page <6>[  231.444913] PGD 0 P4D 0 <4>[  231.445342] Oops: Oops: 0000 [#1] SMP NOPTI <4>[  231.446635] RIP: 0010:netif_queue_set_napi+0xa/0x170 <4>[  231.447067] Code: 31 f6 31 ff c3 cc cc cc cc 0f 1f 80 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 48 85 c9 74 0b <48> 83 79 30 00 0f 84 39 01 00 00 55 41 89 d1 49 89 f8 89 f2 48 89 <4>[  231.447513] RSP: 0018:ffffcc780fc078c0 EFLAGS: 00010202 <4>[  231.447961] RAX: ffff8b848ca30400 RBX: ffff8b848caf2028 RCX: 0000000000000010 <4>[  231.448443] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8b848dbd4000 <4>[  231.448896] RBP: ffffcc780fc078e8 R08: 0000000000000000 R09: 0000000000000000 <4>[  231.449345] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001 <4>[  231.449817] R13: ffff8b848dbd4000 R14: ffff8b84833390c8 R15: 0000000000000000 <4>[  231.450265] FS:  00007c7b29e9d740(0000) GS:ffff8b8c068e2000(0000) knlGS:0000000000000000 <4>[  231.450715] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 <4>[  231.451179] CR2: 0000000000000040 CR3: 000000030626f004 CR4: 0000000000f72ef0 <4>[  231.451629] PKRU: 55555554 <4>[  231.452076] Call Trace: <4>[  231.452549]  <TASK> <4>[  231.452996]  ? ice_vsi_set_napi_queues+0x4d/0x110 [ice] <4>[  231.453482]  ice_resume+0xfd/0x220 [ice] <4>[  231.453977]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.454425]  pci_pm_resume+0x8c/0x140 <4>[  231.454872]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.455347]  dpm_run_callback+0x5f/0x160 <4>[  231.455796]  ? dpm_wait_for_superior+0x107/0x170 <4>[  231.456244]  device_resume+0x177/0x270 <4>[  231.456708]  dpm_resume+0x209/0x2f0 <4>[  231.457151]  dpm_resume_end+0x15/0x30 <4>[  231.457596]  suspend_devices_and_enter+0x1da/0x2b0 <4>[  231.458054]  enter_state+0x10e/0x570  Add defensive checks for both the ring pointer and its q_vector before dereferencing, allowing the system to resume successfully even when q_vectors are unmapped.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23151",
                                "url": "https://ubuntu.com/security/CVE-2026-23151",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: MGMT: Fix memory leak in set_ssp_complete  Fix memory leak in set_ssp_complete() where mgmt_pending_cmd structures are not freed after being removed from the pending list.  Commit 302a1f674c00 (\"Bluetooth: MGMT: Fix possible UAFs\") replaced mgmt_pending_foreach() calls with individual command handling but missed adding mgmt_pending_free() calls in both error and success paths of set_ssp_complete(). Other completion functions like set_le_complete() were fixed correctly in the same commit.  This causes a memory leak of the mgmt_pending_cmd structure and its associated parameter data for each SSP command that completes.  Add the missing mgmt_pending_free(cmd) calls in both code paths to fix the memory leak. Also fix the same issue in set_advertising_complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23163",
                                "url": "https://ubuntu.com/security/CVE-2026-23163",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: fix NULL pointer dereference in amdgpu_gmc_filter_faults_remove  On APUs such as Raven and Renoir (GC 9.1.0, 9.2.2, 9.3.0), the ih1 and ih2 interrupt ring buffers are not initialized. This is by design, as these secondary IH rings are only available on discrete GPUs. See vega10_ih_sw_init() which explicitly skips ih1/ih2 initialization when AMD_IS_APU is set.  However, amdgpu_gmc_filter_faults_remove() unconditionally uses ih1 to get the timestamp of the last interrupt entry. When retry faults are enabled on APUs (noretry=0), this function is called from the SVM page fault recovery path, resulting in a NULL pointer dereference when amdgpu_ih_decode_iv_ts_helper() attempts to access ih->ring[].  The crash manifests as:    BUG: kernel NULL pointer dereference, address: 0000000000000004   RIP: 0010:amdgpu_ih_decode_iv_ts_helper+0x22/0x40 [amdgpu]   Call Trace:    amdgpu_gmc_filter_faults_remove+0x60/0x130 [amdgpu]    svm_range_restore_pages+0xae5/0x11c0 [amdgpu]    amdgpu_vm_handle_fault+0xc8/0x340 [amdgpu]    gmc_v9_0_process_interrupt+0x191/0x220 [amdgpu]    amdgpu_irq_dispatch+0xed/0x2c0 [amdgpu]    amdgpu_ih_process+0x84/0x100 [amdgpu]  This issue was exposed by commit 1446226d32a4 (\"drm/amdgpu: Remove GC HW IP 9.3.0 from noretry=1\") which changed the default for Renoir APU from noretry=1 to noretry=0, enabling retry fault handling and thus exercising the buggy code path.  Fix this by adding a check for ih1.ring_size before attempting to use it. Also restore the soft_ih support from commit dd299441654f (\"drm/amdgpu: Rework retry fault removal\").  This is needed if the hardware doesn't support secondary HW IH rings.  v2: additional updates (Alex)  (cherry picked from commit 6ce8d536c80aa1f059e82184f0d1994436b1d526)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23159",
                                "url": "https://ubuntu.com/security/CVE-2026-23159",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf: sched: Fix perf crash with new is_user_task() helper  In order to do a user space stacktrace the current task needs to be a user task that has executed in user space. It use to be possible to test if a task is a user task or not by simply checking the task_struct mm field. If it was non NULL, it was a user task and if not it was a kernel task.  But things have changed over time, and some kernel tasks now have their own mm field.  An idea was made to instead test PF_KTHREAD and two functions were used to wrap this check in case it became more complex to test if a task was a user task or not[1]. But this was rejected and the C code simply checked the PF_KTHREAD directly.  It was later found that not all kernel threads set PF_KTHREAD. The io-uring helpers instead set PF_USER_WORKER and this needed to be added as well.  But checking the flags is still not enough. There's a very small window when a task exits that it frees its mm field and it is set back to NULL. If perf were to trigger at this moment, the flags test would say its a user space task but when perf would read the mm field it would crash with at NULL pointer dereference.  Now there are flags that can be used to test if a task is exiting, but they are set in areas that perf may still want to profile the user space task (to see where it exited). The only real test is to check both the flags and the mm field.  Instead of making this modification in every location, create a new is_user_task() helper function that does all the tests needed to know if it is safe to read the user space memory or not.  [1] https://lore.kernel.org/all/20250425204120.639530125@goodmis.org/",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-58096",
                                "url": "https://ubuntu.com/security/CVE-2024-58096",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode  ath11k_hal_srng_* should be used with srng->lock to protect srng data.  For ath11k_dp_rx_mon_dest_process() and ath11k_dp_full_mon_process_rx(), they use ath11k_hal_srng_* for many times but never call srng->lock.  So when running (full) monitor mode, warning will occur: RIP: 0010:ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k] Call Trace:  ? ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k]  ath11k_dp_rx_process_mon_status+0xc45/0x1190 [ath11k]  ? idr_alloc_u32+0x97/0xd0  ath11k_dp_rx_process_mon_rings+0x32a/0x550 [ath11k]  ath11k_dp_service_srng+0x289/0x5a0 [ath11k]  ath11k_pcic_ext_grp_napi_poll+0x30/0xd0 [ath11k]  __napi_poll+0x30/0x1f0  net_rx_action+0x198/0x320  __do_softirq+0xdd/0x319  So add srng->lock for them to avoid such warnings.  Inorder to fetch the srng->lock, should change srng's definition from 'void' to 'struct hal_srng'. And initialize them elsewhere to prevent one line of code from being too long. This is consistent with other ring process functions, such as ath11k_dp_process_rx().  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40039",
                                "url": "https://ubuntu.com/security/CVE-2025-40039",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix race condition in RPC handle list access  The 'sess->rpc_handle_list' XArray manages RPC handles within a ksmbd session. Access to this list is intended to be protected by 'sess->rpc_lock' (an rw_semaphore). However, the locking implementation was flawed, leading to potential race conditions.  In ksmbd_session_rpc_open(), the code incorrectly acquired only a read lock before calling xa_store() and xa_erase(). Since these operations modify the XArray structure, a write lock is required to ensure exclusive access and prevent data corruption from concurrent modifications.  Furthermore, ksmbd_session_rpc_method() accessed the list using xa_load() without holding any lock at all. This could lead to reading inconsistent data or a potential use-after-free if an entry is concurrently removed and the pointer is dereferenced.  Fix these issues by: 1. Using down_write() and up_write() in ksmbd_session_rpc_open()    to ensure exclusive access during XArray modification, and ensuring    the lock is correctly released on error paths. 2. Adding down_read() and up_read() in ksmbd_session_rpc_method()    to safely protect the lookup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-28 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23093",
                                "url": "https://ubuntu.com/security/CVE-2026-23093",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: smbd: fix dma_unmap_sg() nents  The dma_unmap_sg() functions should be called with the same nents as the dma_map_sg(), not the value the map function returned.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23102",
                                "url": "https://ubuntu.com/security/CVE-2026-23102",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Fix restoration of SVE context  When SME is supported, Restoring SVE signal context can go wrong in a few ways, including placing the task into an invalid state where the kernel may read from out-of-bounds memory (and may potentially take a fatal fault) and/or may kill the task with a SIGKILL.  (1) Restoring a context with SVE_SIG_FLAG_SM set can place the task into     an invalid state where SVCR.SM is set (and sve_state is non-NULL)     but TIF_SME is clear, consequently resuting in out-of-bounds memory     reads and/or killing the task with SIGKILL.      This can only occur in unusual (but legitimate) cases where the SVE     signal context has either been modified by userspace or was saved in     the context of another task (e.g. as with CRIU), as otherwise the     presence of an SVE signal context with SVE_SIG_FLAG_SM implies that     TIF_SME is already set.      While in this state, task_fpsimd_load() will NOT configure SMCR_ELx     (leaving some arbitrary value configured in hardware) before     restoring SVCR and attempting to restore the streaming mode SVE     registers from memory via sve_load_state(). As the value of     SMCR_ELx.LEN may be larger than the task's streaming SVE vector     length, this may read memory outside of the task's allocated     sve_state, reading unrelated data and/or triggering a fault.      While this can result in secrets being loaded into streaming SVE     registers, these values are never exposed. As TIF_SME is clear,     fpsimd_bind_task_to_cpu() will configure CPACR_ELx.SMEN to trap EL0     accesses to streaming mode SVE registers, so these cannot be     accessed directly at EL0. As fpsimd_save_user_state() verifies the     live vector length before saving (S)SVE state to memory, no secret     values can be saved back to memory (and hence cannot be observed via     ptrace, signals, etc).      When the live vector length doesn't match the expected vector length     for the task, fpsimd_save_user_state() will send a fatal SIGKILL     signal to the task. Hence the task may be killed after executing     userspace for some period of time.  (2) Restoring a context with SVE_SIG_FLAG_SM clear does not clear the     task's SVCR.SM. If SVCR.SM was set prior to restoring the context,     then the task will be left in streaming mode unexpectedly, and some     register state will be combined inconsistently, though the task will     be left in legitimate state from the kernel's PoV.      This can only occur in unusual (but legitimate) cases where ptrace     has been used to set SVCR.SM after entry to the sigreturn syscall,     as syscall entry clears SVCR.SM.      In these cases, the the provided SVE register data will be loaded     into the task's sve_state using the non-streaming SVE vector length     and the FPSIMD registers will be merged into this using the     streaming SVE vector length.  Fix (1) by setting TIF_SME when setting SVCR.SM. This also requires ensuring that the task's sme_state has been allocated, but as this could contain live ZA state, it should not be zeroed. Fix (2) by clearing SVCR.SM when restoring a SVE signal context with SVE_SIG_FLAG_SM clear.  For consistency, I've pulled the manipulation of SVCR, TIF_SVE, TIF_SME, and fp_type earlier, immediately after the allocation of sve_state/sme_state, before the restore of the actual register state. This makes it easier to ensure that these are always modified consistently, even if a fault is taken while reading the register data from the signal context. I do not expect any software to depend on the exact state restored when a fault is taken while reading the context.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23170",
                                "url": "https://ubuntu.com/security/CVE-2026-23170",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/imx/tve: fix probe device leak  Make sure to drop the reference taken to the DDC device during probe on probe failure (e.g. probe deferral) and on driver unbind.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23168",
                                "url": "https://ubuntu.com/security/CVE-2026-23168",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  flex_proportions: make fprop_new_period() hardirq safe  Bernd has reported a lockdep splat from flexible proportions code that is essentially complaining about the following race:  <timer fires> run_timer_softirq - we are in softirq context   call_timer_fn     writeout_period       fprop_new_period         write_seqcount_begin(&p->sequence);          <hardirq is raised>         ...         blk_mq_end_request() \t  blk_update_request() \t    ext4_end_bio() \t      folio_end_writeback() \t\t__wb_writeout_add() \t\t  __fprop_add_percpu_max() \t\t    if (unlikely(max_frac < FPROP_FRAC_BASE)) { \t\t      fprop_fraction_percpu() \t\t\tseq = read_seqcount_begin(&p->sequence); \t\t\t  - sees odd sequence so loops indefinitely  Note that a deadlock like this is only possible if the bdi has configured maximum fraction of writeout throughput which is very rare in general but frequent for example for FUSE bdis.  To fix this problem we have to make sure write section of the sequence counter is irqsafe.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23156",
                                "url": "https://ubuntu.com/security/CVE-2026-23156",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  efivarfs: fix error propagation in efivar_entry_get()  efivar_entry_get() always returns success even if the underlying __efivar_entry_get() fails, masking errors.  This may result in uninitialized heap memory being copied to userspace in the efivarfs_file_read() path.  Fix it by returning the error from __efivar_entry_get().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23167",
                                "url": "https://ubuntu.com/security/CVE-2026-23167",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: nci: Fix race between rfkill and nci_unregister_device().  syzbot reported the splat below [0] without a repro.  It indicates that struct nci_dev.cmd_wq had been destroyed before nci_close_device() was called via rfkill.  nci_dev.cmd_wq is only destroyed in nci_unregister_device(), which (I think) was called from virtual_ncidev_close() when syzbot close()d an fd of virtual_ncidev.  The problem is that nci_unregister_device() destroys nci_dev.cmd_wq first and then calls nfc_unregister_device(), which removes the device from rfkill by rfkill_unregister().  So, the device is still visible via rfkill even after nci_dev.cmd_wq is destroyed.  Let's unregister the device from rfkill first in nci_unregister_device().  Note that we cannot call nfc_unregister_device() before nci_close_device() because    1) nfc_unregister_device() calls device_del() which frees      all memory allocated by devm_kzalloc() and linked to      ndev->conn_info_list    2) nci_rx_work() could try to queue nci_conn_info to      ndev->conn_info_list which could be leaked  Thus, nfc_unregister_device() is split into two functions so we can remove rfkill interfaces only before nci_close_device().  [0]: DEBUG_LOCKS_WARN_ON(1) WARNING: kernel/locking/lockdep.c:238 at hlock_class kernel/locking/lockdep.c:238 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at check_wait_context kernel/locking/lockdep.c:4854 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at __lock_acquire+0x39d/0x2cf0 kernel/locking/lockdep.c:5187, CPU#0: syz.0.8675/6349 Modules linked in: CPU: 0 UID: 0 PID: 6349 Comm: syz.0.8675 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/13/2026 RIP: 0010:hlock_class kernel/locking/lockdep.c:238 [inline] RIP: 0010:check_wait_context kernel/locking/lockdep.c:4854 [inline] RIP: 0010:__lock_acquire+0x3a4/0x2cf0 kernel/locking/lockdep.c:5187 Code: 18 00 4c 8b 74 24 08 75 27 90 e8 17 f2 fc 02 85 c0 74 1c 83 3d 50 e0 4e 0e 00 75 13 48 8d 3d 43 f7 51 0e 48 c7 c6 8b 3a de 8d <67> 48 0f b9 3a 90 31 c0 0f b6 98 c4 00 00 00 41 8b 45 20 25 ff 1f RSP: 0018:ffffc9000c767680 EFLAGS: 00010046 RAX: 0000000000000001 RBX: 0000000000040000 RCX: 0000000000080000 RDX: ffffc90013080000 RSI: ffffffff8dde3a8b RDI: ffffffff8ff24ca0 RBP: 0000000000000003 R08: ffffffff8fef35a3 R09: 1ffffffff1fde6b4 R10: dffffc0000000000 R11: fffffbfff1fde6b5 R12: 00000000000012a2 R13: ffff888030338ba8 R14: ffff888030338000 R15: ffff888030338b30 FS:  00007fa5995f66c0(0000) GS:ffff8881256f8000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f7e72f842d0 CR3: 00000000485a0000 CR4: 00000000003526f0 Call Trace:  <TASK>  lock_acquire+0x106/0x330 kernel/locking/lockdep.c:5868  touch_wq_lockdep_map+0xcb/0x180 kernel/workqueue.c:3940  __flush_workqueue+0x14b/0x14f0 kernel/workqueue.c:3982  nci_close_device+0x302/0x630 net/nfc/nci/core.c:567  nci_dev_down+0x3b/0x50 net/nfc/nci/core.c:639  nfc_dev_down+0x152/0x290 net/nfc/core.c:161  nfc_rfkill_set_block+0x2d/0x100 net/nfc/core.c:179  rfkill_set_block+0x1d2/0x440 net/rfkill/core.c:346  rfkill_fop_write+0x461/0x5a0 net/rfkill/core.c:1301  vfs_write+0x29a/0xb90 fs/read_write.c:684  ksys_write+0x150/0x270 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xe2/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa59b39acb9 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fa5995f6028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fa59b615fa0 RCX: 00007fa59b39acb9 RDX: 0000000000000008 RSI: 0000200000000080 RDI: 0000000000000007 RBP: 00007fa59b408bf7 R08: ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23173",
                                "url": "https://ubuntu.com/security/CVE-2026-23173",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: TC, delete flows only for existing peers  When deleting TC steering flows, iterate only over actual devcom peers instead of assuming all possible ports exist. This avoids touching non-existent peers and ensures cleanup is limited to devices the driver is currently connected to.   BUG: kernel NULL pointer dereference, address: 0000000000000008  #PF: supervisor write access in kernel mode  #PF: error_code(0x0002) - not-present page  PGD 133c8a067 P4D 0  Oops: Oops: 0002 [#1] SMP  CPU: 19 UID: 0 PID: 2169 Comm: tc Not tainted 6.18.0+ #156 NONE  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:mlx5e_tc_del_fdb_peers_flow+0xbe/0x200 [mlx5_core]  Code: 00 00 a8 08 74 a8 49 8b 46 18 f6 c4 02 74 9f 4c 8d bf a0 12 00 00 4c 89 ff e8 0e e7 96 e1 49 8b 44 24 08 49 8b 0c 24 4c 89 ff <48> 89 41 08 48 89 08 49 89 2c 24 49 89 5c 24 08 e8 7d ce 96 e1 49  RSP: 0018:ff11000143867528 EFLAGS: 00010246  RAX: 0000000000000000 RBX: dead000000000122 RCX: 0000000000000000  RDX: ff11000143691580 RSI: ff110001026e5000 RDI: ff11000106f3d2a0  RBP: dead000000000100 R08: 00000000000003fd R09: 0000000000000002  R10: ff11000101c75690 R11: ff1100085faea178 R12: ff11000115f0ae78  R13: 0000000000000000 R14: ff11000115f0a800 R15: ff11000106f3d2a0  FS:  00007f35236bf740(0000) GS:ff110008dc809000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000008 CR3: 0000000157a01001 CR4: 0000000000373eb0  Call Trace:   <TASK>   mlx5e_tc_del_flow+0x46/0x270 [mlx5_core]   mlx5e_flow_put+0x25/0x50 [mlx5_core]   mlx5e_delete_flower+0x2a6/0x3e0 [mlx5_core]   tc_setup_cb_reoffload+0x20/0x80   fl_reoffload+0x26f/0x2f0 [cls_flower]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   tcf_block_playback_offloads+0x9e/0x1c0   tcf_block_unbind+0x7b/0xd0   tcf_block_setup+0x186/0x1d0   tcf_block_offload_cmd.isra.0+0xef/0x130   tcf_block_offload_unbind+0x43/0x70   __tcf_block_put+0x85/0x160   ingress_destroy+0x32/0x110 [sch_ingress]   __qdisc_destroy+0x44/0x100   qdisc_graft+0x22b/0x610   tc_get_qdisc+0x183/0x4d0   rtnetlink_rcv_msg+0x2d7/0x3d0   ? rtnl_calcit.isra.0+0x100/0x100   netlink_rcv_skb+0x53/0x100   netlink_unicast+0x249/0x320   ? __alloc_skb+0x102/0x1f0   netlink_sendmsg+0x1e3/0x420   __sock_sendmsg+0x38/0x60   ____sys_sendmsg+0x1ef/0x230   ? copy_msghdr_from_user+0x6c/0xa0   ___sys_sendmsg+0x7f/0xc0   ? ___sys_recvmsg+0x8a/0xc0   ? __sys_sendto+0x119/0x180   __sys_sendmsg+0x61/0xb0   do_syscall_64+0x55/0x640   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7f35238bb764  Code: 15 b9 86 0c 00 f7 d8 64 89 02 b8 ff ff ff ff eb bf 0f 1f 44 00 00 f3 0f 1e fa 80 3d e5 08 0d 00 00 74 13 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 4c c3 0f 1f 00 55 48 89 e5 48 83 ec 20 89 55  RSP: 002b:00007ffed4c35638 EFLAGS: 00000202 ORIG_RAX: 000000000000002e  RAX: ffffffffffffffda RBX: 000055a2efcc75e0 RCX: 00007f35238bb764  RDX: 0000000000000000 RSI: 00007ffed4c356a0 RDI: 0000000000000003  RBP: 00007ffed4c35710 R08: 0000000000000010 R09: 00007f3523984b20  R10: 0000000000000004 R11: 0000000000000202 R12: 00007ffed4c35790  R13: 000000006947df8f R14: 000055a2efcc75e0 R15: 00007ffed4c35780",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23150",
                                "url": "https://ubuntu.com/security/CVE-2026-23150",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: llcp: Fix memleak in nfc_llcp_send_ui_frame().  syzbot reported various memory leaks related to NFC, struct nfc_llcp_sock, sk_buff, nfc_dev, etc. [0]  The leading log hinted that nfc_llcp_send_ui_frame() failed to allocate skb due to sock_error(sk) being -ENXIO.  ENXIO is set by nfc_llcp_socket_release() when struct nfc_llcp_local is destroyed by local_cleanup().  The problem is that there is no synchronisation between nfc_llcp_send_ui_frame() and local_cleanup(), and skb could be put into local->tx_queue after it was purged in local_cleanup():    CPU1                          CPU2   ----                          ----   nfc_llcp_send_ui_frame()      local_cleanup()   |- do {                       '      |- pdu = nfc_alloc_send_skb(..., &err)      |                          .      |                          |- nfc_llcp_socket_release(local, false, ENXIO);      |                          |- skb_queue_purge(&local->tx_queue);     |      |                          '                                         |      |- skb_queue_tail(&local->tx_queue, pdu);                            |     ...                                                                   |      |- pdu = nfc_alloc_send_skb(..., &err)                               |                                       ^._________________________________.'  local_cleanup() is called for struct nfc_llcp_local only after nfc_llcp_remove_local() unlinks it from llcp_devices.  If we hold local->tx_queue.lock then, we can synchronise the thread and nfc_llcp_send_ui_frame().  Let's do that and check list_empty(&local->list) before queuing skb to local->tx_queue in nfc_llcp_send_ui_frame().  [0]: [   56.074943][ T6096] llcp: nfc_llcp_send_ui_frame: Could not allocate PDU (error=-6) [   64.318868][ T5813] kmemleak: 6 new suspected memory leaks (see /sys/kernel/debug/kmemleak) BUG: memory leak unreferenced object 0xffff8881272f6800 (size 1024):   comm \"syz.0.17\", pid 6096, jiffies 4294942766   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     27 00 03 40 00 00 00 00 00 00 00 00 00 00 00 00  '..@............   backtrace (crc da58d84d):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     __do_kmalloc_node mm/slub.c:5645 [inline]     __kmalloc_noprof+0x3e3/0x6b0 mm/slub.c:5658     kmalloc_noprof include/linux/slab.h:961 [inline]     sk_prot_alloc+0x11a/0x1b0 net/core/sock.c:2239     sk_alloc+0x36/0x360 net/core/sock.c:2295     nfc_llcp_sock_alloc+0x37/0x130 net/nfc/llcp_sock.c:979     llcp_sock_create+0x71/0xd0 net/nfc/llcp_sock.c:1044     nfc_sock_create+0xc9/0xf0 net/nfc/af_nfc.c:31     __sock_create+0x1a9/0x340 net/socket.c:1605     sock_create net/socket.c:1663 [inline]     __sys_socket_create net/socket.c:1700 [inline]     __sys_socket+0xb9/0x1a0 net/socket.c:1747     __do_sys_socket net/socket.c:1761 [inline]     __se_sys_socket net/socket.c:1759 [inline]     __x64_sys_socket+0x1b/0x30 net/socket.c:1759     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  BUG: memory leak unreferenced object 0xffff88810fbd9800 (size 240):   comm \"syz.0.17\", pid 6096, jiffies 4294942850   hex dump (first 32 bytes):     68 f0 ff 08 81 88 ff ff 68 f0 ff 08 81 88 ff ff  h.......h.......     00 00 00 00 00 00 00 00 00 68 2f 27 81 88 ff ff  .........h/'....   backtrace (crc 6cc652b1):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5336     __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/sk ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23164",
                                "url": "https://ubuntu.com/security/CVE-2026-23164",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  rocker: fix memory leak in rocker_world_port_post_fini()  In rocker_world_port_pre_init(), rocker_port->wpriv is allocated with kzalloc(wops->port_priv_size, GFP_KERNEL). However, in rocker_world_port_post_fini(), the memory is only freed when wops->port_post_fini callback is set:      if (!wops->port_post_fini)         return;     wops->port_post_fini(rocker_port);     kfree(rocker_port->wpriv);  Since rocker_ofdpa_ops does not implement port_post_fini callback (it is NULL), the wpriv memory allocated for each port is never freed when ports are removed. This leads to a memory leak of sizeof(struct ofdpa_port) bytes per port on every device removal.  Fix this by always calling kfree(rocker_port->wpriv) regardless of whether the port_post_fini callback exists.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23172",
                                "url": "https://ubuntu.com/security/CVE-2026-23172",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: wwan: t7xx: fix potential skb->frags overflow in RX path  When receiving data in the DPMAIF RX path, the t7xx_dpmaif_set_frag_to_skb() function adds page fragments to an skb without checking if the number of fragments has exceeded MAX_SKB_FRAGS. This could lead to a buffer overflow in skb_shinfo(skb)->frags[] array, corrupting adjacent memory and potentially causing kernel crashes or other undefined behavior.  This issue was identified through static code analysis by comparing with a similar vulnerability fixed in the mt76 driver commit b102f0c522cf (\"mt76: fix array overflow on receiving too many fragments for a packet\").  The vulnerability could be triggered if the modem firmware sends packets with excessive fragments. While under normal protocol conditions (MTU 3080 bytes, BAT buffer 3584 bytes), a single packet should not require additional fragments, the kernel should not blindly trust firmware behavior. Malicious, buggy, or compromised firmware could potentially craft packets with more fragments than the kernel expects.  Fix this by adding a bounds check before calling skb_add_rx_frag() to ensure nr_frags does not exceed MAX_SKB_FRAGS.  The check must be performed before unmapping to avoid a page leak and double DMA unmap during device teardown.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23212",
                                "url": "https://ubuntu.com/security/CVE-2026-23212",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: annotate data-races around slave->last_rx  slave->last_rx and slave->target_last_arp_rx[...] can be read and written locklessly. Add READ_ONCE() and WRITE_ONCE() annotations.  syzbot reported:  BUG: KCSAN: data-race in bond_rcv_validate / bond_rcv_validate  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 1:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410 ...  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 0:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410   br_netif_receive_skb net/bridge/br_input.c:30 [inline]   NF_HOOK include/linux/netfilter.h:318 [inline] ...  value changed: 0x0000000100005365 -> 0x0000000100005366",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23160",
                                "url": "https://ubuntu.com/security/CVE-2026-23160",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeon_ep: Fix memory leak in octep_device_setup()  In octep_device_setup(), if octep_ctrl_net_init() fails, the function returns directly without unmapping the mapped resources and freeing the allocated configuration memory.  Fix this by jumping to the unsupported_dev label, which performs the necessary cleanup. This aligns with the error handling logic of other paths in this function.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23146",
                                "url": "https://ubuntu.com/security/CVE-2026-23146",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work  hci_uart_set_proto() sets HCI_UART_PROTO_INIT before calling hci_uart_register_dev(), which calls proto->open() to initialize hu->priv. However, if a TTY write wakeup occurs during this window, hci_uart_tx_wakeup() may schedule write_work before hu->priv is initialized, leading to a NULL pointer dereference in hci_uart_write_work() when proto->dequeue() accesses hu->priv.  The race condition is:    CPU0                              CPU1   ----                              ----   hci_uart_set_proto()     set_bit(HCI_UART_PROTO_INIT)     hci_uart_register_dev()                                     tty write wakeup                                       hci_uart_tty_wakeup()                                         hci_uart_tx_wakeup()                                           schedule_work(&hu->write_work)       proto->open(hu)         // initializes hu->priv                                     hci_uart_write_work()                                       hci_uart_dequeue()                                         proto->dequeue(hu)                                           // accesses hu->priv (NULL!)  Fix this by moving set_bit(HCI_UART_PROTO_INIT) after proto->open() succeeds, ensuring hu->priv is initialized before any work can be scheduled.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23394",
                                "url": "https://ubuntu.com/security/CVE-2026-23394",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  af_unix: Give up GC if MSG_PEEK intervened.  Igor Ushakov reported that GC purged the receive queue of an alive socket due to a race with MSG_PEEK with a nice repro.  This is the exact same issue previously fixed by commit cbcf01128d0a (\"af_unix: fix garbage collect vs MSG_PEEK\").  After GC was replaced with the current algorithm, the cited commit removed the locking dance in unix_peek_fds() and reintroduced the same issue.  The problem is that MSG_PEEK bumps a file refcount without interacting with GC.  Consider an SCC containing sk-A and sk-B, where sk-A is close()d but can be recv()ed via sk-B.  The bad thing happens if sk-A is recv()ed with MSG_PEEK from sk-B and sk-B is close()d while GC is checking unix_vertex_dead() for sk-A and sk-B.    GC thread                    User thread   ---------                    -----------   unix_vertex_dead(sk-A)   -> true   <------.                     \\                      `------   recv(sk-B, MSG_PEEK)               invalidate !!    -> sk-A's file refcount : 1 -> 2                                 close(sk-B)                                -> sk-B's file refcount : 2 -> 1   unix_vertex_dead(sk-B)   -> true  Initially, sk-A's file refcount is 1 by the inflight fd in sk-B recvq.  GC thinks sk-A is dead because the file refcount is the same as the number of its inflight fds.  However, sk-A's file refcount is bumped silently by MSG_PEEK, which invalidates the previous evaluation.  At this moment, sk-B's file refcount is 2; one by the open fd, and one by the inflight fd in sk-A.  The subsequent close() releases one refcount by the former.  Finally, GC incorrectly concludes that both sk-A and sk-B are dead.  One option is to restore the locking dance in unix_peek_fds(), but we can resolve this more elegantly thanks to the new algorithm.  The point is that the issue does not occur without the subsequent close() and we actually do not need to synchronise MSG_PEEK with the dead SCC detection.  When the issue occurs, close() and GC touch the same file refcount. If GC sees the refcount being decremented by close(), it can just give up garbage-collecting the SCC.  Therefore, we only need to signal the race during MSG_PEEK with a proper memory barrier to make it visible to the GC.  Let's use seqcount_t to notify GC when MSG_PEEK occurs and let it defer the SCC to the next run.  This way no locking is needed on the MSG_PEEK side, and we can avoid imposing a penalty on every MSG_PEEK unnecessarily.  Note that we can retry within unix_scc_dead() if MSG_PEEK is detected, but we do not do so to avoid hung task splat from abusive MSG_PEEK calls.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-25 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38591",
                                "url": "https://ubuntu.com/security/CVE-2025-38591",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Reject narrower access to pointer ctx fields  The following BPF program, simplified from a syzkaller repro, causes a kernel warning:      r0 = *(u8 *)(r1 + 169);     exit;  With pointer field sk being at offset 168 in __sk_buff. This access is detected as a narrower read in bpf_skb_is_valid_access because it doesn't match offsetof(struct __sk_buff, sk). It is therefore allowed and later proceeds to bpf_convert_ctx_access. Note that for the \"is_narrower_load\" case in the convert_ctx_accesses(), the insn->off is aligned, so the cnt may not be 0 because it matches the offsetof(struct __sk_buff, sk) in the bpf_convert_ctx_access. However, the target_size stays 0 and the verifier errors with a kernel warning:      verifier bug: error during ctx access conversion(1)  This patch fixes that to return a proper \"invalid bpf_context access off=X size=Y\" error on the load instruction.  The same issue affects multiple other fields in context structures that allow narrow access. Some other non-affected fields (for sk_msg, sk_lookup, and sockopt) were also changed to use bpf_ctx_range_ptr for consistency.  Note this syzkaller crash was reported in the \"Closes\" link below, which used to be about a different bug, fixed in commit fce7bd8e385a (\"bpf/verifier: Handle BPF_LOAD_ACQ instructions in insn_def_regno()\"). Because syzbot somehow confused the two bugs, the new crash and repro didn't get reported to the mailing list.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-08-19 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23035",
                                "url": "https://ubuntu.com/security/CVE-2026-23035",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Pass netdev to mlx5e_destroy_netdev instead of priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails.  Pass netdev to mlx5e_destroy_netdev() to guarantee it will work on a valid netdev.  On mlx5e_remove: Check validity of priv->profile, before attempting to cleanup any resources that might be not there.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000370 PGD 0 P4D 0 Oops: Oops: 0000 [#1] SMP NOPTI CPU: 15 UID: 0 PID: 520 Comm: devlink Not tainted 6.18.0-rc5+ #115 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_dcbnl_dscp_app+0x23/0x100 RSP: 0018:ffffc9000083f8b8 EFLAGS: 00010286 RAX: ffff8881126fc380 RBX: ffff8881015ac400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8881035109c0 RBP: ffff8881035109c0 R08: ffff888101e3e838 R09: ffff888100264e10 R10: ffffc9000083f898 R11: ffffc9000083f8a0 R12: ffff888101b921a0 R13: ffff888101b921a0 R14: ffff8881015ac9a0 R15: ffff8881015ac400 FS:  00007f789a3c8740(0000) GS:ffff88856aa59000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000370 CR3: 000000010b6c0001 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_remove+0x57/0x110  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22996",
                                "url": "https://ubuntu.com/security/CVE-2026-22996",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Don't store mlx5e_priv in mlx5e_dev devlink priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails, mlx5e_priv in mlx5e_dev devlink private is used to reference the netdev and mdev associated with that struct. Instead, store netdev directly into mlx5e_dev and get mdev from the containing mlx5_adev aux device structure.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000520  #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: 3 UID: 0 PID: 521 Comm: devlink Not tainted 6.18.0-rc5+ #117 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_remove+0x68/0x130 RSP: 0018:ffffc900034838f0 EFLAGS: 00010246 RAX: ffff88810283c380 RBX: ffff888101874400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffff888102d789c0 R08: ffff8881007137f0 R09: ffff888100264e10 R10: ffffc90003483898 R11: ffffc900034838a0 R12: ffff888100d261a0 R13: ffff888100d261a0 R14: ffff8881018749a0 R15: ffff888101874400 FS:  00007f8565fea740(0000) GS:ffff88856a759000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000520 CR3: 000000010b11a004 CR4: 0000000000370ef0 Call Trace:  <TASK>  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23000",
                                "url": "https://ubuntu.com/security/CVE-2026-23000",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Fix crash on profile change rollback failure  mlx5e_netdev_change_profile can fail to attach a new profile and can fail to rollback to old profile, in such case, we could end up with a dangling netdev with a fully reset netdev_priv. A retry to change profile, e.g. another attempt to call mlx5e_netdev_change_profile via switchdev mode change, will crash trying to access the now NULL priv->mdev.  This fix allows mlx5e_netdev_change_profile() to handle previous failures and an empty priv, by not assuming priv is valid.  Pass netdev and mdev to all flows requiring mlx5e_netdev_change_profile() and avoid passing priv. In mlx5e_netdev_change_profile() check if current priv is valid, and if not, just attach the new profile without trying to access the old one.  This fixes the following oops, when enabling switchdev mode for the 2nd time after first time failure:   ## Enabling switchdev mode first time:  mlx5_core 0012:03:00.1: E-Switch: Supported tc chains and prios offload workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12                                                                         ^^^^^^^^ mlx5_core 0000:00:03.0: E-Switch: Disable: mode(LEGACY), nvfs(0), necvfs(0), active vports(0)   ## retry: Enabling switchdev mode 2nd time:  mlx5_core 0000:00:03.0: E-Switch: Supported tc chains and prios offload BUG: kernel NULL pointer dereference, address: 0000000000000038  #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: 520 Comm: devlink Not tainted 6.18.0-rc4+ #91 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_detach_netdev+0x3c/0x90 Code: 50 00 00 f0 80 4f 78 02 48 8b bf e8 07 00 00 48 85 ff 74 16 48 8b 73 78 48 d1 ee 83 e6 01 83 f6 01 40 0f b6 f6 e8 c4 42 00 00 <48> 8b 45 38 48 85 c0 74 08 48 89 df e8 cc 47 40 1e 48 8b bb f0 07 RSP: 0018:ffffc90000673890 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff8881036a89c0 RCX: 0000000000000000 RDX: ffff888113f63800 RSI: ffffffff822fe720 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000002dcd R09: 0000000000000000 R10: ffffc900006738e8 R11: 00000000ffffffff R12: 0000000000000000 R13: 0000000000000000 R14: ffff8881036a89c0 R15: 0000000000000000 FS:  00007fdfb8384740(0000) GS:ffff88856a9d6000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000038 CR3: 0000000112ae0005 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_netdev_change_profile+0x45/0xb0  mlx5e_vport_rep_load+0x27b/0x2d0  mlx5_esw_offloads_rep_load+0x72/0xf0  esw_offloads_enable+0x5d0/0x970  mlx5_eswitch_enable_locked+0x349/0x430  ? is_mp_supported+0x57/0xb0  mlx5_devlink_eswitch_mode_set+0x26b/0x430  devlink_nl_eswitch_set_doit+0x6f/0xf0  genl_family_rcv_msg_doit+0xe8/0x140  genl_rcv_msg+0x18b/0x290  ? __pfx_devlink_nl_pre_doit+0x10/0x10  ? __pfx_devlink_nl_eswitch_set_doit+0x10/0x10  ? __pfx_devlink_nl_post_doit+0x10/0x10  ? __pfx_genl_rcv_msg+0x10/0x10  netlink_rcv_skb+0x52/0x100  genl_rcv+0x28/0x40  netlink_unicast+0x282/0x3e0  ? __alloc_skb+0xd6/0x190  netlink_sendmsg+0x1f7/0x430  __sys_sendto+0x213/0x220  ? __sys_recvmsg+0x6a/0xd0  __x64_sys_sendto+0x24/0x30  do_syscall_64+0x50/0x1f0  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fdfb8495047",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23053",
                                "url": "https://ubuntu.com/security/CVE-2026-23053",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Fix a deadlock involving nfs_release_folio()  Wang Zhaolong reports a deadlock involving NFSv4.1 state recovery waiting on kthreadd, which is attempting to reclaim memory by calling nfs_release_folio(). The latter cannot make progress due to state recovery being needed.  It seems that the only safe thing to do here is to kick off a writeback of the folio, without waiting for completion, or else kicking off an asynchronous commit.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23050",
                                "url": "https://ubuntu.com/security/CVE-2026-23050",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pNFS: Fix a deadlock when returning a delegation during open()  Ben Coddington reports seeing a hang in the following stack trace:   0 [ffffd0b50e1774e0] __schedule at ffffffff9ca05415   1 [ffffd0b50e177548] schedule at ffffffff9ca05717   2 [ffffd0b50e177558] bit_wait at ffffffff9ca061e1   3 [ffffd0b50e177568] __wait_on_bit at ffffffff9ca05cfb   4 [ffffd0b50e1775c8] out_of_line_wait_on_bit at ffffffff9ca05ea5   5 [ffffd0b50e177618] pnfs_roc at ffffffffc154207b [nfsv4]   6 [ffffd0b50e1776b8] _nfs4_proc_delegreturn at ffffffffc1506586 [nfsv4]   7 [ffffd0b50e177788] nfs4_proc_delegreturn at ffffffffc1507480 [nfsv4]   8 [ffffd0b50e1777f8] nfs_do_return_delegation at ffffffffc1523e41 [nfsv4]   9 [ffffd0b50e177838] nfs_inode_set_delegation at ffffffffc1524a75 [nfsv4]  10 [ffffd0b50e177888] nfs4_process_delegation at ffffffffc14f41dd [nfsv4]  11 [ffffd0b50e1778a0] _nfs4_opendata_to_nfs4_state at ffffffffc1503edf [nfsv4]  12 [ffffd0b50e1778c0] _nfs4_open_and_get_state at ffffffffc1504e56 [nfsv4]  13 [ffffd0b50e177978] _nfs4_do_open at ffffffffc15051b8 [nfsv4]  14 [ffffd0b50e1779f8] nfs4_do_open at ffffffffc150559c [nfsv4]  15 [ffffd0b50e177a80] nfs4_atomic_open at ffffffffc15057fb [nfsv4]  16 [ffffd0b50e177ad0] nfs4_file_open at ffffffffc15219be [nfsv4]  17 [ffffd0b50e177b78] do_dentry_open at ffffffff9c09e6ea  18 [ffffd0b50e177ba8] vfs_open at ffffffff9c0a082e  19 [ffffd0b50e177bd0] dentry_open at ffffffff9c0a0935  The issue is that the delegreturn is being asked to wait for a layout return that cannot complete because a state recovery was initiated. The state recovery cannot complete until the open() finishes processing the delegations it was given.  The solution is to propagate the existing flags that indicate a non-blocking call to the function pnfs_roc(), so that it knows not to wait in this situation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23005",
                                "url": "https://ubuntu.com/security/CVE-2026-23005",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1  When loading guest XSAVE state via KVM_SET_XSAVE, and when updating XFD in response to a guest WRMSR, clear XFD-disabled features in the saved (or to be restored) XSTATE_BV to ensure KVM doesn't attempt to load state for features that are disabled via the guest's XFD.  Because the kernel executes XRSTOR with the guest's XFD, saving XSTATE_BV[i]=1 with XFD[i]=1 will cause XRSTOR to #NM and panic the kernel.  E.g. if fpu_update_guest_xfd() sets XFD without clearing XSTATE_BV:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#29: amx_test/848   Modules linked in: kvm_intel kvm irqbypass   CPU: 29 UID: 1000 PID: 848 Comm: amx_test Not tainted 6.19.0-rc2-ffa07f7fd437-x86_amx_nm_xfd_non_init-vm #171 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    switch_fpu_return+0x4a/0xb0    kvm_arch_vcpu_ioctl_run+0x1245/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  This can happen if the guest executes WRMSR(MSR_IA32_XFD) to set XFD[18] = 1, and a host IRQ triggers kernel_fpu_begin() prior to the vmexit handler's call to fpu_update_guest_xfd().  and if userspace stuffs XSTATE_BV[i]=1 via KVM_SET_XSAVE:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#14: amx_test/867   Modules linked in: kvm_intel kvm irqbypass   CPU: 14 UID: 1000 PID: 867 Comm: amx_test Not tainted 6.19.0-rc2-2dace9faccd6-x86_amx_nm_xfd_non_init-vm #168 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    fpu_swap_kvm_fpstate+0x6b/0x120    kvm_load_guest_fpu+0x30/0x80 [kvm]    kvm_arch_vcpu_ioctl_run+0x85/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  The new behavior is consistent with the AMX architecture.  Per Intel's SDM, XSAVE saves XSTATE_BV as '0' for components that are disabled via XFD (and non-compacted XSAVE saves the initial configuration of the state component):    If XSAVE, XSAVEC, XSAVEOPT, or XSAVES is saving the state component i,   the instruction does not generate #NM when XCR0[i] = IA32_XFD[i] = 1;   instead, it operates as if XINUSE[i] = 0 (and the state component was   in its initial state): it saves bit i of XSTATE_BV field of the XSAVE   header as 0; in addition, XSAVE saves the initial configuration of the   state component (the other instructions do not save state component i).  Alternatively, KVM could always do XRSTOR with XFD=0, e.g. by using a constant XFD based on the set of enabled features when XSAVEing for a struct fpu_guest.  However, having XSTATE_BV[i]=1 for XFD-disabled features can only happen in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, because fpu_swap_kvm_fpstate()'s call to save_fpregs_to_fpstate() saves the outgoing FPU state with the current XFD; and that is (on all but the first WRMSR to XFD) the guest XFD.  Therefore, XFD can only go out of sync with XSTATE_BV in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, and it we can consider it (de facto) part of KVM ABI that KVM_GET_XSAVE returns XSTATE_BV[i]=0 for XFD-disabled features.  [Move clea ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-58097",
                                "url": "https://ubuntu.com/security/CVE-2024-58097",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix RCU stall while reaping monitor destination ring  While processing the monitor destination ring, MSDUs are reaped from the link descriptor based on the corresponding buf_id.  However, sometimes the driver cannot obtain a valid buffer corresponding to the buf_id received from the hardware. This causes an infinite loop in the destination processing, resulting in a kernel crash.  kernel log: ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed  Fix this by skipping the problematic buf_id and reaping the next entry, replacing the break with the next MSDU processing.  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68365",
                                "url": "https://ubuntu.com/security/CVE-2025-68365",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/ntfs3: Initialize allocated memory before use  KMSAN reports: Multiple uninitialized values detected:  - KMSAN: uninit-value in ntfs_read_hdr (3) - KMSAN: uninit-value in bcmp (3)  Memory is allocated by __getname(), which is a wrapper for kmem_cache_alloc(). This memory is used before being properly cleared. Change kmem_cache_alloc() to kmem_cache_zalloc() to properly allocate and clear memory before use.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-37926",
                                "url": "https://ubuntu.com/security/CVE-2025-37926",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_session_rpc_open  A UAF issue can occur due to a race condition between ksmbd_session_rpc_open() and __session_rpc_close(). Add rpc_lock to the session to protect it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-05-20 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23030",
                                "url": "https://ubuntu.com/security/CVE-2026-23030",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: rockchip: inno-usb2: Fix a double free bug in rockchip_usb2phy_probe()  The for_each_available_child_of_node() calls of_node_put() to release child_np in each success loop. After breaking from the loop with the child_np has been released, the code will jump to the put_child label and will call the of_node_put() again if the devm_request_threaded_irq() fails. These cause a double free bug.  Fix by returning directly to avoid the duplicate of_node_put().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23025",
                                "url": "https://ubuntu.com/security/CVE-2026-23025",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/page_alloc: prevent pcp corruption with SMP=n  The kernel test robot has reported:   BUG: spinlock trylock failure on UP on CPU#0, kcompactd0/28   lock: 0xffff888807e35ef0, .magic: dead4ead, .owner: kcompactd0/28, .owner_cpu: 0  CPU: 0 UID: 0 PID: 28 Comm: kcompactd0 Not tainted 6.18.0-rc5-00127-ga06157804399 #1 PREEMPT 8cc09ef94dcec767faa911515ce9e609c45db470  Call Trace:   <IRQ>   __dump_stack (lib/dump_stack.c:95)   dump_stack_lvl (lib/dump_stack.c:123)   dump_stack (lib/dump_stack.c:130)   spin_dump (kernel/locking/spinlock_debug.c:71)   do_raw_spin_trylock (kernel/locking/spinlock_debug.c:?)   _raw_spin_trylock (include/linux/spinlock_api_smp.h:89 kernel/locking/spinlock.c:138)   __free_frozen_pages (mm/page_alloc.c:2973)   ___free_pages (mm/page_alloc.c:5295)   __free_pages (mm/page_alloc.c:5334)   tlb_remove_table_rcu (include/linux/mm.h:? include/linux/mm.h:3122 include/asm-generic/tlb.h:220 mm/mmu_gather.c:227 mm/mmu_gather.c:290)   ? __cfi_tlb_remove_table_rcu (mm/mmu_gather.c:289)   ? rcu_core (kernel/rcu/tree.c:?)   rcu_core (include/linux/rcupdate.h:341 kernel/rcu/tree.c:2607 kernel/rcu/tree.c:2861)   rcu_core_si (kernel/rcu/tree.c:2879)   handle_softirqs (arch/x86/include/asm/jump_label.h:36 include/trace/events/irq.h:142 kernel/softirq.c:623)   __irq_exit_rcu (arch/x86/include/asm/jump_label.h:36 kernel/softirq.c:725)   irq_exit_rcu (kernel/softirq.c:741)   sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1052)   </IRQ>   <TASK>  RIP: 0010:_raw_spin_unlock_irqrestore (arch/x86/include/asm/preempt.h:95 include/linux/spinlock_api_smp.h:152 kernel/locking/spinlock.c:194)   free_pcppages_bulk (mm/page_alloc.c:1494)   drain_pages_zone (include/linux/spinlock.h:391 mm/page_alloc.c:2632)   __drain_all_pages (mm/page_alloc.c:2731)   drain_all_pages (mm/page_alloc.c:2747)   kcompactd (mm/compaction.c:3115)   kthread (kernel/kthread.c:465)   ? __cfi_kcompactd (mm/compaction.c:3166)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork (arch/x86/kernel/process.c:164)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork_asm (arch/x86/entry/entry_64.S:255)   </TASK>  Matthew has analyzed the report and identified that in drain_page_zone() we are in a section protected by spin_lock(&pcp->lock) and then get an interrupt that attempts spin_trylock() on the same lock.  The code is designed to work this way without disabling IRQs and occasionally fail the trylock with a fallback.  However, the SMP=n spinlock implementation assumes spin_trylock() will always succeed, and thus it's normally a no-op.  Here the enabled lock debugging catches the problem, but otherwise it could cause a corruption of the pcp structure.  The problem has been introduced by commit 574907741599 (\"mm/page_alloc: leave IRQs enabled for per-cpu page allocations\").  The pcp locking scheme recognizes the need for disabling IRQs to prevent nesting spin_trylock() sections on SMP=n, but the need to prevent the nesting in spin_lock() has not been recognized.  Fix it by introducing local wrappers that change the spin_lock() to spin_lock_iqsave() with SMP=n and use them in all places that do spin_lock(&pcp->lock).  [vbabka@suse.cz: add pcp_ prefix to the spin_lock_irqsave wrappers, per Steven]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71186",
                                "url": "https://ubuntu.com/security/CVE-2025-71186",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: stm32: dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23078",
                                "url": "https://ubuntu.com/security/CVE-2026-23078",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: scarlett2: Fix buffer overflow in config retrieval  The scarlett2_usb_get_config() function has a logic error in the endianness conversion code that can cause buffer overflows when count > 1.  The code checks `if (size == 2)` where `size` is the total buffer size in bytes, then loops `count` times treating each element as u16 (2 bytes). This causes the loop to access `count * 2` bytes when the buffer only has `size` bytes allocated.  Fix by checking the element size (config_item->size) instead of the total buffer size. This ensures the endianness conversion matches the actual element type.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23142",
                                "url": "https://ubuntu.com/security/CVE-2026-23142",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs-scheme: cleanup access_pattern subdirs on scheme dir setup failure  When a DAMOS-scheme DAMON sysfs directory setup fails after setup of access_pattern/ directory, subdirectories of access_pattern/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23075",
                                "url": "https://ubuntu.com/security/CVE-2026-23075",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: esd_usb: esd_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In esd_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback esd_usb_read_bulk_callback(), the URBs are processed and resubmitted. In esd_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in esd_usb_close().  Fix the memory leak by anchoring the URB in the esd_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68725",
                                "url": "https://ubuntu.com/security/CVE-2025-68725",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Do not let BPF test infra emit invalid GSO types to stack  Yinhao et al. reported that their fuzzer tool was able to trigger a skb_warn_bad_offload() from netif_skb_features() -> gso_features_check(). When a BPF program - triggered via BPF test infra - pushes the packet to the loopback device via bpf_clone_redirect() then mentioned offload warning can be seen. GSO-related features are then rightfully disabled.  We get into this situation due to convert___skb_to_skb() setting gso_segs and gso_size but not gso_type. Technically, it makes sense that this warning triggers since the GSO properties are malformed due to the gso_type. Potentially, the gso_type could be marked non-trustworthy through setting it at least to SKB_GSO_DODGY without any other specific assumptions, but that also feels wrong given we should not go further into the GSO engine in the first place.  The checks were added in 121d57af308d (\"gso: validate gso_type in GSO handlers\") because there were malicious (syzbot) senders that combine a protocol with a non-matching gso_type. If we would want to drop such packets, gso_features_check() currently only returns feature flags via netif_skb_features(), so one location for potentially dropping such skbs could be validate_xmit_unreadable_skb(), but then otoh it would be an additional check in the fast-path for a very corner case. Given bpf_clone_redirect() is the only place where BPF test infra could emit such packets, lets reject them right there.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23097",
                                "url": "https://ubuntu.com/security/CVE-2026-23097",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  migrate: correct lock ordering for hugetlb file folios  Syzbot has found a deadlock (analyzed by Lance Yang):  1) Task (5749): Holds folio_lock, then tries to acquire i_mmap_rwsem(read lock). 2) Task (5754): Holds i_mmap_rwsem(write lock), then tries to acquire folio_lock.  migrate_pages()   -> migrate_hugetlbs()     -> unmap_and_move_huge_page()     <- Takes folio_lock!       -> remove_migration_ptes()         -> __rmap_walk_file()           -> i_mmap_lock_read()       <- Waits for i_mmap_rwsem(read lock)!  hugetlbfs_fallocate()   -> hugetlbfs_punch_hole()           <- Takes i_mmap_rwsem(write lock)!     -> hugetlbfs_zero_partial_page()      -> filemap_lock_hugetlb_folio()       -> filemap_lock_folio()         -> __filemap_get_folio        <- Waits for folio_lock!  The migration path is the one taking locks in the wrong order according to the documentation at the top of mm/rmap.c.  So expand the scope of the existing i_mmap_lock to cover the calls to remove_migration_ptes() too.  This is (mostly) how it used to be after commit c0d0381ade79.  That was removed by 336bf30eb765 for both file & anon hugetlb pages when it should only have been removed for anon hugetlb pages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23108",
                                "url": "https://ubuntu.com/security/CVE-2026-23108",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: usb_8dev: usb_8dev_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In usb_8dev_open() -> usb_8dev_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback usb_8dev_read_bulk_callback(), the URBs are processed and resubmitted. In usb_8dev_close() -> unlink_all_urbs() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the usb_8dev_read_bulk_callback() to the priv->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23080",
                                "url": "https://ubuntu.com/security/CVE-2026-23080",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: mcba_usb: mcba_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In mcba_usb_probe() -> mcba_usb_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback mcba_usb_read_bulk_callback(), the URBs are processed and resubmitted. In mcba_usb_close() -> mcba_urb_unlink() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the mcba_usb_read_bulk_callback()to the priv->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23061",
                                "url": "https://ubuntu.com/security/CVE-2026-23061",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In kvaser_usb_set_{,data_}bittiming() -> kvaser_usb_setup_rx_urbs(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback kvaser_usb_read_bulk_callback(), the URBs are processed and resubmitted. In kvaser_usb_remove_interfaces() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the kvaser_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23058",
                                "url": "https://ubuntu.com/security/CVE-2026-23058",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In ems_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback ems_usb_read_bulk_callback(), the URBs are processed and resubmitted. In ems_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in ems_usb_close().  Fix the memory leak by anchoring the URB in the ems_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23085",
                                "url": "https://ubuntu.com/security/CVE-2026-23085",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/gic-v3-its: Avoid truncating memory addresses  On 32-bit machines with CONFIG_ARM_LPAE, it is possible for lowmem allocations to be backed by addresses physical memory above the 32-bit address limit, as found while experimenting with larger VMSPLIT configurations.  This caused the qemu virt model to crash in the GICv3 driver, which allocates the 'itt' object using GFP_KERNEL. Since all memory below the 4GB physical address limit is in ZONE_DMA in this configuration, kmalloc() defaults to higher addresses for ZONE_NORMAL, and the ITS driver stores the physical address in a 32-bit 'unsigned long' variable.  Change the itt_addr variable to the correct phys_addr_t type instead, along with all other variables in this driver that hold a physical address.  The gicv5 driver correctly uses u64 variables, while all other irqchip drivers don't call virt_to_phys or similar interfaces. It's expected that other device drivers have similar issues, but fixing this one is sufficient for booting a virtio based guest.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23116",
                                "url": "https://ubuntu.com/security/CVE-2026-23116",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu  For i.MX8MQ platform, the ADB in the VPUMIX domain has no separate reset and clock enable bits, but is ungated and reset together with the VPUs. So we can't reset G1 or G2 separately, it may led to the system hang. Remove rst_mask and clk_mask of imx8mq_vpu_blk_ctl_domain_data. Let imx8mq_vpu_power_notifier() do really vpu reset.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23098",
                                "url": "https://ubuntu.com/security/CVE-2026-23098",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: fix double-free in nr_route_frame()  In nr_route_frame(), old_skb is immediately freed without checking if nr_neigh->ax25 pointer is NULL. Therefore, if nr_neigh->ax25 is NULL, the caller function will free old_skb again, causing a double-free bug.  Therefore, to prevent this, we need to modify it to check whether nr_neigh->ax25 is NULL before freeing old_skb.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23063",
                                "url": "https://ubuntu.com/security/CVE-2026-23063",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: ensure safe queue release with state management  Directly calling `put_queue` carries risks since it cannot guarantee that resources of `uacce_queue` have been fully released beforehand. So adding a `stop_queue` operation for the UACCE_CMD_PUT_Q command and leaving the `put_queue` operation to the final resource release ensures safety.  Queue states are defined as follows: - UACCE_Q_ZOMBIE: Initial state - UACCE_Q_INIT: After opening `uacce` - UACCE_Q_STARTED: After `start` is issued via `ioctl`  When executing `poweroff -f` in virt while accelerator are still working, `uacce_fops_release` and `uacce_remove` may execute concurrently. This can cause `uacce_put_queue` within `uacce_fops_release` to access a NULL `ops` pointer. Therefore, add state checks to prevent accessing freed pointers.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23056",
                                "url": "https://ubuntu.com/security/CVE-2026-23056",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: implement mremap in uacce_vm_ops to return -EPERM  The current uacce_vm_ops does not support the mremap operation of vm_operations_struct. Implement .mremap to return -EPERM to remind users.  The reason we need to explicitly disable mremap is that when the driver does not implement .mremap, it uses the default mremap method. This could lead to a risk scenario:  An application might first mmap address p1, then mremap to p2, followed by munmap(p1), and finally munmap(p2). Since the default mremap copies the original vma's vm_private_data (i.e., q) to the new vma, both munmap operations would trigger vma_close, causing q->qfr to be freed twice(qfr will be set to null here, so repeated release is ok).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23094",
                                "url": "https://ubuntu.com/security/CVE-2026-23094",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix isolate sysfs check condition  uacce supports the device isolation feature. If the driver implements the isolate_err_threshold_read and isolate_err_threshold_write callback functions, uacce will create sysfs files now. Users can read and configure the isolation policy through sysfs. Currently, sysfs files are created as long as either isolate_err_threshold_read or isolate_err_threshold_write callback functions are present.  However, accessing a non-existent callback function may cause the system to crash. Therefore, intercept the creation of sysfs if neither read nor write exists; create sysfs if either is supported, but intercept unsupported operations at the call site.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23096",
                                "url": "https://ubuntu.com/security/CVE-2026-23096",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix cdev handling in the cleanup path  When cdev_device_add fails, it internally releases the cdev memory, and if cdev_device_del is then executed, it will cause a hang error. To fix it, we check the return value of cdev_device_add() and clear uacce->cdev to avoid calling cdev_device_del in the uacce_remove.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23091",
                                "url": "https://ubuntu.com/security/CVE-2026-23091",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  intel_th: fix device leak on output open()  Make sure to drop the reference taken when looking up the th device during output device open() on errors and on close().  Note that a recent commit fixed the leak in a couple of open() error paths but not all of them, and the reference is still leaking on successful open().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23088",
                                "url": "https://ubuntu.com/security/CVE-2026-23088",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Fix crash on synthetic stacktrace field usage  When creating a synthetic event based on an existing synthetic event that had a stacktrace field and the new synthetic event used that field a kernel crash occurred:   ~# cd /sys/kernel/tracing  ~# echo 's:stack unsigned long stack[];' > dynamic_events  ~# echo 'hist:keys=prev_pid:s0=common_stacktrace if prev_state & 3' >> events/sched/sched_switch/trigger  ~# echo 'hist:keys=next_pid:s1=$s0:onmatch(sched.sched_switch).trace(stack,$s1)' >> events/sched/sched_switch/trigger  The above creates a synthetic event that takes a stacktrace when a task schedules out in a non-running state and passes that stacktrace to the sched_switch event when that task schedules back in. It triggers the \"stack\" synthetic event that has a stacktrace as its field (called \"stack\").   ~# echo 's:syscall_stack s64 id; unsigned long stack[];' >> dynamic_events  ~# echo 'hist:keys=common_pid:s2=stack' >> events/synthetic/stack/trigger  ~# echo 'hist:keys=common_pid:s3=$s2,i0=id:onmatch(synthetic.stack).trace(syscall_stack,$i0,$s3)' >> events/raw_syscalls/sys_exit/trigger  The above makes another synthetic event called \"syscall_stack\" that attaches the first synthetic event (stack) to the sys_exit trace event and records the stacktrace from the stack event with the id of the system call that is exiting.  When enabling this event (or using it in a historgram):   ~# echo 1 > events/synthetic/syscall_stack/enable  Produces a kernel crash!   BUG: unable to handle page fault for address: 0000000000400010  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP PTI  CPU: 6 UID: 0 PID: 1257 Comm: bash Not tainted 6.16.3+deb14-amd64 #1 PREEMPT(lazy)  Debian 6.16.3-1  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:trace_event_raw_event_synth+0x90/0x380  Code: c5 00 00 00 00 85 d2 0f 84 e1 00 00 00 31 db eb 34 0f 1f 00 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 <49> 8b 04 24 48 83 c3 01 8d 0c c5 08 00 00 00 01 cd 41 3b 5d 40 0f  RSP: 0018:ffffd2670388f958 EFLAGS: 00010202  RAX: ffff8ba1065cc100 RBX: 0000000000000000 RCX: 0000000000000000  RDX: 0000000000000001 RSI: fffff266ffda7b90 RDI: ffffd2670388f9b0  RBP: 0000000000000010 R08: ffff8ba104e76000 R09: ffffd2670388fa50  R10: ffff8ba102dd42e0 R11: ffffffff9a908970 R12: 0000000000400010  R13: ffff8ba10a246400 R14: ffff8ba10a710220 R15: fffff266ffda7b90  FS:  00007fa3bc63f740(0000) GS:ffff8ba2e0f48000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000400010 CR3: 0000000107f9e003 CR4: 0000000000172ef0  Call Trace:   <TASK>   ? __tracing_map_insert+0x208/0x3a0   action_trace+0x67/0x70   event_hist_trigger+0x633/0x6d0   event_triggers_call+0x82/0x130   trace_event_buffer_commit+0x19d/0x250   trace_event_raw_event_sys_exit+0x62/0xb0   syscall_exit_work+0x9d/0x140   do_syscall_64+0x20a/0x2f0   ? trace_event_raw_event_sched_switch+0x12b/0x170   ? save_fpregs_to_fpstate+0x3e/0x90   ? _raw_spin_unlock+0xe/0x30   ? finish_task_switch.isra.0+0x97/0x2c0   ? __rseq_handle_notify_resume+0xad/0x4c0   ? __schedule+0x4b8/0xd00   ? restore_fpregs_from_fpstate+0x3c/0x90   ? switch_fpu_return+0x5b/0xe0   ? do_syscall_64+0x1ef/0x2f0   ? do_fault+0x2e9/0x540   ? __handle_mm_fault+0x7d1/0xf70   ? count_memcg_events+0x167/0x1d0   ? handle_mm_fault+0x1d7/0x2e0   ? do_user_addr_fault+0x2c3/0x7f0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  The reason is that the stacktrace field is not labeled as such, and is treated as a normal field and not as a dynamic event that it is.  In trace_event_raw_event_synth() the event is field is still treated as a dynamic array, but the retrieval of the data is considered a normal field, and the reference is just the meta data:  // Meta data is retrieved instead of a dynamic array ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23090",
                                "url": "https://ubuntu.com/security/CVE-2026-23090",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  slimbus: core: fix device reference leak on report present  Slimbus devices can be allocated dynamically upon reception of report-present messages.  Make sure to drop the reference taken when looking up already registered devices.  Note that this requires taking an extra reference in case the device has not yet been registered and has to be allocated.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23128",
                                "url": "https://ubuntu.com/security/CVE-2026-23128",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64: Set __nocfi on swsusp_arch_resume()  A DABT is reported[1] on an android based system when resume from hiberate. This happens because swsusp_arch_suspend_exit() is marked with SYM_CODE_*() and does not have a CFI hash, but swsusp_arch_resume() will attempt to verify the CFI hash when calling a copy of swsusp_arch_suspend_exit().  Given that there's an existing requirement that the entrypoint to swsusp_arch_suspend_exit() is the first byte of the .hibernate_exit.text section, we cannot fix this by marking swsusp_arch_suspend_exit() with SYM_FUNC_*(). The simplest fix for now is to disable the CFI check in swsusp_arch_resume().  Mark swsusp_arch_resume() as __nocfi to disable the CFI check.  [1] [   22.991934][    T1] Unable to handle kernel paging request at virtual address 0000000109170ffc [   22.991934][    T1] Mem abort info: [   22.991934][    T1]   ESR = 0x0000000096000007 [   22.991934][    T1]   EC = 0x25: DABT (current EL), IL = 32 bits [   22.991934][    T1]   SET = 0, FnV = 0 [   22.991934][    T1]   EA = 0, S1PTW = 0 [   22.991934][    T1]   FSC = 0x07: level 3 translation fault [   22.991934][    T1] Data abort info: [   22.991934][    T1]   ISV = 0, ISS = 0x00000007, ISS2 = 0x00000000 [   22.991934][    T1]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [   22.991934][    T1]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [   22.991934][    T1] [0000000109170ffc] user address but active_mm is swapper [   22.991934][    T1] Internal error: Oops: 0000000096000007 [#1] PREEMPT SMP [   22.991934][    T1] Dumping ftrace buffer: [   22.991934][    T1]    (ftrace buffer empty) [   22.991934][    T1] Modules linked in: [   22.991934][    T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.6.98-android15-8-g0b1d2aee7fc3-dirty-4k #1 688c7060a825a3ac418fe53881730b355915a419 [   22.991934][    T1] Hardware name: Unisoc UMS9360-base Board (DT) [   22.991934][    T1] pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [   22.991934][    T1] pc : swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1] lr : swsusp_arch_resume+0x294/0x344 [   22.991934][    T1] sp : ffffffc08006b960 [   22.991934][    T1] x29: ffffffc08006b9c0 x28: 0000000000000000 x27: 0000000000000000 [   22.991934][    T1] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000820 [   22.991934][    T1] x23: ffffffd0817e3000 x22: ffffffd0817e3000 x21: 0000000000000000 [   22.991934][    T1] x20: ffffff8089171000 x19: ffffffd08252c8c8 x18: ffffffc080061058 [   22.991934][    T1] x17: 00000000529c6ef0 x16: 00000000529c6ef0 x15: 0000000000000004 [   22.991934][    T1] x14: ffffff8178c88000 x13: 0000000000000006 x12: 0000000000000000 [   22.991934][    T1] x11: 0000000000000015 x10: 0000000000000001 x9 : ffffffd082533000 [   22.991934][    T1] x8 : 0000000109171000 x7 : 205b5d3433393139 x6 : 392e32322020205b [   22.991934][    T1] x5 : 000000010916f000 x4 : 000000008164b000 x3 : ffffff808a4e0530 [   22.991934][    T1] x2 : ffffffd08058e784 x1 : 0000000082326000 x0 : 000000010a283000 [   22.991934][    T1] Call trace: [   22.991934][    T1]  swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1]  hibernation_restore+0x158/0x18c [   22.991934][    T1]  load_image_and_restore+0xb0/0xec [   22.991934][    T1]  software_resume+0xf4/0x19c [   22.991934][    T1]  software_resume_initcall+0x34/0x78 [   22.991934][    T1]  do_one_initcall+0xe8/0x370 [   22.991934][    T1]  do_initcall_level+0xc8/0x19c [   22.991934][    T1]  do_initcalls+0x70/0xc0 [   22.991934][    T1]  do_basic_setup+0x1c/0x28 [   22.991934][    T1]  kernel_init_freeable+0xe0/0x148 [   22.991934][    T1]  kernel_init+0x20/0x1a8 [   22.991934][    T1]  ret_from_fork+0x10/0x20 [   22.991934][    T1] Code: a9400a61 f94013e0 f9438923 f9400a64 (b85fc110)  [catalin.marinas@arm.com: commit log updated by Mark Rutland]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23107",
                                "url": "https://ubuntu.com/security/CVE-2026-23107",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Allocate SSVE storage when restoring ZA  The code to restore a ZA context doesn't attempt to allocate the task's sve_state before setting TIF_SME. Consequently, restoring a ZA context can place a task into an invalid state where TIF_SME is set but the task's sve_state is NULL.  In legitimate but uncommon cases where the ZA signal context was NOT created by the kernel in the context of the same task (e.g. if the task is saved/restored with something like CRIU), we have no guarantee that sve_state had been allocated previously. In these cases, userspace can enter streaming mode without trapping while sve_state is NULL, causing a later NULL pointer dereference when the kernel attempts to store the register state:  | # ./sigreturn-za | Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 | Mem abort info: |   ESR = 0x0000000096000046 |   EC = 0x25: DABT (current EL), IL = 32 bits |   SET = 0, FnV = 0 |   EA = 0, S1PTW = 0 |   FSC = 0x06: level 2 translation fault | Data abort info: |   ISV = 0, ISS = 0x00000046, ISS2 = 0x00000000 |   CM = 0, WnR = 1, TnD = 0, TagAccess = 0 |   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 | user pgtable: 4k pages, 52-bit VAs, pgdp=0000000101f47c00 | [0000000000000000] pgd=08000001021d8403, p4d=0800000102274403, pud=0800000102275403, pmd=0000000000000000 | Internal error: Oops: 0000000096000046 [#1]  SMP | Modules linked in: | CPU: 0 UID: 0 PID: 153 Comm: sigreturn-za Not tainted 6.19.0-rc1 #1 PREEMPT | Hardware name: linux,dummy-virt (DT) | pstate: 214000c9 (nzCv daIF +PAN -UAO -TCO +DIT -SSBS BTYPE=--) | pc : sve_save_state+0x4/0xf0 | lr : fpsimd_save_user_state+0xb0/0x1c0 | sp : ffff80008070bcc0 | x29: ffff80008070bcc0 x28: fff00000c1ca4c40 x27: 63cfa172fb5cf658 | x26: fff00000c1ca5228 x25: 0000000000000000 x24: 0000000000000000 | x23: 0000000000000000 x22: fff00000c1ca4c40 x21: fff00000c1ca4c40 | x20: 0000000000000020 x19: fff00000ff6900f0 x18: 0000000000000000 | x17: fff05e8e0311f000 x16: 0000000000000000 x15: 028fca8f3bdaf21c | x14: 0000000000000212 x13: fff00000c0209f10 x12: 0000000000000020 | x11: 0000000000200b20 x10: 0000000000000000 x9 : fff00000ff69dcc0 | x8 : 00000000000003f2 x7 : 0000000000000001 x6 : fff00000c1ca5b48 | x5 : fff05e8e0311f000 x4 : 0000000008000000 x3 : 0000000000000000 | x2 : 0000000000000001 x1 : fff00000c1ca5970 x0 : 0000000000000440 | Call trace: |  sve_save_state+0x4/0xf0 (P) |  fpsimd_thread_switch+0x48/0x198 |  __switch_to+0x20/0x1c0 |  __schedule+0x36c/0xce0 |  schedule+0x34/0x11c |  exit_to_user_mode_loop+0x124/0x188 |  el0_interrupt+0xc8/0xd8 |  __el0_irq_handler_common+0x18/0x24 |  el0t_64_irq_handler+0x10/0x1c |  el0t_64_irq+0x198/0x19c | Code: 54000040 d51b4408 d65f03c0 d503245f (e5bb5800) | ---[ end trace 0000000000000000 ]---  Fix this by having restore_za_context() ensure that the task's sve_state is allocated, matching what we do when taking an SME trap. Any live SVE/SSVE state (which is restored earlier from a separate signal context) must be preserved, and hence this is not zeroed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23073",
                                "url": "https://ubuntu.com/security/CVE-2026-23073",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rsi: Fix memory corruption due to not set vif driver data size  The struct ieee80211_vif contains trailing space for vif driver data, when struct ieee80211_vif is allocated, the total memory size that is allocated is sizeof(struct ieee80211_vif) + size of vif driver data. The size of vif driver data is set by each WiFi driver as needed.  The RSI911x driver does not set vif driver data size, no trailing space for vif driver data is therefore allocated past struct ieee80211_vif . The RSI911x driver does however use the vif driver data to store its vif driver data structure \"struct vif_priv\". An access to vif->drv_priv leads to access out of struct ieee80211_vif bounds and corruption of some memory.  In case of the failure observed locally, rsi_mac80211_add_interface() would write struct vif_priv *vif_info = (struct vif_priv *)vif->drv_priv; vif_info->vap_id = vap_idx. This write corrupts struct fq_tin member struct list_head new_flows . The flow = list_first_entry(head, struct fq_flow, flowchain); in fq_tin_reset() then reports non-NULL bogus address, which when accessed causes a crash.  The trigger is very simple, boot the machine with init=/bin/sh , mount devtmpfs, sysfs, procfs, and then do \"ip link set wlan0 up\", \"sleep 1\", \"ip link set wlan0 down\" and the crash occurs.  Fix this by setting the correct size of vif driver data, which is the size of \"struct vif_priv\", so that memory is allocated and the driver can store its driver data in it, instead of corrupting memory around it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23135",
                                "url": "https://ubuntu.com/security/CVE-2026-23135",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath12k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23133",
                                "url": "https://ubuntu.com/security/CVE-2026-23133",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath10k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71200",
                                "url": "https://ubuntu.com/security/CVE-2025-71200",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: sdhci-of-dwcmshc: Prevent illegal clock reduction in HS200/HS400 mode  When operating in HS200 or HS400 timing modes, reducing the clock frequency below 52MHz will lead to link broken as the Rockchip DWC MSHC controller requires maintaining a minimum clock of 52MHz in these modes.  Add a check to prevent illegal clock reduction through debugfs:  root@debian:/# echo 50000000 > /sys/kernel/debug/mmc0/clock root@debian:/# [   30.090146] mmc0: running CQE recovery mmc0: cqhci: Failed to halt mmc0: cqhci: spurious TCN for tag 0 WARNING: drivers/mmc/host/cqhci-core.c:797 at cqhci_irq+0x254/0x818, CPU#1: kworker/1:0H/24 Modules linked in: CPU: 1 UID: 0 PID: 24 Comm: kworker/1:0H Not tainted 6.19.0-rc1-00001-g09db0998649d-dirty #204 PREEMPT Hardware name: Rockchip RK3588 EVB1 V10 Board (DT) Workqueue: kblockd blk_mq_run_work_fn pstate: 604000c9 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : cqhci_irq+0x254/0x818 lr : cqhci_irq+0x254/0x818 ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23089",
                                "url": "https://ubuntu.com/security/CVE-2026-23089",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix use-after-free in snd_usb_mixer_free()  When snd_usb_create_mixer() fails, snd_usb_mixer_free() frees mixer->id_elems but the controls already added to the card still reference the freed memory. Later when snd_card_register() runs, the OSS mixer layer calls their callbacks and hits a use-after-free read.  Call trace:   get_ctl_value+0x63f/0x820 sound/usb/mixer.c:411   get_min_max_with_quirks.isra.0+0x240/0x1f40 sound/usb/mixer.c:1241   mixer_ctl_feature_info+0x26b/0x490 sound/usb/mixer.c:1381   snd_mixer_oss_build_test+0x174/0x3a0 sound/core/oss/mixer_oss.c:887   ...   snd_card_register+0x4ed/0x6d0 sound/core/init.c:923   usb_audio_probe+0x5ef/0x2a90 sound/usb/card.c:1025  Fix by calling snd_ctl_remove() for all mixer controls before freeing id_elems. We save the next pointer first because snd_ctl_remove() frees the current element.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23076",
                                "url": "https://ubuntu.com/security/CVE-2026-23076",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ctxfi: Fix potential OOB access in audio mixer handling  In the audio mixer handling code of ctxfi driver, the conf field is used as a kind of loop index, and it's referred in the index callbacks (amixer_index() and sum_index()).  As spotted recently by fuzzers, the current code causes OOB access at those functions. | UBSAN: array-index-out-of-bounds in /build/reproducible-path/linux-6.17.8/sound/pci/ctxfi/ctamixer.c:347:48 | index 8 is out of range for type 'unsigned char [8]'  After the analysis, the cause was found to be the lack of the proper (re-)initialization of conj field.  This patch addresses those OOB accesses by adding the proper initializations of the loop indices.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71199",
                                "url": "https://ubuntu.com/security/CVE-2025-71199",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc driver  at91_adc_interrupt can call at91_adc_touch_data_handler function to start the work by schedule_work(&st->touch_st.workq).  If we remove the module which will call at91_adc_remove to make cleanup, it will free indio_dev through iio_device_unregister but quite a bit later. While the work mentioned above will be used. The sequence of operations that may lead to a UAF bug is as follows:  CPU0                                      CPU1                                       | at91_adc_workq_handler at91_adc_remove                      | iio_device_unregister(indio_dev)     | //free indio_dev a bit later         |                                      | iio_push_to_buffers(indio_dev)                                      | //use indio_dev  Fix it by ensuring that the work is canceled before proceeding with the cleanup in at91_adc_remove.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23101",
                                "url": "https://ubuntu.com/security/CVE-2026-23101",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  leds: led-class: Only Add LED to leds_list when it is fully ready  Before this change the LED was added to leds_list before led_init_core() gets called adding it the list before led_classdev.set_brightness_work gets initialized.  This leaves a window where led_trigger_register() of a LED's default trigger will call led_trigger_set() which calls led_set_brightness() which in turn will end up queueing the *uninitialized* led_classdev.set_brightness_work.  This race gets hit by the lenovo-thinkpad-t14s EC driver which registers 2 LEDs with a default trigger provided by snd_ctl_led.ko in quick succession. The first led_classdev_register() causes an async modprobe of snd_ctl_led to run and that async modprobe manages to exactly hit the window where the second LED is on the leds_list without led_init_core() being called for it, resulting in:   ------------[ cut here ]------------  WARNING: CPU: 11 PID: 5608 at kernel/workqueue.c:4234 __flush_work+0x344/0x390  Hardware name: LENOVO 21N2S01F0B/21N2S01F0B, BIOS N42ET93W (2.23 ) 09/01/2025  ...  Call trace:   __flush_work+0x344/0x390 (P)   flush_work+0x2c/0x50   led_trigger_set+0x1c8/0x340   led_trigger_register+0x17c/0x1c0   led_trigger_register_simple+0x84/0xe8   snd_ctl_led_init+0x40/0xf88 [snd_ctl_led]   do_one_initcall+0x5c/0x318   do_init_module+0x9c/0x2b8   load_module+0x7e0/0x998  Close the race window by moving the adding of the LED to leds_list to after the led_init_core() call.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23064",
                                "url": "https://ubuntu.com/security/CVE-2026-23064",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: act_ife: avoid possible NULL deref  tcf_ife_encode() must make sure ife_encode() does not return NULL.  syzbot reported:  Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]  RIP: 0010:ife_tlv_meta_encode+0x41/0xa0 net/ife/ife.c:166 CPU: 3 UID: 0 PID: 8990 Comm: syz.0.696 Not tainted syzkaller #0 PREEMPT(full) Call Trace:  <TASK>   ife_encode_meta_u32+0x153/0x180 net/sched/act_ife.c:101   tcf_ife_encode net/sched/act_ife.c:841 [inline]   tcf_ife_act+0x1022/0x1de0 net/sched/act_ife.c:877   tc_act include/net/tc_wrapper.h:130 [inline]   tcf_action_exec+0x1c0/0xa20 net/sched/act_api.c:1152   tcf_exts_exec include/net/pkt_cls.h:349 [inline]   mall_classify+0x1a0/0x2a0 net/sched/cls_matchall.c:42   tc_classify include/net/tc_wrapper.h:197 [inline]   __tcf_classify net/sched/cls_api.c:1764 [inline]   tcf_classify+0x7f2/0x1380 net/sched/cls_api.c:1860   multiq_classify net/sched/sch_multiq.c:39 [inline]   multiq_enqueue+0xe0/0x510 net/sched/sch_multiq.c:66   dev_qdisc_enqueue+0x45/0x250 net/core/dev.c:4147   __dev_xmit_skb net/core/dev.c:4262 [inline]   __dev_queue_xmit+0x2998/0x46c0 net/core/dev.c:4798",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23086",
                                "url": "https://ubuntu.com/security/CVE-2026-23086",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: cap TX credit to local buffer size  The virtio transports derives its TX credit directly from peer_buf_alloc, which is set from the remote endpoint's SO_VM_SOCKETS_BUFFER_SIZE value.  On the host side this means that the amount of data we are willing to queue for a connection is scaled by a guest-chosen buffer size, rather than the host's own vsock configuration. A malicious guest can advertise a large buffer and read slowly, causing the host to allocate a correspondingly large amount of sk_buff memory. The same thing would happen in the guest with a malicious host, since virtio transports share the same code base.  Introduce a small helper, virtio_transport_tx_buf_size(), that returns min(peer_buf_alloc, buf_alloc), and use it wherever we consume peer_buf_alloc.  This ensures the effective TX window is bounded by both the peer's advertised buffer and our own buf_alloc (already clamped to buffer_max_size via SO_VM_SOCKETS_BUFFER_MAX_SIZE), so a remote peer cannot force the other to queue more data than allowed by its own vsock settings.  On an unpatched Ubuntu 22.04 host (~64 GiB RAM), running a PoC with 32 guest vsock connections advertising 2 GiB each and reading slowly drove Slab/SUnreclaim from ~0.5 GiB to ~57 GiB; the system only recovered after killing the QEMU process. That said, if QEMU memory is limited with cgroups, the maximum memory used will be limited.  With this patch applied:    Before:     MemFree:        ~61.6 GiB     Slab:           ~142 MiB     SUnreclaim:     ~117 MiB    After 32 high-credit connections:     MemFree:        ~61.5 GiB     Slab:           ~178 MiB     SUnreclaim:     ~152 MiB  Only ~35 MiB increase in Slab/SUnreclaim, no host OOM, and the guest remains responsive.  Compatibility with non-virtio transports:    - VMCI uses the AF_VSOCK buffer knobs to size its queue pairs per     socket based on the local vsk->buffer_* values; the remote side     cannot enlarge those queues beyond what the local endpoint     configured.    - Hyper-V's vsock transport uses fixed-size VMBus ring buffers and     an MTU bound; there is no peer-controlled credit field comparable     to peer_buf_alloc, and the remote endpoint cannot drive in-flight     kernel memory above those ring sizes.    - The loopback path reuses virtio_transport_common.c, so it     naturally follows the same semantics as the virtio transport.  This change is limited to virtio_transport_common.c and thus affects virtio-vsock, vhost-vsock, and loopback, bringing them in line with the \"remote window intersected with local policy\" behaviour that VMCI and Hyper-V already effectively have.  [Stefano: small adjustments after changing the previous patch] [Stefano: tweak the commit message]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23069",
                                "url": "https://ubuntu.com/security/CVE-2026-23069",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: fix potential underflow in virtio_transport_get_credit()  The credit calculation in virtio_transport_get_credit() uses unsigned arithmetic:    ret = vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt);  If the peer shrinks its advertised buffer (peer_buf_alloc) while bytes are in flight, the subtraction can underflow and produce a large positive value, potentially allowing more data to be queued than the peer can handle.  Reuse virtio_transport_has_space() which already handles this case and add a comment to make it clear why we are doing that.  [Stefano: use virtio_transport_has_space() instead of duplicating the code] [Stefano: tweak the commit message]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23119",
                                "url": "https://ubuntu.com/security/CVE-2026-23119",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: provide a net pointer to __skb_flow_dissect()  After 3cbf4ffba5ee (\"net: plumb network namespace into __skb_flow_dissect\") we have to provide a net pointer to __skb_flow_dissect(), either via skb->dev, skb->sk, or a user provided pointer.  In the following case, syzbot was able to cook a bare skb.  WARNING: net/core/flow_dissector.c:1131 at __skb_flow_dissect+0xb57/0x68b0 net/core/flow_dissector.c:1131, CPU#1: syz.2.1418/11053 Call Trace:  <TASK>   bond_flow_dissect drivers/net/bonding/bond_main.c:4093 [inline]   __bond_xmit_hash+0x2d7/0xba0 drivers/net/bonding/bond_main.c:4157   bond_xmit_hash_xdp drivers/net/bonding/bond_main.c:4208 [inline]   bond_xdp_xmit_3ad_xor_slave_get drivers/net/bonding/bond_main.c:5139 [inline]   bond_xdp_get_xmit_slave+0x1fd/0x710 drivers/net/bonding/bond_main.c:5515   xdp_master_redirect+0x13f/0x2c0 net/core/filter.c:4388   bpf_prog_run_xdp include/net/xdp.h:700 [inline]   bpf_test_run+0x6b2/0x7d0 net/bpf/test_run.c:421   bpf_prog_test_run_xdp+0x795/0x10e0 net/bpf/test_run.c:1390   bpf_prog_test_run+0x2c7/0x340 kernel/bpf/syscall.c:4703   __sys_bpf+0x562/0x860 kernel/bpf/syscall.c:6182   __do_sys_bpf kernel/bpf/syscall.c:6274 [inline]   __se_sys_bpf kernel/bpf/syscall.c:6272 [inline]   __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:6272   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xec/0xf80 arch/x86/entry/syscall_64.c:94",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23084",
                                "url": "https://ubuntu.com/security/CVE-2026-23084",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list  When the parameter pmac_id_valid argument of be_cmd_get_mac_from_list() is set to false, the driver may request the PMAC_ID from the firmware of the network card, and this function will store that PMAC_ID at the provided address pmac_id. This is the contract of this function.  However, there is a location within the driver where both pmac_id_valid == false and pmac_id == NULL are being passed. This could result in dereferencing a NULL pointer.  To resolve this issue, it is necessary to pass the address of a stub variable to the function.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23124",
                                "url": "https://ubuntu.com/security/CVE-2026-23124",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: annotate data-race in ndisc_router_discovery()  syzbot found that ndisc_router_discovery() could read and write in6_dev->ra_mtu without holding a lock [1]  This looks fine, IFLA_INET6_RA_MTU is best effort.  Add READ_ONCE()/WRITE_ONCE() to document the race.  Note that we might also reject illegal MTU values (mtu < IPV6_MIN_MTU || mtu > skb->dev->mtu) in a future patch.  [1] BUG: KCSAN: data-race in ndisc_router_discovery / ndisc_router_discovery  read to 0xffff888119809c20 of 4 bytes by task 25817 on cpu 1:   ndisc_router_discovery+0x151d/0x1c90 net/ipv6/ndisc.c:1558   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  write to 0xffff888119809c20 of 4 bytes by task 25816 on cpu 0:   ndisc_router_discovery+0x155a/0x1c90 net/ipv6/ndisc.c:1559   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  value changed: 0x00000000 -> 0xe5400659",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23121",
                                "url": "https://ubuntu.com/security/CVE-2026-23121",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mISDN: annotate data-race around dev->work  dev->work can re read locklessly in mISDN_read() and mISDN_poll(). Add READ_ONCE()/WRITE_ONCE() annotations.  BUG: KCSAN: data-race in mISDN_ioctl / mISDN_read  write to 0xffff88812d848280 of 4 bytes by task 10864 on cpu 1:   misdn_add_timer drivers/isdn/mISDN/timerdev.c:175 [inline]   mISDN_ioctl+0x2fb/0x550 drivers/isdn/mISDN/timerdev.c:233   vfs_ioctl fs/ioctl.c:51 [inline]   __do_sys_ioctl fs/ioctl.c:597 [inline]   __se_sys_ioctl+0xce/0x140 fs/ioctl.c:583   __x64_sys_ioctl+0x43/0x50 fs/ioctl.c:583   x64_sys_call+0x14b0/0x3000 arch/x86/include/generated/asm/syscalls_64.h:17   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88812d848280 of 4 bytes by task 10857 on cpu 0:   mISDN_read+0x1f2/0x470 drivers/isdn/mISDN/timerdev.c:112   do_loop_readv_writev fs/read_write.c:847 [inline]   vfs_readv+0x3fb/0x690 fs/read_write.c:1020   do_readv+0xe7/0x210 fs/read_write.c:1080   __do_sys_readv fs/read_write.c:1165 [inline]   __se_sys_readv fs/read_write.c:1162 [inline]   __x64_sys_readv+0x45/0x50 fs/read_write.c:1162   x64_sys_call+0x2831/0x3000 arch/x86/include/generated/asm/syscalls_64.h:20   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  value changed: 0x00000000 -> 0x00000001",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23126",
                                "url": "https://ubuntu.com/security/CVE-2026-23126",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netdevsim: fix a race issue related to the operation on bpf_bound_progs list  The netdevsim driver lacks a protection mechanism for operations on the bpf_bound_progs list. When the nsim_bpf_create_prog() performs list_add_tail, it is possible that nsim_bpf_destroy_prog() is simultaneously performs list_del. Concurrent operations on the list may lead to list corruption and trigger a kernel crash as follows:  [  417.290971] kernel BUG at lib/list_debug.c:62! [  417.290983] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI [  417.290992] CPU: 10 PID: 168 Comm: kworker/10:1 Kdump: loaded Not tainted 6.19.0-rc5 #1 [  417.291003] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [  417.291007] Workqueue: events bpf_prog_free_deferred [  417.291021] RIP: 0010:__list_del_entry_valid_or_report+0xa7/0xc0 [  417.291034] Code: a8 ff 0f 0b 48 89 fe 48 89 ca 48 c7 c7 48 a1 eb ae e8 ed fb a8 ff 0f 0b 48 89 fe 48 89 c2 48 c7 c7 80 a1 eb ae e8 d9 fb a8 ff <0f> 0b 48 89 d1 48 c7 c7 d0 a1 eb ae 48 89 f2 48 89 c6 e8 c2 fb a8 [  417.291040] RSP: 0018:ffffb16a40807df8 EFLAGS: 00010246 [  417.291046] RAX: 000000000000006d RBX: ffff8e589866f500 RCX: 0000000000000000 [  417.291051] RDX: 0000000000000000 RSI: ffff8e59f7b23180 RDI: ffff8e59f7b23180 [  417.291055] RBP: ffffb16a412c9000 R08: 0000000000000000 R09: 0000000000000003 [  417.291059] R10: ffffb16a40807c80 R11: ffffffffaf9edce8 R12: ffff8e594427ac20 [  417.291063] R13: ffff8e59f7b44780 R14: ffff8e58800b7a05 R15: 0000000000000000 [  417.291074] FS:  0000000000000000(0000) GS:ffff8e59f7b00000(0000) knlGS:0000000000000000 [  417.291079] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [  417.291083] CR2: 00007fc4083efe08 CR3: 00000001c3626006 CR4: 0000000000770ee0 [  417.291088] PKRU: 55555554 [  417.291091] Call Trace: [  417.291096]  <TASK> [  417.291103]  nsim_bpf_destroy_prog+0x31/0x80 [netdevsim] [  417.291154]  __bpf_prog_offload_destroy+0x2a/0x80 [  417.291163]  bpf_prog_dev_bound_destroy+0x6f/0xb0 [  417.291171]  bpf_prog_free_deferred+0x18e/0x1a0 [  417.291178]  process_one_work+0x18a/0x3a0 [  417.291188]  worker_thread+0x27b/0x3a0 [  417.291197]  ? __pfx_worker_thread+0x10/0x10 [  417.291207]  kthread+0xe5/0x120 [  417.291214]  ? __pfx_kthread+0x10/0x10 [  417.291221]  ret_from_fork+0x31/0x50 [  417.291230]  ? __pfx_kthread+0x10/0x10 [  417.291236]  ret_from_fork_asm+0x1a/0x30 [  417.291246]  </TASK>  Add a mutex lock, to prevent simultaneous addition and deletion operations on the list.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23059",
                                "url": "https://ubuntu.com/security/CVE-2026-23059",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Sanitize payload size to prevent member overflow  In qla27xx_copy_fpin_pkt() and qla27xx_copy_multiple_pkt(), the frame_size reported by firmware is used to calculate the copy length into item->iocb. However, the iocb member is defined as a fixed-size 64-byte array within struct purex_item.  If the reported frame_size exceeds 64 bytes, subsequent memcpy calls will overflow the iocb member boundary. While extra memory might be allocated, this cross-member write is unsafe and triggers warnings under CONFIG_FORTIFY_SOURCE.  Fix this by capping total_bytes to the size of the iocb member (64 bytes) before allocation and copying. This ensures all copies remain within the bounds of the destination structure member.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23110",
                                "url": "https://ubuntu.com/security/CVE-2026-23110",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: core: Wake up the error handler when final completions race against each other  The fragile ordering between marking commands completed or failed so that the error handler only wakes when the last running command completes or times out has race conditions. These race conditions can cause the SCSI layer to fail to wake the error handler, leaving I/O through the SCSI host stuck as the error state cannot advance.  First, there is an memory ordering issue within scsi_dec_host_busy(). The write which clears SCMD_STATE_INFLIGHT may be reordered with reads counting in scsi_host_busy(). While the local CPU will see its own write, reordering can allow other CPUs in scsi_dec_host_busy() or scsi_eh_inc_host_failed() to see a raised busy count, causing no CPU to see a host busy equal to the host_failed count.  This race condition can be prevented with a memory barrier on the error path to force the write to be visible before counting host busy commands.  Second, there is a general ordering issue with scsi_eh_inc_host_failed(). By counting busy commands before incrementing host_failed, it can race with a final command in scsi_dec_host_busy(), such that scsi_dec_host_busy() does not see host_failed incremented but scsi_eh_inc_host_failed() counts busy commands before SCMD_STATE_INFLIGHT is cleared by scsi_dec_host_busy(), resulting in neither waking the error handler task.  This needs the call to scsi_host_busy() to be moved after host_failed is incremented to close the race condition.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23071",
                                "url": "https://ubuntu.com/security/CVE-2026-23071",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: Fix race condition in hwspinlock irqsave routine  Previously, the address of the shared member '&map->spinlock_flags' was passed directly to 'hwspin_lock_timeout_irqsave'. This creates a race condition where multiple contexts contending for the lock could overwrite the shared flags variable, potentially corrupting the state for the current lock owner.  Fix this by using a local stack variable 'flags' to store the IRQ state temporarily.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23068",
                                "url": "https://ubuntu.com/security/CVE-2026-23068",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: spi-sprd-adi: Fix double free in probe error path  The driver currently uses spi_alloc_host() to allocate the controller but registers it using devm_spi_register_controller().  If devm_register_restart_handler() fails, the code jumps to the put_ctlr label and calls spi_controller_put(). However, since the controller was registered via a devm function, the device core will automatically call spi_controller_put() again when the probe fails. This results in a double-free of the spi_controller structure.  Fix this by switching to devm_spi_alloc_host() and removing the manual spi_controller_put() call.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23123",
                                "url": "https://ubuntu.com/security/CVE-2026-23123",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  interconnect: debugfs: initialize src_node and dst_node to empty strings  The debugfs_create_str() API assumes that the string pointer is either NULL or points to valid kmalloc() memory. Leaving the pointer uninitialized can cause problems.  Initialize src_node and dst_node to empty strings before creating the debugfs entries to guarantee that reads and writes are safe.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71198",
                                "url": "https://ubuntu.com/security/CVE-2025-71198",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event detection  The st_lsm6dsx_acc_channels array of struct iio_chan_spec has a non-NULL event_spec field, indicating support for IIO events. However, event detection is not supported for all sensors, and if userspace tries to configure accelerometer wakeup events on a sensor device that does not support them (e.g. LSM6DS0), st_lsm6dsx_write_event() dereferences a NULL pointer when trying to write to the wakeup register. Define an additional struct iio_chan_spec array whose members have a NULL event_spec field, and use this array instead of st_lsm6dsx_acc_channels for sensors without event detection capability.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23113",
                                "url": "https://ubuntu.com/security/CVE-2026-23113",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop  Currently this is checked before running the pending work. Normally this is quite fine, as work items either end up blocking (which will create a new worker for other items), or they complete fairly quickly. But syzbot reports an issue where io-wq takes seemingly forever to exit, and with a bit of debugging, this turns out to be because it queues a bunch of big (2GB - 4096b) reads with a /dev/msr* file. Since this file type doesn't support ->read_iter(), loop_rw_iter() ends up handling them. Each read returns 16MB of data read, which takes 20 (!!) seconds. With a bunch of these pending, processing the whole chain can take a long time. Easily longer than the syzbot uninterruptible sleep timeout of 140 seconds. This then triggers a complaint off the io-wq exit path:  INFO: task syz.4.135:6326 blocked for more than 143 seconds.       Not tainted syzkaller #0       Blocked by coredump. \"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\" disables this message. task:syz.4.135       state:D stack:26824 pid:6326  tgid:6324  ppid:5957  task_flags:0x400548 flags:0x00080000 Call Trace:  <TASK>  context_switch kernel/sched/core.c:5256 [inline]  __schedule+0x1139/0x6150 kernel/sched/core.c:6863  __schedule_loop kernel/sched/core.c:6945 [inline]  schedule+0xe7/0x3a0 kernel/sched/core.c:6960  schedule_timeout+0x257/0x290 kernel/time/sleep_timeout.c:75  do_wait_for_common kernel/sched/completion.c:100 [inline]  __wait_for_common+0x2fc/0x4e0 kernel/sched/completion.c:121  io_wq_exit_workers io_uring/io-wq.c:1328 [inline]  io_wq_put_and_exit+0x271/0x8a0 io_uring/io-wq.c:1356  io_uring_clean_tctx+0x10d/0x190 io_uring/tctx.c:203  io_uring_cancel_generic+0x69c/0x9a0 io_uring/cancel.c:651  io_uring_files_cancel include/linux/io_uring.h:19 [inline]  do_exit+0x2ce/0x2bd0 kernel/exit.c:911  do_group_exit+0xd3/0x2a0 kernel/exit.c:1112  get_signal+0x2671/0x26d0 kernel/signal.c:3034  arch_do_signal_or_restart+0x8f/0x7e0 arch/x86/kernel/signal.c:337  __exit_to_user_mode_loop kernel/entry/common.c:41 [inline]  exit_to_user_mode_loop+0x8c/0x540 kernel/entry/common.c:75  __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]  syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]  syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]  syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]  do_syscall_64+0x4ee/0xf80 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa02738f749 RSP: 002b:00007fa0281ae0e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca RAX: fffffffffffffe00 RBX: 00007fa0275e6098 RCX: 00007fa02738f749 RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007fa0275e6098 RBP: 00007fa0275e6090 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fa0275e6128 R14: 00007fff14e4fcb0 R15: 00007fff14e4fd98  There's really nothing wrong here, outside of processing these reads will take a LONG time. However, we can speed up the exit by checking the IO_WQ_BIT_EXIT inside the io_worker_handle_work() loop, as syzbot will exit the ring after queueing up all of these reads. Then once the first item is processed, io-wq will simply cancel the rest. That should avoid syzbot running into this complaint again.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23062",
                                "url": "https://ubuntu.com/security/CVE-2026-23062",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro  The GET_INSTANCE_ID macro that caused a kernel panic when accessing sysfs attributes:  1. Off-by-one error: The loop condition used '<=' instead of '<',    causing access beyond array bounds. Since array indices are 0-based    and go from 0 to instances_count-1, the loop should use '<'.  2. Missing NULL check: The code dereferenced attr_name_kobj->name    without checking if attr_name_kobj was NULL, causing a null pointer    dereference in min_length_show() and other attribute show functions.  The panic occurred when fwupd tried to read BIOS configuration attributes:    Oops: general protection fault [#1] SMP KASAN NOPTI   KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]   RIP: 0010:min_length_show+0xcf/0x1d0 [hp_bioscfg]  Add a NULL check for attr_name_kobj before dereferencing and corrects the loop boundary to match the pattern used elsewhere in the driver.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23131",
                                "url": "https://ubuntu.com/security/CVE-2026-23131",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kobject warnings for empty attribute names  The hp-bioscfg driver attempts to register kobjects with empty names when the HP BIOS returns attributes with empty name strings. This causes multiple kernel warnings:    kobject: (00000000135fb5e6): attempted to be registered with empty name!   WARNING: CPU: 14 PID: 3336 at lib/kobject.c:219 kobject_add_internal+0x2eb/0x310  Add validation in hp_init_bios_buffer_attribute() to check if the attribute name is empty after parsing it from the WMI buffer. If empty, log a debug message and skip registration of that attribute, allowing the module to continue processing other valid attributes.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23087",
                                "url": "https://ubuntu.com/security/CVE-2026-23087",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: xen: scsiback: Fix potential memory leak in scsiback_remove()  Memory allocated for struct vscsiblk_info in scsiback_probe() is not freed in scsiback_remove() leading to potential memory leaks on remove, as well as in the scsiback_probe() error paths. Fix that by freeing it in scsiback_remove().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71197",
                                "url": "https://ubuntu.com/security/CVE-2025-71197",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  w1: therm: Fix off-by-one buffer overflow in alarms_store  The sysfs buffer passed to alarms_store() is allocated with 'size + 1' bytes and a NUL terminator is appended. However, the 'size' argument does not account for this extra byte. The original code then allocated 'size' bytes and used strcpy() to copy 'buf', which always writes one byte past the allocated buffer since strcpy() copies until the NUL terminator at index 'size'.  Fix this by parsing the 'buf' parameter directly using simple_strtoll() without allocating any intermediate memory or string copying. This removes the overflow while simplifying the code.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23105",
                                "url": "https://ubuntu.com/security/CVE-2026-23105",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag  This is more of a preventive patch to make the code more consistent and to prevent possible exploits that employ child qlen manipulations on qfq. use cl_is_active instead of relying on the child qdisc's qlen to determine class activation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23103",
                                "url": "https://ubuntu.com/security/CVE-2026-23103",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvlan: Make the addrs_lock be per port  Make the addrs_lock be per port, not per ipvlan dev.  Initial code seems to be written in the assumption, that any address change must occur under RTNL. But it is not so for the case of IPv6. So  1) Introduce per-port addrs_lock.  2) It was needed to fix places where it was forgotten to take lock (ipvlan_open/ipvlan_close)  This appears to be a very minor problem though. Since it's highly unlikely that ipvlan_add_addr() will be called on 2 CPU simultaneously. But nevertheless, this could cause:  1) False-negative of ipvlan_addr_busy(): one interface iterated through all port->ipvlans + ipvlan->addrs under some ipvlan spinlock, and another added IP under its own lock. Though this is only possible for IPv6, since looks like only ipvlan_addr6_event() can be called without rtnl_lock.  2) Race since ipvlan_ht_addr_add(port) is called under different ipvlan->addrs_lock locks  This should not affect performance, since add/remove IP is a rare situation and spinlock is not taken on fast paths.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23120",
                                "url": "https://ubuntu.com/security/CVE-2026-23120",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  l2tp: avoid one data-race in l2tp_tunnel_del_work()  We should read sk->sk_socket only when dealing with kernel sockets.  syzbot reported the following data-race:  BUG: KCSAN: data-race in l2tp_tunnel_del_work / sk_common_release  write to 0xffff88811c182b20 of 8 bytes by task 5365 on cpu 0:   sk_set_socket include/net/sock.h:2092 [inline]   sock_orphan include/net/sock.h:2118 [inline]   sk_common_release+0xae/0x230 net/core/sock.c:4003   udp_lib_close+0x15/0x20 include/net/udp.h:325   inet_release+0xce/0xf0 net/ipv4/af_inet.c:437   __sock_release net/socket.c:662 [inline]   sock_close+0x6b/0x150 net/socket.c:1455   __fput+0x29b/0x650 fs/file_table.c:468   ____fput+0x1c/0x30 fs/file_table.c:496   task_work_run+0x131/0x1a0 kernel/task_work.c:233   resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]   __exit_to_user_mode_loop kernel/entry/common.c:44 [inline]   exit_to_user_mode_loop+0x1fe/0x740 kernel/entry/common.c:75   __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]   syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]   syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]   syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]   do_syscall_64+0x1e1/0x2b0 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88811c182b20 of 8 bytes by task 827 on cpu 1:   l2tp_tunnel_del_work+0x2f/0x1a0 net/l2tp/l2tp_core.c:1418   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0x4ce/0x9d0 kernel/workqueue.c:3340   worker_thread+0x582/0x770 kernel/workqueue.c:3421   kthread+0x489/0x510 kernel/kthread.c:463   ret_from_fork+0x149/0x290 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246  value changed: 0xffff88811b818000 -> 0x0000000000000000",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23083",
                                "url": "https://ubuntu.com/security/CVE-2026-23083",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fou: Don't allow 0 for FOU_ATTR_IPPROTO.  fou_udp_recv() has the same problem mentioned in the previous patch.  If FOU_ATTR_IPPROTO is set to 0, skb is not freed by fou_udp_recv() nor \"resubmit\"-ted in ip_protocol_deliver_rcu().  Let's forbid 0 for FOU_ATTR_IPPROTO.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23095",
                                "url": "https://ubuntu.com/security/CVE-2026-23095",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gue: Fix skb memleak with inner IP protocol 0.  syzbot reported skb memleak below. [0]  The repro generated a GUE packet with its inner protocol 0.  gue_udp_recv() returns -guehdr->proto_ctype for \"resubmit\" in ip_protocol_deliver_rcu(), but this only works with non-zero protocol number.  Let's drop such packets.  Note that 0 is a valid number (IPv6 Hop-by-Hop Option).  I think it is not practical to encap HOPOPT in GUE, so once someone starts to complain, we could pass down a resubmit flag pointer to distinguish two zeros from the upper layer:    * no error   * resubmit HOPOPT  [0] BUG: memory leak unreferenced object 0xffff888109695a00 (size 240):   comm \"syz.0.17\", pid 6088, jiffies 4294943096   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 40 c2 10 81 88 ff ff 00 00 00 00 00 00 00 00  .@..............   backtrace (crc a84b336f):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4958 [inline]     slab_alloc_node mm/slub.c:5263 [inline]     kmem_cache_alloc_noprof+0x3b4/0x590 mm/slub.c:5270     __build_skb+0x23/0x60 net/core/skbuff.c:474     build_skb+0x20/0x190 net/core/skbuff.c:490     __tun_build_skb drivers/net/tun.c:1541 [inline]     tun_build_skb+0x4a1/0xa40 drivers/net/tun.c:1636     tun_get_user+0xc12/0x2030 drivers/net/tun.c:1770     tun_chr_write_iter+0x71/0x120 drivers/net/tun.c:1999     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0xa7/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xf80 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23125",
                                "url": "https://ubuntu.com/security/CVE-2026-23125",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT  A null-ptr-deref was reported in the SCTP transmit path when SCTP-AUTH key initialization fails:    ==================================================================   KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]   CPU: 0 PID: 16 Comm: ksoftirqd/0 Tainted: G W 6.6.0 #2   RIP: 0010:sctp_packet_bundle_auth net/sctp/output.c:264 [inline]   RIP: 0010:sctp_packet_append_chunk+0xb36/0x1260 net/sctp/output.c:401   Call Trace:    sctp_packet_transmit_chunk+0x31/0x250 net/sctp/output.c:189   sctp_outq_flush_data+0xa29/0x26d0 net/sctp/outqueue.c:1111   sctp_outq_flush+0xc80/0x1240 net/sctp/outqueue.c:1217   sctp_cmd_interpreter.isra.0+0x19a5/0x62c0 net/sctp/sm_sideeffect.c:1787   sctp_side_effects net/sctp/sm_sideeffect.c:1198 [inline]   sctp_do_sm+0x1a3/0x670 net/sctp/sm_sideeffect.c:1169   sctp_assoc_bh_rcv+0x33e/0x640 net/sctp/associola.c:1052   sctp_inq_push+0x1dd/0x280 net/sctp/inqueue.c:88   sctp_rcv+0x11ae/0x3100 net/sctp/input.c:243   sctp6_rcv+0x3d/0x60 net/sctp/ipv6.c:1127  The issue is triggered when sctp_auth_asoc_init_active_key() fails in sctp_sf_do_5_1C_ack() while processing an INIT_ACK. In this case, the command sequence is currently:  - SCTP_CMD_PEER_INIT - SCTP_CMD_TIMER_STOP (T1_INIT) - SCTP_CMD_TIMER_START (T1_COOKIE) - SCTP_CMD_NEW_STATE (COOKIE_ECHOED) - SCTP_CMD_ASSOC_SHKEY - SCTP_CMD_GEN_COOKIE_ECHO  If SCTP_CMD_ASSOC_SHKEY fails, asoc->shkey remains NULL, while asoc->peer.auth_capable and asoc->peer.peer_chunks have already been set by SCTP_CMD_PEER_INIT. This allows a DATA chunk with auth = 1 and shkey = NULL to be queued by sctp_datamsg_from_user().  Since command interpretation stops on failure, no COOKIE_ECHO should been sent via SCTP_CMD_GEN_COOKIE_ECHO. However, the T1_COOKIE timer has already been started, and it may enqueue a COOKIE_ECHO into the outqueue later. As a result, the DATA chunk can be transmitted together with the COOKIE_ECHO in sctp_outq_flush_data(), leading to the observed issue.  Similar to the other places where it calls sctp_auth_asoc_init_active_key() right after sctp_process_init(), this patch moves the SCTP_CMD_ASSOC_SHKEY immediately after SCTP_CMD_PEER_INIT, before stopping T1_INIT and starting T1_COOKIE. This ensures that if shared key generation fails, authenticated DATA cannot be sent. It also allows the T1_INIT timer to retransmit INIT, giving the client another chance to process INIT_ACK and retry key setup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23099",
                                "url": "https://ubuntu.com/security/CVE-2026-23099",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: limit BOND_MODE_8023AD to Ethernet devices  BOND_MODE_8023AD makes sense for ARPHRD_ETHER only.  syzbot reported:   BUG: KASAN: global-out-of-bounds in __hw_addr_create net/core/dev_addr_lists.c:63 [inline]  BUG: KASAN: global-out-of-bounds in __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118 Read of size 16 at addr ffffffff8bf94040 by task syz.1.3580/19497  CPU: 1 UID: 0 PID: 19497 Comm: syz.1.3580 Tainted: G             L     syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>   dump_stack_lvl+0xe8/0x150 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  check_region_inline mm/kasan/generic.c:-1 [inline]   kasan_check_range+0x2b0/0x2c0 mm/kasan/generic.c:200   __asan_memcpy+0x29/0x70 mm/kasan/shadow.c:105   __hw_addr_create net/core/dev_addr_lists.c:63 [inline]   __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118   __dev_mc_add net/core/dev_addr_lists.c:868 [inline]   dev_mc_add+0xa1/0x120 net/core/dev_addr_lists.c:886   bond_enslave+0x2b8b/0x3ac0 drivers/net/bonding/bond_main.c:2180   do_set_master+0x533/0x6d0 net/core/rtnetlink.c:2963   do_setlink+0xcf0/0x41c0 net/core/rtnetlink.c:3165   rtnl_changelink net/core/rtnetlink.c:3776 [inline]   __rtnl_newlink net/core/rtnetlink.c:3935 [inline]   rtnl_newlink+0x161c/0x1c90 net/core/rtnetlink.c:4072   rtnetlink_rcv_msg+0x7cf/0xb70 net/core/rtnetlink.c:6958   netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2550   netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline]   netlink_unicast+0x82f/0x9e0 net/netlink/af_netlink.c:1344   netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1894   sock_sendmsg_nosec net/socket.c:727 [inline]   __sock_sendmsg+0x21c/0x270 net/socket.c:742   ____sys_sendmsg+0x505/0x820 net/socket.c:2592   ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2646   __sys_sendmsg+0x164/0x220 net/socket.c:2678   do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]   __do_fast_syscall_32+0x1dc/0x560 arch/x86/entry/syscall_32.c:307   do_fast_syscall_32+0x34/0x80 arch/x86/entry/syscall_32.c:332  entry_SYSENTER_compat_after_hwframe+0x84/0x8e  </TASK>  The buggy address belongs to the variable:  lacpdu_mcast_addr+0x0/0x40",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71194",
                                "url": "https://ubuntu.com/security/CVE-2025-71194",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix deadlock in wait_current_trans() due to ignored transaction type  When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans().  This can lead to a deadlock scenario involving two transactions and pending ordered extents:    1. Transaction A is in TRANS_STATE_COMMIT_DOING state    2. A worker processing an ordered extent calls start_transaction()      with TRANS_JOIN    3. join_transaction() returns -EBUSY because Transaction A is in      TRANS_STATE_COMMIT_DOING    4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes    5. A new Transaction B is created (TRANS_STATE_RUNNING)    6. The ordered extent from step 2 is added to Transaction B's      pending ordered extents    7. Transaction B immediately starts commit by another task and      enters TRANS_STATE_COMMIT_START    8. The worker finally reaches wait_current_trans(), sees Transaction B      in TRANS_STATE_COMMIT_START (a blocked state), and waits      unconditionally    9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START      according to btrfs_blocked_trans_types[]    10. Transaction B is waiting for pending ordered extents to complete    11. Deadlock: Transaction B waits for ordered extent, ordered extent       waits for Transaction B  This can be illustrated by the following call stacks:   CPU0                              CPU1                                     btrfs_finish_ordered_io()                                       start_transaction(TRANS_JOIN)                                         join_transaction()                                           # -EBUSY (Transaction A is                                           # TRANS_STATE_COMMIT_DOING)   # Transaction A completes   # Transaction B created   # ordered extent added to   # Transaction B's pending list   btrfs_commit_transaction()     # Transaction B enters     # TRANS_STATE_COMMIT_START     # waiting for pending ordered     # extents                                         wait_current_trans()                                           # waits for Transaction B                                           # (should not wait!)  Task bstore_kv_sync in btrfs_commit_transaction waiting for ordered extents:    __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   btrfs_commit_transaction+0xbf7/0xda0 [btrfs]   btrfs_sync_file+0x342/0x4d0 [btrfs]   __x64_sys_fdatasync+0x4b/0x80   do_syscall_64+0x33/0x40   entry_SYSCALL_64_after_hwframe+0x44/0xa9  Task kworker in wait_current_trans waiting for transaction commit:    Workqueue: btrfs-syno_nocow btrfs_work_helper [btrfs]   __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   wait_current_trans+0xb0/0x110 [btrfs]   start_transaction+0x346/0x5b0 [btrfs]   btrfs_finish_ordered_io.isra.0+0x49b/0x9c0 [btrfs]   btrfs_work_helper+0xe8/0x350 [btrfs]   process_one_work+0x1d3/0x3c0   worker_thread+0x4d/0x3e0   kthread+0x12d/0x150   ret_from_fork+0x1f/0x30  Fix this by passing the transaction type to wait_current_trans() and checking btrfs_blocked_trans_types[cur_trans->state] against the given type before deciding to wait. This ensures that transaction types which are allowed to join during certain blocked states will not unnecessarily wait and cause deadlocks.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71185",
                                "url": "https://ubuntu.com/security/CVE-2025-71185",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation  Make sure to drop the reference taken when looking up the crossbar platform device during am335x route allocation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23026",
                                "url": "https://ubuntu.com/security/CVE-2026-23026",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config()  Fix a memory leak in gpi_peripheral_config() where the original memory pointed to by gchan->config could be lost if krealloc() fails.  The issue occurs when: 1. gchan->config points to previously allocated memory 2. krealloc() fails and returns NULL 3. The function directly assigns NULL to gchan->config, losing the    reference to the original memory 4. The original memory becomes unreachable and cannot be freed  Fix this by using a temporary variable to hold the krealloc() result and only updating gchan->config when the allocation succeeds.  Found via static analysis and code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71188",
                                "url": "https://ubuntu.com/security/CVE-2025-71188",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: lpc18xx-dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71163",
                                "url": "https://ubuntu.com/security/CVE-2025-71163",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: idxd: fix device leaks on compat bind and unbind  Make sure to drop the reference taken when looking up the idxd device as part of the compat bind and unbind sysfs interface.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71189",
                                "url": "https://ubuntu.com/security/CVE-2025-71189",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: dw: dmamux: fix OF node leak on route allocation failure  Make sure to drop the reference taken to the DMA master OF node also on late route allocation failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71190",
                                "url": "https://ubuntu.com/security/CVE-2025-71190",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: bcm-sba-raid: fix device leak on probe  Make sure to drop the reference taken when looking up the mailbox device during probe on probe failures and on driver unbind.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71191",
                                "url": "https://ubuntu.com/security/CVE-2025-71191",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: at_hdmac: fix device leak on of_dma_xlate()  Make sure to drop the reference taken when looking up the DMA platform device during of_dma_xlate() when releasing channel resources.  Note that commit 3832b78b3ec2 (\"dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()\") fixed the leak in a couple of error paths but the reference is still leaking on successful allocation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23049",
                                "url": "https://ubuntu.com/security/CVE-2026-23049",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel  The connector type for the DataImage SCF0700C48GGU18 panel is missing and devm_drm_panel_bridge_add() requires connector type to be set. This leads to a warning and a backtrace in the kernel log and panel does not work: \" WARNING: CPU: 3 PID: 38 at drivers/gpu/drm/bridge/panel.c:379 devm_drm_of_get_bridge+0xac/0xb8 \" The warning is triggered by a check for valid connector type in devm_drm_panel_bridge_add(). If there is no valid connector type set for a panel, the warning is printed and panel is not added. Fill in the missing connector type to fix the warning and make the panel operational once again.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23144",
                                "url": "https://ubuntu.com/security/CVE-2026-23144",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure  When a context DAMON sysfs directory setup is failed after setup of attrs/ directory, subdirectories of attrs/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23145",
                                "url": "https://ubuntu.com/security/CVE-2026-23145",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref  The error branch for ext4_xattr_inode_update_ref forget to release the refcount for iloc.bh. Find this when review code.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22997",
                                "url": "https://ubuntu.com/security/CVE-2026-22997",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session upon receiving the second rts  Since j1939_session_deactivate_activate_next() in j1939_tp_rxtimer() is called only when the timer is enabled, we need to call j1939_session_deactivate_activate_next() if we cancelled the timer. Otherwise, refcount for j1939_session leaks, which will later appear as  | unregister_netdevice: waiting for vcan0 to become free. Usage count = 2.  problem.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23031",
                                "url": "https://ubuntu.com/security/CVE-2026-23031",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak  In gs_can_open(), the URBs for USB-in transfers are allocated, added to the parent->rx_submitted anchor and submitted. In the complete callback gs_usb_receive_bulk_callback(), the URB is processed and resubmitted. In gs_can_close() the URBs are freed by calling usb_kill_anchored_urbs(parent->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in gs_can_close().  Fix the memory leak by anchoring the URB in the gs_usb_receive_bulk_callback() to the parent->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23032",
                                "url": "https://ubuntu.com/security/CVE-2026-23032",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  null_blk: fix kmemleak by releasing references to fault configfs items  When CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is enabled, the null-blk driver sets up fault injection support by creating the timeout_inject, requeue_inject, and init_hctx_fault_inject configfs items as children of the top-level nullbX configfs group.  However, when the nullbX device is removed, the references taken to these fault-config configfs items are not released. As a result, kmemleak reports a memory leak, for example:  unreferenced object 0xc00000021ff25c40 (size 32):   comm \"mkdir\", pid 10665, jiffies 4322121578   hex dump (first 32 bytes):     69 6e 69 74 5f 68 63 74 78 5f 66 61 75 6c 74 5f  init_hctx_fault_     69 6e 6a 65 63 74 00 88 00 00 00 00 00 00 00 00  inject..........   backtrace (crc 1a018c86):     __kmalloc_node_track_caller_noprof+0x494/0xbd8     kvasprintf+0x74/0xf4     config_item_set_name+0xf0/0x104     config_group_init_type_name+0x48/0xfc     fault_config_init+0x48/0xf0     0xc0080000180559e4     configfs_mkdir+0x304/0x814     vfs_mkdir+0x49c/0x604     do_mkdirat+0x314/0x3d0     sys_mkdir+0xa0/0xd8     system_call_exception+0x1b0/0x4f0     system_call_vectored_common+0x15c/0x2ec  Fix this by explicitly releasing the references to the fault-config configfs items when dropping the reference to the top-level nullbX configfs group.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23033",
                                "url": "https://ubuntu.com/security/CVE-2026-23033",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: omap-dma: fix dma_pool resource leak in error paths  The dma_pool created by dma_pool_create() is not destroyed when dma_async_device_register() or of_dma_controller_register() fails, causing a resource leak in the probe error paths.  Add dma_pool_destroy() in both error paths to properly release the allocated dma_pool resource.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71196",
                                "url": "https://ubuntu.com/security/CVE-2025-71196",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: stm32-usphyc: Fix off by one in probe()  The \"index\" variable is used as an index into the usbphyc->phys[] array which has usbphyc->nphys elements.  So if it is equal to usbphyc->nphys then it is one element out of bounds.  The \"index\" comes from the device tree so it's data that we trust and it's unlikely to be wrong, however it's obviously still worth fixing the bug.  Change the > to >=.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71193",
                                "url": "https://ubuntu.com/security/CVE-2025-71193",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: qcom-qusb2: Fix NULL pointer dereference on early suspend  Enabling runtime PM before attaching the QPHY instance as driver data can lead to a NULL pointer dereference in runtime PM callbacks that expect valid driver data. There is a small window where the suspend callback may run after PM runtime enabling and before runtime forbid. This causes a sporadic crash during boot:  ``` Unable to handle kernel NULL pointer dereference at virtual address 00000000000000a1 [...] CPU: 0 UID: 0 PID: 11 Comm: kworker/0:1 Not tainted 6.16.7+ #116 PREEMPT Workqueue: pm pm_runtime_work pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : qusb2_phy_runtime_suspend+0x14/0x1e0 [phy_qcom_qusb2] lr : pm_generic_runtime_suspend+0x2c/0x44 [...] ```  Attach the QPHY instance as driver data before enabling runtime PM to prevent NULL pointer dereference in runtime PM callbacks.  Reorder pm_runtime_enable() and pm_runtime_forbid() to prevent a short window where an unnecessary runtime suspend can occur.  Use the devres-managed version to ensure PM runtime is symmetrically disabled during driver removal for proper cleanup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71162",
                                "url": "https://ubuntu.com/security/CVE-2025-71162",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: tegra-adma: Fix use-after-free  A use-after-free bug exists in the Tegra ADMA driver when audio streams are terminated, particularly during XRUN conditions. The issue occurs when the DMA buffer is freed by tegra_adma_terminate_all() before the vchan completion tasklet finishes accessing it.  The race condition follows this sequence:    1. DMA transfer completes, triggering an interrupt that schedules the      completion tasklet (tasklet has not executed yet)   2. Audio playback stops, calling tegra_adma_terminate_all() which      frees the DMA buffer memory via kfree()   3. The scheduled tasklet finally executes, calling vchan_complete()      which attempts to access the already-freed memory  Since tasklets can execute at any time after being scheduled, there is no guarantee that the buffer will remain valid when vchan_complete() runs.  Fix this by properly synchronizing the virtual channel completion:  - Calling vchan_terminate_vdesc() in tegra_adma_stop() to mark the    descriptors as terminated instead of freeing the descriptor.  - Add the callback tegra_adma_synchronize() that calls    vchan_synchronize() which kills any pending tasklets and frees any    terminated descriptors.  Crash logs: [  337.427523] BUG: KASAN: use-after-free in vchan_complete+0x124/0x3b0 [  337.427544] Read of size 8 at addr ffff000132055428 by task swapper/0/0  [  337.427562] Call trace: [  337.427564]  dump_backtrace+0x0/0x320 [  337.427571]  show_stack+0x20/0x30 [  337.427575]  dump_stack_lvl+0x68/0x84 [  337.427584]  print_address_description.constprop.0+0x74/0x2b8 [  337.427590]  kasan_report+0x1f4/0x210 [  337.427598]  __asan_load8+0xa0/0xd0 [  337.427603]  vchan_complete+0x124/0x3b0 [  337.427609]  tasklet_action_common.constprop.0+0x190/0x1d0 [  337.427617]  tasklet_action+0x30/0x40 [  337.427623]  __do_softirq+0x1a0/0x5c4 [  337.427628]  irq_exit+0x110/0x140 [  337.427633]  handle_domain_irq+0xa4/0xe0 [  337.427640]  gic_handle_irq+0x64/0x160 [  337.427644]  call_on_irq_stack+0x20/0x4c [  337.427649]  do_interrupt_handler+0x7c/0x90 [  337.427654]  el1_interrupt+0x30/0x80 [  337.427659]  el1h_64_irq_handler+0x18/0x30 [  337.427663]  el1h_64_irq+0x7c/0x80 [  337.427667]  cpuidle_enter_state+0xe4/0x540 [  337.427674]  cpuidle_enter+0x54/0x80 [  337.427679]  do_idle+0x2e0/0x380 [  337.427685]  cpu_startup_entry+0x2c/0x70 [  337.427690]  rest_init+0x114/0x130 [  337.427695]  arch_call_rest_init+0x18/0x24 [  337.427702]  start_kernel+0x380/0x3b4 [  337.427706]  __primary_switched+0xc0/0xc8",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71195",
                                "url": "https://ubuntu.com/security/CVE-2025-71195",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: xilinx: xdma: Fix regmap max_register  The max_register field is assigned the size of the register memory region instead of the offset of the last register. The result is that reading from the regmap via debugfs can cause a segmentation fault:  tail /sys/kernel/debug/regmap/xdma.1.auto/registers Unable to handle kernel paging request at virtual address ffff800082f70000 Mem abort info:   ESR = 0x0000000096000007   EC = 0x25: DABT (current EL), IL = 32 bits   SET = 0, FnV = 0   EA = 0, S1PTW = 0   FSC = 0x07: level 3 translation fault [...] Call trace:  regmap_mmio_read32le+0x10/0x30  _regmap_bus_reg_read+0x74/0xc0  _regmap_read+0x68/0x198  regmap_read+0x54/0x88  regmap_read_debugfs+0x140/0x380  regmap_map_read_file+0x30/0x48  full_proxy_read+0x68/0xc8  vfs_read+0xcc/0x310  ksys_read+0x7c/0x120  __arm64_sys_read+0x24/0x40  invoke_syscall.constprop.0+0x64/0x108  do_el0_svc+0xb0/0xd8  el0_svc+0x38/0x130  el0t_64_sync_handler+0x120/0x138  el0t_64_sync+0x194/0x198 Code: aa1e03e9 d503201f f9400000 8b214000 (b9400000) ---[ end trace 0000000000000000 ]--- note: tail[1217] exited with irqs disabled note: tail[1217] exited with preempt_count 1 Segmentation fault",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23006",
                                "url": "https://ubuntu.com/security/CVE-2026-23006",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: tlv320adcx140: fix null pointer  The \"snd_soc_component\" in \"adcx140_priv\" was only used once but never set. It was only used for reaching \"dev\" which is already present in \"adcx140_priv\".",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22999",
                                "url": "https://ubuntu.com/security/CVE-2026-22999",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: do not free existing class in qfq_change_class()  Fixes qfq_change_class() error case.  cl->qdisc and cl should only be freed if a new class and qdisc were allocated, or we risk various UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23010",
                                "url": "https://ubuntu.com/security/CVE-2026-23010",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix use-after-free in inet6_addr_del().  syzbot reported use-after-free of inet6_ifaddr in inet6_addr_del(). [0]  The cited commit accidentally moved ipv6_del_addr() for mngtmpaddr before reading its ifp->flags for temporary addresses in inet6_addr_del().  Let's move ipv6_del_addr() down to fix the UAF.  [0]: BUG: KASAN: slab-use-after-free in inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117 Read of size 4 at addr ffff88807b89c86c by task syz.3.1618/9593  CPU: 0 UID: 0 PID: 9593 Comm: syz.3.1618 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>  __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:378 [inline]  print_report+0xcd/0x630 mm/kasan/report.c:482  kasan_report+0xe0/0x110 mm/kasan/report.c:595  inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117  addrconf_del_ifaddr+0x11e/0x190 net/ipv6/addrconf.c:3181  inet6_ioctl+0x1e5/0x2b0 net/ipv6/af_inet6.c:582  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f164cf8f749 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f164de64038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007f164d1e5fa0 RCX: 00007f164cf8f749 RDX: 0000200000000000 RSI: 0000000000008936 RDI: 0000000000000003 RBP: 00007f164d013f91 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f164d1e6038 R14: 00007f164d1e5fa0 R15: 00007ffde15c8288  </TASK>  Allocated by task 9593:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  poison_kmalloc_redzone mm/kasan/common.c:397 [inline]  __kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:414  kmalloc_noprof include/linux/slab.h:957 [inline]  kzalloc_noprof include/linux/slab.h:1094 [inline]  ipv6_add_addr+0x4e3/0x2010 net/ipv6/addrconf.c:1120  inet6_addr_add+0x256/0x9b0 net/ipv6/addrconf.c:3050  addrconf_add_ifaddr+0x1fc/0x450 net/ipv6/addrconf.c:3160  inet6_ioctl+0x103/0x2b0 net/ipv6/af_inet6.c:580  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 6099:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  kasan_save_free_info+0x3b/0x60 mm/kasan/generic.c:584  poison_slab_object mm/kasan/common.c:252 [inline]  __kasan_slab_free+0x5f/0x80 mm/kasan/common.c:284  kasan_slab_free include/linux/kasan.h:234 [inline]  slab_free_hook mm/slub.c:2540 [inline]  slab_free_freelist_hook mm/slub.c:2569 [inline]  slab_free_bulk mm/slub.c:6696 [inline]  kmem_cache_free_bulk mm/slub.c:7383 [inline]  kmem_cache_free_bulk+0x2bf/0x680 mm/slub.c:7362  kfree_bulk include/linux/slab.h:830 [inline]  kvfree_rcu_bulk+0x1b7/0x1e0 mm/slab_common.c:1523  kvfree_rcu_drain_ready mm/slab_common.c:1728 [inline]  kfree_rcu_monitor+0x1d0/0x2f0 mm/slab_common.c:1801  process_one_work+0x9ba/0x1b20 kernel/workqueue.c:3257  process_scheduled_works kernel/workqu ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23054",
                                "url": "https://ubuntu.com/security/CVE-2026-23054",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hv_netvsc: reject RSS hash key programming without RX indirection table  RSS configuration requires a valid RX indirection table. When the device reports a single receive queue, rndis_filter_device_add() does not allocate an indirection table, accepting RSS hash key updates in this state leads to a hang.  Fix this by gating netvsc_set_rxfh() on ndc->rx_table_sz and return -EOPNOTSUPP when the table is absent. This aligns set_rxfh with the device capabilities and prevents incorrect behavior.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23011",
                                "url": "https://ubuntu.com/security/CVE-2026-23011",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: ip_gre: make ipgre_header() robust  Analog to commit db5b4e39c4e6 (\"ip6_gre: make ip6gre_header() robust\")  Over the years, syzbot found many ways to crash the kernel in ipgre_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 ipgre device.  [1] skbuff: skb_under_panic: text:ffffffff89ea3cb7 len:2030915468 put:2030915372 head:ffff888058b43000 data:ffff887fdfa6e194 tail:0x120 end:0x6c0 dev:team0  kernel BUG at net/core/skbuff.c:213 ! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 1 UID: 0 PID: 1322 Comm: kworker/1:9 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Workqueue: mld mld_ifc_work  RIP: 0010:skb_panic+0x157/0x160 net/core/skbuff.c:213 Call Trace:  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ipgre_header+0x67/0x290 net/ipv4/ip_gre.c:897   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   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   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0xad1/0x1770 kernel/workqueue.c:3340   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23001",
                                "url": "https://ubuntu.com/security/CVE-2026-23001",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix possible UAF in macvlan_forward_source()  Add RCU protection on (struct macvlan_source_entry)->vlan.  Whenever macvlan_hash_del_source() is called, we must clear entry->vlan pointer before RCU grace period starts.  This allows macvlan_forward_source() to skip over entries queued for freeing.  Note that macvlan_dev are already RCU protected, as they are embedded in a standard netdev (netdev_priv(ndev)).  https: //lore.kernel.org/netdev/695fb1e8.050a0220.1c677c.039f.GAE@google.com/T/#u",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23003",
                                "url": "https://ubuntu.com/security/CVE-2026-23003",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv()  Blamed commit did not take care of VLAN encapsulations as spotted by syzbot [1].  Use skb_vlan_inet_prepare() instead of pskb_inet_may_pull().  [1]  BUG: KMSAN: uninit-value in __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]  BUG: KMSAN: uninit-value in INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]  BUG: KMSAN: uninit-value in IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]   INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]   IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   ip6ip6_dscp_ecn_decapsulate+0x16f/0x1b0 net/ipv6/ip6_tunnel.c:729   __ip6_tnl_rcv+0xed9/0x1b50 net/ipv6/ip6_tunnel.c:860   ip6_tnl_rcv+0xc3/0x100 net/ipv6/ip6_tunnel.c:903  gre_rcv+0x1529/0x1b90 net/ipv6/ip6_gre.c:-1   ip6_protocol_deliver_rcu+0x1c89/0x2c60 net/ipv6/ip6_input.c:438   ip6_input_finish+0x1f4/0x4a0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x9c/0x330 net/ipv6/ip6_input.c:500   ip6_mc_input+0x7ca/0xc10 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x958/0x990 net/ipv6/ip6_input.c:79   NF_HOOK include/linux/netfilter.h:318 [inline]   ipv6_rcv+0xf1/0x3c0 net/ipv6/ip6_input.c:311   __netif_receive_skb_one_core net/core/dev.c:6139 [inline]   __netif_receive_skb+0x1df/0xac0 net/core/dev.c:6252   netif_receive_skb_internal net/core/dev.c:6338 [inline]   netif_receive_skb+0x57/0x630 net/core/dev.c:6397   tun_rx_batched+0x1df/0x980 drivers/net/tun.c:1485   tun_get_user+0x5c0e/0x6c60 drivers/net/tun.c:1953   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Uninit was created at:   slab_post_alloc_hook mm/slub.c:4960 [inline]   slab_alloc_node mm/slub.c:5263 [inline]   kmem_cache_alloc_node_noprof+0x9e7/0x17a0 mm/slub.c:5315   kmalloc_reserve+0x13c/0x4b0 net/core/skbuff.c:586   __alloc_skb+0x805/0x1040 net/core/skbuff.c:690   alloc_skb include/linux/skbuff.h:1383 [inline]   alloc_skb_with_frags+0xc5/0xa60 net/core/skbuff.c:6712   sock_alloc_send_pskb+0xacc/0xc60 net/core/sock.c:2995   tun_alloc_skb drivers/net/tun.c:1461 [inline]   tun_get_user+0x1142/0x6c60 drivers/net/tun.c:1794   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  CPU: 0 UID: 0 PID: 6465 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(none) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23141",
                                "url": "https://ubuntu.com/security/CVE-2026-23141",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: send: check for inline extents in range_is_hole_in_parent()  Before accessing the disk_bytenr field of a file extent item we need to check if we are dealing with an inline extent. This is because for inline extents their data starts at the offset of the disk_bytenr field. So accessing the disk_bytenr means we are accessing inline data or in case the inline data is less than 8 bytes we can actually cause an invalid memory access if this inline extent item is the first item in the leaf or access metadata from other items.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22998",
                                "url": "https://ubuntu.com/security/CVE-2026-22998",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec  Commit efa56305908b (\"nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length\") added ttag bounds checking and data_offset validation in nvmet_tcp_handle_h2c_data_pdu(), but it did not validate whether the command's data structures (cmd->req.sg and cmd->iov) have been properly initialized before processing H2C_DATA PDUs.  The nvmet_tcp_build_pdu_iovec() function dereferences these pointers without NULL checks. This can be triggered by sending H2C_DATA PDU immediately after the ICREQ/ICRESP handshake, before sending a CONNECT command or NVMe write command.  Attack vectors that trigger NULL pointer dereferences: 1. H2C_DATA PDU sent before CONNECT → both pointers NULL 2. H2C_DATA PDU for READ command → cmd->req.sg allocated, cmd->iov NULL 3. H2C_DATA PDU for uninitialized command slot → both pointers NULL  The fix validates both cmd->req.sg and cmd->iov before calling nvmet_tcp_build_pdu_iovec(). Both checks are required because: - Uninitialized commands: both NULL - READ commands: cmd->req.sg allocated, cmd->iov NULL - WRITE commands: both allocated",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23037",
                                "url": "https://ubuntu.com/security/CVE-2026-23037",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: etas_es58x: allow partial RX URB allocation to succeed  When es58x_alloc_rx_urbs() fails to allocate the requested number of URBs but succeeds in allocating some, it returns an error code. This causes es58x_open() to return early, skipping the cleanup label 'free_urbs', which leads to the anchored URBs being leaked.  As pointed out by maintainer Vincent Mailhol, the driver is designed to handle partial URB allocation gracefully. Therefore, partial allocation should not be treated as a fatal error.  Modify es58x_alloc_rx_urbs() to return 0 if at least one URB has been allocated, restoring the intended behavior and preventing the leak in es58x_open().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23038",
                                "url": "https://ubuntu.com/security/CVE-2026-23038",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node()  In nfs4_ff_alloc_deviceid_node(), if the allocation for ds_versions fails, the function jumps to the out_scratch label without freeing the already allocated dsaddrs list, leading to a memory leak.  Fix this by jumping to the out_err_drain_dsaddrs label, which properly frees the dsaddrs list before cleaning up other resources.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71184",
                                "url": "https://ubuntu.com/security/CVE-2025-71184",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix NULL dereference on root when tracing inode eviction  When evicting an inode the first thing we do is to setup tracing for it, which implies fetching the root's id. But in btrfs_evict_inode() the root might be NULL, as implied in the next check that we do in btrfs_evict_inode().  Hence, we either should set the ->root_objectid to 0 in case the root is NULL, or we move tracing setup after checking that the root is not NULL. Setting the rootid to 0 at least gives us the possibility to trace this call even in the case when the root is NULL, so that's the solution taken here.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "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-2025-71160",
                                "url": "https://ubuntu.com/security/CVE-2025-71160",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: avoid chain re-validation if possible  Hamza Mahfooz reports cpu soft lock-ups in nft_chain_validate():   watchdog: BUG: soft lockup - CPU#1 stuck for 27s! [iptables-nft-re:37547] [..]  RIP: 0010:nft_chain_validate+0xcb/0x110 [nf_tables] [..]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_table_validate+0x6b/0xb0 [nf_tables]   nf_tables_validate+0x8b/0xa0 [nf_tables]   nf_tables_commit+0x1df/0x1eb0 [nf_tables] [..]  Currently nf_tables will traverse the entire table (chain graph), starting from the entry points (base chains), exploring all possible paths (chain jumps).  But there are cases where we could avoid revalidation.  Consider: 1  input -> j2 -> j3 2  input -> j2 -> j3 3  input -> j1 -> j2 -> j3  Then the second rule does not need to revalidate j2, and, by extension j3, because this was already checked during validation of the first rule. We need to validate it only for rule 3.  This is needed because chain loop detection also ensures we do not exceed the jump stack: Just because we know that j2 is cycle free, its last jump might now exceed the allowed stack size.  We also need to update all reachable chains with the new largest observed call depth.  Care has to be taken to revalidate even if the chain depth won't be an issue: chain validation also ensures that expressions are not called from invalid base chains.  For example, the masquerade expression can only be called from NAT postrouting base chains.  Therefore we also need to keep record of the base chain context (type, hooknum) and revalidate if the chain becomes reachable from a different hook location.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22994",
                                "url": "https://ubuntu.com/security/CVE-2026-22994",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix reference count leak in bpf_prog_test_run_xdp()  syzbot is reporting    unregister_netdevice: waiting for sit0 to become free. Usage count = 2  problem. A debug printk() patch found that a refcount is obtained at xdp_convert_md_to_buff() from bpf_prog_test_run_xdp().  According to commit ec94670fcb3b (\"bpf: Support specifying ingress via xdp_md context in BPF_PROG_TEST_RUN\"), the refcount obtained by xdp_convert_md_to_buff() will be released by xdp_convert_buff_to_md().  Therefore, we can consider that the error handling path introduced by commit 1c1949982524 (\"bpf: introduce frags support to bpf_prog_test_run_xdp()\") forgot to call xdp_convert_buff_to_md().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23140",
                                "url": "https://ubuntu.com/security/CVE-2026-23140",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf, test_run: Subtract size of xdp_frame from allowed metadata size  The xdp_frame structure takes up part of the XDP frame headroom, limiting the size of the metadata. However, in bpf_test_run, we don't take this into account, which makes it possible for userspace to supply a metadata size that is too large (taking up the entire headroom).  If userspace supplies such a large metadata size in live packet mode, the xdp_update_frame_from_buff() call in xdp_test_run_init_page() call will fail, after which packet transmission proceeds with an uninitialised frame structure, leading to the usual Bad Stuff.  The commit in the Fixes tag fixed a related bug where the second check in xdp_update_frame_from_buff() could fail, but did not add any additional constraints on the metadata size. Complete the fix by adding an additional check on the metadata size. Reorder the checks slightly to make the logic clearer and add a comment.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71192",
                                "url": "https://ubuntu.com/security/CVE-2025-71192",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ac97: fix a double free in snd_ac97_controller_register()  If ac97_add_adapter() fails, put_device() is the correct way to drop the device reference. kfree() is not required. Add kfree() if idr_alloc() fails and in ac97_adapter_release() to do the cleanup.  Found by code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 16:16: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-22979",
                                "url": "https://ubuntu.com/security/CVE-2026-22979",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix memory leak in skb_segment_list for GRO packets  When skb_segment_list() is called during packet forwarding, it handles packets that were aggregated by the GRO engine.  Historically, the segmentation logic in skb_segment_list assumes that individual segments are split from a parent SKB and may need to carry their own socket memory accounting. Accordingly, the code transfers truesize from the parent to the newly created segments.  Prior to commit ed4cccef64c1 (\"gro: fix ownership transfer\"), this truesize subtraction in skb_segment_list() was valid because fragments still carry a reference to the original socket.  However, commit ed4cccef64c1 (\"gro: fix ownership transfer\") changed this behavior by ensuring that fraglist entries are explicitly orphaned (skb->sk = NULL) to prevent illegal orphaning later in the stack. This change meant that the entire socket memory charge remained with the head SKB, but the corresponding accounting logic in skb_segment_list() was never updated.  As a result, the current code unconditionally adds each fragment's truesize to delta_truesize and subtracts it from the parent SKB. Since the fragments are no longer charged to the socket, this subtraction results in an effective under-count of memory when the head is freed. This causes sk_wmem_alloc to remain non-zero, preventing socket destruction and leading to a persistent memory leak.  The leak can be observed via KMEMLEAK when tearing down the networking environment:  unreferenced object 0xffff8881e6eb9100 (size 2048):   comm \"ping\", pid 6720, jiffies 4295492526   backtrace:     kmem_cache_alloc_noprof+0x5c6/0x800     sk_prot_alloc+0x5b/0x220     sk_alloc+0x35/0xa00     inet6_create.part.0+0x303/0x10d0     __sock_create+0x248/0x640     __sys_socket+0x11b/0x1d0  Since skb_segment_list() is exclusively used for SKB_GSO_FRAGLIST packets constructed by GRO, the truesize adjustment is removed.  The call to skb_release_head_state() must be preserved. As documented in commit cf673ed0e057 (\"net: fix fraglist segmentation reference count leak\"), it is still required to correctly drop references to SKB extensions that may be overwritten during __copy_skb_header().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15: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-2026-23139",
                                "url": "https://ubuntu.com/security/CVE-2026-23139",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_conncount: update last_gc only when GC has been performed  Currently last_gc is being updated everytime a new connection is tracked, that means that it is updated even if a GC wasn't performed. With a sufficiently high packet rate, it is possible to always bypass the GC, causing the list to grow infinitely.  Update the last_gc value only when a GC has been actually performed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40149",
                                "url": "https://ubuntu.com/security/CVE-2025-40149",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock().  get_netdev_for_sock() is called during setsockopt(), so not under RCU.  Using sk_dst_get(sk)->dev could trigger UAF.  Let's use __sk_dst_get() and dst_dev_rcu().  Note that the only ->ndo_sk_get_lower_dev() user is bond_sk_get_lower_dev(), which uses RCU.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-12 11:15: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-2026-23047",
                                "url": "https://ubuntu.com/security/CVE-2026-23047",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make calc_target() set t->paused, not just clear it  Currently calc_target() clears t->paused if the request shouldn't be paused anymore, but doesn't ever set t->paused even though it's able to determine when the request should be paused.  Setting t->paused is left to __submit_request() which is fine for regular requests but doesn't work for linger requests -- since __submit_request() doesn't operate on linger requests, there is nowhere for lreq->t.paused to be set. One consequence of this is that watches don't get reestablished on paused -> unpaused transitions in cases where requests have been paused long enough for the (paused) unwatch request to time out and for the subsequent (re)watch request to enter the paused state.  On top of the watch not getting reestablished, rbd_reregister_watch() gets stuck with rbd_dev->watch_mutex held:    rbd_register_watch     __rbd_register_watch       ceph_osdc_watch         linger_reg_commit_wait  It's waiting for lreq->reg_commit_wait to be completed, but for that to happen the respective request needs to end up on need_resend_linger list and be kicked when requests are unpaused.  There is no chance for that if the request in question is never marked paused in the first place.  The fact that rbd_dev->watch_mutex remains taken out forever then prevents the image from getting unmapped -- \"rbd unmap\" would inevitably hang in D state on an attempt to grab the mutex.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23136",
                                "url": "https://ubuntu.com/security/CVE-2026-23136",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: reset sparse-read state in osd_fault()  When a fault occurs, the connection is abandoned, reestablished, and any pending operations are retried. The OSD client tracks the progress of a sparse-read reply using a separate state machine, largely independent of the messenger's state.  If a connection is lost mid-payload or the sparse-read state machine returns an error, the sparse-read state is not reset. The OSD client will then interpret the beginning of a new reply as the continuation of the old one. If this makes the sparse-read machinery enter a failure state, it may never recover, producing loops like:    libceph:  [0] got 0 extents   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read  Therefore, reset the sparse-read state in osd_fault(), ensuring retries start from a clean state.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15: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": "high",
                                "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-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-2025-71183",
                                "url": "https://ubuntu.com/security/CVE-2025-71183",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: always detect conflicting inodes when logging inode refs  After rename exchanging (either with the rename exchange operation or regular renames in multiple non-atomic steps) two inodes and at least one of them is a directory, we can end up with a log tree that contains only of the inodes and after a power failure that can result in an attempt to delete the other inode when it should not because it was not deleted before the power failure. In some case that delete attempt fails when the target inode is a directory that contains a subvolume inside it, since the log replay code is not prepared to deal with directory entries that point to root items (only inode items).  1) We have directories \"dir1\" (inode A) and \"dir2\" (inode B) under the    same parent directory;  2) We have a file (inode C) under directory \"dir1\" (inode A);  3) We have a subvolume inside directory \"dir2\" (inode B);  4) All these inodes were persisted in a past transaction and we are    currently at transaction N;  5) We rename the file (inode C), so at btrfs_log_new_name() we update    inode C's last_unlink_trans to N;  6) We get a rename exchange for \"dir1\" (inode A) and \"dir2\" (inode B),    so after the exchange \"dir1\" is inode B and \"dir2\" is inode A.    During the rename exchange we call btrfs_log_new_name() for inodes    A and B, but because they are directories, we don't update their    last_unlink_trans to N;  7) An fsync against the file (inode C) is done, and because its inode    has a last_unlink_trans with a value of N we log its parent directory    (inode A) (through btrfs_log_all_parents(), called from    btrfs_log_inode_parent()).  8) So we end up with inode B not logged, which now has the old name    of inode A. At copy_inode_items_to_log(), when logging inode A, we    did not check if we had any conflicting inode to log because inode    A has a generation lower than the current transaction (created in    a past transaction);  9) After a power failure, when replaying the log tree, since we find that    inode A has a new name that conflicts with the name of inode B in the    fs tree, we attempt to delete inode B... this is wrong since that    directory was never deleted before the power failure, and because there    is a subvolume inside that directory, attempting to delete it will fail    since replay_dir_deletes() and btrfs_unlink_inode() are not prepared    to deal with dir items that point to roots instead of inodes.     When that happens the mount fails and we get a stack trace like the    following:     [87.2314] BTRFS info (device dm-0): start tree-log replay    [87.2318] BTRFS critical (device dm-0): failed to delete reference to subvol, root 5 inode 256 parent 259    [87.2332] ------------[ cut here ]------------    [87.2338] BTRFS: Transaction aborted (error -2)    [87.2346] WARNING: CPU: 1 PID: 638968 at fs/btrfs/inode.c:4345 __btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2368] Modules linked in: btrfs loop dm_thin_pool (...)    [87.2470] CPU: 1 UID: 0 PID: 638968 Comm: mount Tainted: G        W          6.18.0-rc7-btrfs-next-218+ #2 PREEMPT(full)    [87.2489] Tainted: [W]=WARN    [87.2494] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014    [87.2514] RIP: 0010:__btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2538] Code: c0 89 04 24 (...)    [87.2568] RSP: 0018:ffffc0e741f4b9b8 EFLAGS: 00010286    [87.2574] RAX: 0000000000000000 RBX: ffff9d3ec8a6cf60 RCX: 0000000000000000    [87.2582] RDX: 0000000000000002 RSI: ffffffff84ab45a1 RDI: 00000000ffffffff    [87.2591] RBP: ffff9d3ec8a6ef20 R08: 0000000000000000 R09: ffffc0e741f4b840    [87.2599] R10: ffff9d45dc1fffa8 R11: 0000000000000003 R12: ffff9d3ee26d77e0    [87.2608] R13: ffffc0e741f4ba98 R14: ffff9d4458040800 R15: ffff9d44b6b7ca10    [87.2618] FS:  00007f7b9603a840(0000) GS:ffff9d4658982000(0000) knlGS:0000000000000000    [87. ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16: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-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-2024-50004",
                                "url": "https://ubuntu.com/security/CVE-2024-50004",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: update DML2 policy EnhancedPrefetchScheduleAccelerationFinal DCN35  [WHY & HOW] Mismatch in DCN35 DML2 cause bw validation failed to acquire unexpected DPP pipe to cause grey screen and system hang. Remove EnhancedPrefetchScheduleAccelerationFinal value override to match HW spec.  (cherry picked from commit 9dad21f910fcea2bdcff4af46159101d7f9cd8ba)",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-10-21 19:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23274",
                                "url": "https://ubuntu.com/security/CVE-2026-23274",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels  IDLETIMER revision 0 rules reuse existing timers by label and always call mod_timer() on timer->timer.  If the label was created first by revision 1 with XT_IDLETIMER_ALARM, the object uses alarm timer semantics and timer->timer is never initialized. Reusing that object from revision 0 causes mod_timer() on an uninitialized timer_list, triggering debugobjects warnings and possible panic when panic_on_warn=1.  Fix this by rejecting revision 0 rule insertion when an existing timer with the same label is of ALARM type.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-20 09:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23351",
                                "url": "https://ubuntu.com/security/CVE-2026-23351",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: split gc into unlink and reclaim phase  Yiming Qian reports Use-after-free in the pipapo set type:   Under a large number of expired elements, commit-time GC can run for a very   long time in a non-preemptible context, triggering soft lockup warnings and   RCU stall reports (local denial of service).  We must split GC in an unlink and a reclaim phase.  We cannot queue elements for freeing until pointers have been swapped. Expired elements are still exposed to both the packet path and userspace dumpers via the live copy of the data structure.  call_rcu() does not protect us: dump operations or element lookups starting after call_rcu has fired can still observe the free'd element, unless the commit phase has made enough progress to swap the clone and live pointers before any new reader has picked up the old version.  This a similar approach as done recently for the rbtree backend in commit 35f83a75529a (\"netfilter: nft_set_rbtree: don't gc elements on insert\").",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-25 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23231",
                                "url": "https://ubuntu.com/security/CVE-2026-23231",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-03-04 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23209",
                                "url": "https://ubuntu.com/security/CVE-2026-23209",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23112",
                                "url": "https://ubuntu.com/security/CVE-2026-23112",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-114.114~22.04.1 -proposed tracker (LP: #2147981)",
                            "",
                            "  [ Ubuntu: 6.8.0-114.114 ]",
                            "",
                            "  * noble/linux: 6.8.0-114.114 -proposed tracker (LP: #2148397)",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465)",
                            "    - SAUCE: Fix skb_vlan_inet_prepare() usage",
                            "",
                            "  [ Ubuntu: 6.8.0-112.112 ]",
                            "",
                            "  * noble/linux: 6.8.0-112.112 -proposed tracker (LP: #2147982)",
                            "  * Canonical Kmod 2025 key rotation (LP: #2147447)",
                            "    - [Packaging] ubuntu-compatible-signing -- make Ubuntu-Compatible-Signing",
                            "      extensible",
                            "    - [Packaging] ubuntu-compatible-signing -- allow consumption of positive",
                            "      certs",
                            "    - [Packaging] ubuntu-compatible-signing -- report the livepatch:2025 key",
                            "    - [Config] prepare for Canonical Kmod key rotation",
                            "    - [Packaging] ubuntu-compatible-signing -- report the kmod:2025 key",
                            "  * Remount ext4 to readonly with data=journal mode may dump call trace",
                            "    (LP: #2147400)",
                            "    - ext4: fix stale xarray tags after writeback",
                            "  * Compile error due to nonexistent struct member with CONFIG_PCI_EPF_TEST",
                            "    (LP: #2147065)",
                            "    - SAUCE: Revert \"PCI: endpoint: pci-epf-test: Limit PCIe BAR size for",
                            "      fixed BARs\"",
                            "  * BUG: kernel NULL pointer dereference in amdgpu (LP: #2144577)",
                            "    - drm/amdgpu: validate the flush_gpu_tlb_pasid()",
                            "    - drm/amdgpu: Fix validating flush_gpu_tlb_pasid()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841)",
                            "    - x86/kfence: fix booting on 32bit non-PAE systems",
                            "    - platform/x86: intel_telemetry: Fix swapped arrays in PSS output",
                            "    - pmdomain: qcom: rpmpd: fix off-by-one error in clamping to the highest",
                            "      state",
                            "    - pmdomain: imx8mp-blk-ctrl: Keep gpc power domain on for system wakeup",
                            "    - pmdomain: imx: gpcv2: Fix the imx8mm gpu hang due to wrong adb400 reset",
                            "    - pmdomain: imx8mp-blk-ctrl: Keep usb phy power domain on for system",
                            "      wakeup",
                            "    - rbd: check for EOD after exclusive lock is ensured to be held",
                            "    - ARM: 9468/1: fix memset64() on big-endian",
                            "    - hfsplus: fix slab-out-of-bounds read in hfsplus_uni2asc()",
                            "    - binder: fix BR_FROZEN_REPLY error log",
                            "    - binderfs: fix ida_alloc_max() upper bound",
                            "    - KVM: selftests: Add -U_FORTIFY_SOURCE to avoid some unpredictable test",
                            "      failures",
                            "    - tracing: Fix ftrace event field alignments",
                            "    - net: usb: sr9700: support devices with virtual driver CD",
                            "    - block,bfq: fix aux stat accumulation destination",
                            "    - LoongArch: Set correct protection_map[] for VM_NONE/VM_SHARED",
                            "    - HID: intel-ish-hid: Update ishtp bus match to support device ID table",
                            "    - HID: multitouch: add MT_QUIRK_STICKY_FINGERS to MT_CLS_VTL",
                            "    - HID: intel-ish-hid: Reset enum_devices_done before enumeration",
                            "    - HID: playstation: Center initial joystick axes to prevent spurious",
                            "      events",
                            "    - ALSA: hda/realtek: add HP Laptop 15s-eq1xxx mute LED quirk",
                            "    - netfilter: replace -EEXIST with -EBUSY",
                            "    - HID: quirks: Add another Chicony HP 5MP Cameras to hid_ignore_list",
                            "    - HID: Apply quirk HID_QUIRK_ALWAYS_POLL to Edifier QR30 (2d99:a101)",
                            "    - ring-buffer: Avoid softlockup in ring_buffer_resize() during memory free",
                            "    - wifi: mac80211: collect station statistics earlier when disconnect",
                            "    - ASoC: davinci-evm: Fix reference leak in davinci_evm_probe",
                            "    - ASoC: amd: yc: Fix microphone on ASUS M6500RE",
                            "    - ASoC: tlv320adcx140: Propagate error codes during probe",
                            "    - spi: hisi-kunpeng: Fixed the wrong debugfs node name in hisi_spi debugfs",
                            "      initialization",
                            "    - wifi: cfg80211: Fix bitrate calculation overflow for HE rates",
                            "    - ALSA: hda/realtek: Fix headset mic for TongFang X6AR55xU",
                            "    - wifi: mac80211: correctly check if CSA is active",
                            "    - wifi: mac80211: don't increment crypto_tx_tailroom_needed_cnt twice",
                            "    - platform/x86: intel_telemetry: Fix PSS event register mask",
                            "    - platform/x86: hp-bioscfg: Skip empty attribute names",
                            "    - net: add skb_header_pointer_careful() helper",
                            "    - net: don't touch dev->stats in BPF redirect paths",
                            "    - tipc: use kfree_sensitive() for session key material",
                            "    - net: ethernet: adi: adin1110: Check return value of",
                            "      devm_gpiod_get_optional() in adin1110_check_spi()",
                            "    - drm/mgag200: fix mgag200_bmc_stop_scanout()",
                            "    - hwmon: (occ) Mark occ_init_attribute() as __printf",
                            "    - ipv6: Fix ECMP sibling count mismatch when clearing RTF_ADDRCONF",
                            "    - gve: Correct ethtool rx_dropped calculation",
                            "    - spi: tegra210-quad: Return IRQ_HANDLED when timeout already processed",
                            "      transfer",
                            "    - spi: tegra210-quad: Move curr_xfer read inside spinlock",
                            "    - spi: tegra210-quad: Protect curr_xfer assignment in",
                            "      tegra_qspi_setup_transfer_one",
                            "    - spi: tegra210-quad: Protect curr_xfer in tegra_qspi_combined_seq_xfer",
                            "    - spi: tegra210-quad: Protect curr_xfer clearing in",
                            "      tegra_qspi_non_combined_seq_xfer",
                            "    - spi: tegra114: Preserve SPI mode bits in def_command1_reg",
                            "    - ALSA: hda/realtek: Really fix headset mic for TongFang X6AR55xU.",
                            "    - PCI/ERR: Ensure error recoverability at all times",
                            "    - ALSA: hda/realtek: Add quirk for Acer Nitro AN517-55",
                            "    - PCI: qcom: Remove ASPM L0s support for MSM8996 SoC",
                            "    - HID: logitech: add HID++ support for Logitech MX Anywhere 3S",
                            "    - ALSA: hda/realtek: ALC269 fixup for Lenovo Yoga Book 9i 13IRU8 audio",
                            "    - net: phy: add phy_interface_weight()",
                            "    - net: phy: add phy_interface_copy()",
                            "    - net: sfp: pre-parse the module support",
                            "    - net: sfp: enhance quirk for Fibrestore 2.5G copper SFP module",
                            "    - net: sfp: convert sfp quirks to modify struct sfp_module_support",
                            "    - net: sfp: Fix quirk for Ubiquiti U-Fiber Instant SFP module",
                            "    - drm/amd/display: fix wrong color value mapping on MCM shaper LUT",
                            "    - drm/xe/query: Fix topology query pointer advance",
                            "    - ALSA: usb-audio: fix broken logic in snd_audigy2nx_led_update()",
                            "    - gpiolib-acpi: Update file references in the Documentation and",
                            "      MAINTAINERS",
                            "    - Upstream stable to v6.6.124, v6.12.70",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23214",
                            "    - btrfs: reject new transactions if the fs is fully read-only",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23213",
                            "    - drm/amd/pm: Disable MMIO access during SMU Mode 1 reset",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71225",
                            "    - md: suspend array while updating raid_disks via sysfs",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-68823",
                            "    - ublk: fix deadlock when reading partition table",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23191",
                            "    - ALSA: aloop: Fix racy access at PCM trigger",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23215",
                            "    - x86/vmware: Fix hypercall clobbers",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23182",
                            "    - spi: tegra: Fix a memory leak in tegra_slink_probe()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23190",
                            "    - ASoC: amd: fix memory leak in acp3x pdm dma ops",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23254",
                            "    - net: gro: fix outer network offset",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23180",
                            "    - dpaa2-switch: add bounds check for if_id in IRQ handler",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23256",
                            "    - net: liquidio: Fix off-by-one error in VF setup_nic_devices() cleanup",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23257",
                            "    - net: liquidio: Fix off-by-one error in PF setup_nic_devices() cleanup",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23258",
                            "    - net: liquidio: Initialize netdev pointer before queue setup",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23206",
                            "    - dpaa2-switch: prevent ZERO_SIZE_PTR dereference when num_ifs is zero",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23204",
                            "    - net/sched: cls_u32: use skb_header_pointer_careful()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23205",
                            "    - smb/client: fix memory leak in smb2_open_file()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23176",
                            "    - platform/x86: toshiba_haps: Fix memory leaks in add/remove routines",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23216",
                            "    - scsi: target: iscsi: Fix use-after-free in iscsit_dec_conn_usage_count()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23193",
                            "    - scsi: target: iscsi: Fix use-after-free in",
                            "      iscsit_dec_session_usage_count()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23260",
                            "    - regmap: maple: free entry on mas_store_gfp() failure",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23179",
                            "    - nvmet-tcp: fixup hang in nvmet_tcp_listen_data_ready()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23261",
                            "    - nvme-fc: release admin tagset if init fails",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23178",
                            "    - HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71268",
                            "    - btrfs: fix reservation leak in some error paths when inserting inline",
                            "      extent",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71270",
                            "    - LoongArch: Enable exception fixup for specific ADE subcode",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71220",
                            "    - smb/server: call ksmbd_session_rpc_close() on error path in",
                            "      create_smb2_pipe()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71222",
                            "    - wifi: wlcore: ensure skb headroom before skb_push",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71224",
                            "    - wifi: mac80211: ocb: skip rx_no_sta when interface is not joined",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23262",
                            "    - gve: Fix stats report corruption on queue count change",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-38201",
                            "    - netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23198",
                            "    - KVM: Don't clobber irqfd routing type when deassigning irqfd",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23264",
                            "    - Revert \"drm/amd: Check if ASPM is enabled from PCIe subsystem\"",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23187",
                            "    - pmdomain: imx8m-blk-ctrl: fix out-of-range access of bc->domains",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543)",
                            "    - net/mlx5: Fix memory leak in esw_acl_ingress_lgcy_setup()",
                            "    - can: gs_usb: gs_usb_receive_bulk_callback(): fix error message",
                            "    - net: bcmasp: fix early exit leak with fixed phy",
                            "    - net: mvpp2: cls: Fix memory leak in mvpp2_ethtool_cls_rule_ins()",
                            "    - ipv6: use the right ifindex when replying to icmpv6 from localhost",
                            "    - ice: stop counting UDP csum mismatch as rx_errors",
                            "    - net/mlx5e: Report rx_discards_phy via rx_dropped",
                            "    - net/mlx5e: Account for netdev stats in ndo_get_stats64",
                            "    - net: bridge: fix static key check",
                            "    - net/mlx5e: Skip ESN replay window setup for IPsec crypto offload",
                            "    - scsi: firewire: sbp-target: Fix overflow in sbp_make_tpg()",
                            "    - ASoC: Intel: sof_es8336: fix headphone GPIO logic inversion",
                            "    - gpiolib: acpi: use BIT_ULL() for u64 mask in address space handler",
                            "    - dma/pool: distinguish between missing and exhausted atomic pools",
                            "    - pinctrl: meson: mark the GPIO controller as sleeping",
                            "    - riscv: compat: fix COMPAT_UTS_MACHINE definition",
                            "    - rust: kbuild: give `--config-path` to `rustfmt` in `.rsi` target",
                            "    - ASoC: fsl: imx-card: Do not force slot width to sample width",
                            "    - scsi: be2iscsi: Fix a memory leak in beiscsi_boot_get_sinfo()",
                            "    - ASoC: amd: yc: Add DMI quirk for Acer TravelMate P216-41-TCO",
                            "    - gpio: pca953x: mask interrupts in irq shutdown",
                            "    - scsi: qla2xxx: edif: Fix dma_free_coherent() size",
                            "    - mptcp: only reset subflow errors when propagated",
                            "    - selftests: mptcp: check no dup close events after error",
                            "    - selftests: mptcp: check subflow errors in close events",
                            "    - selftests: mptcp: join: fix local endp not being tracked",
                            "    - scripts: generate_rust_analyzer: Add compiler_builtins -> core dep",
                            "    - drm/amdgpu/soc21: fix xclk for APUs",
                            "    - drm/amdgpu/gfx10: fix wptr reset in KGQ init",
                            "    - drm/amdgpu/gfx11: fix wptr reset in KGQ init",
                            "    - mm/kfence: randomize the freelist on initialization",
                            "    - arm64/fpsimd: signal: Mandate SVE payload for streaming-mode state",
                            "    - arm64/fpsimd: signal: Consistently read FPSIMD context",
                            "    - btrfs: prevent use-after-free on page private data in",
                            "      btrfs_subpage_clear_uptodate()",
                            "    - net/sched: act_ife: convert comma to semicolon",
                            "    - pinctrl: lpass-lpi: implement .get_direction() for the GPIO driver",
                            "    - drm/msm/a6xx: fix bogus hwcg register updates",
                            "    - writeback: fix 100% CPU usage when dirtytime_expire_interval is 0",
                            "    - mptcp: avoid dup SUB_CLOSED events after disconnect",
                            "    - ksmbd: fix recursive locking in RPC handle list access",
                            "    - bpf/selftests: test_select_reuseport_kern: Remove unused header",
                            "    - can: at91_can: Fix memory leak in at91_can_probe()",
                            "    - net: phy: micrel: fix clk warning when removing the driver",
                            "    - net/mlx5: fs, Fix inverted cap check in tx flow table root disconnect",
                            "    - net/mlx5: Initialize events outside devlink lock",
                            "    - net/mlx5: Fix vhca_id access call trace use before alloc",
                            "    - bcache: fix improper use of bi_end_io",
                            "    - bcache: use bio cloning for detached device requests",
                            "    - bcache: fix I/O accounting leak in detached_dev_do_request",
                            "    - gpio: rockchip: Stop calling pinctrl for set_direction",
                            "    - mm/memory-failure: improve memory failure action_result messages",
                            "    - mm/memory-failure: fix redundant updates for already poisoned pages",
                            "    - mm/memory-failure: fix missing ->mf_stats count in hugetlb poison",
                            "    - mm/memory-failure: teach kill_accessing_process to accept hugetlb tail",
                            "      page pfn",
                            "    - gpiolib: acpi: Fix potential out-of-boundary left shift",
                            "    - rust: kbuild: support `-Cjump-tables=n` for Rust 1.93.0",
                            "    - pinctrl: qcom: sm8350-lpass-lpi: Merge with SC7280 to fix I2S2 and SWR",
                            "      TX pins",
                            "    - [Config] remove PINCTRL_SM8350_LPASS_LPI",
                            "    - Upstream stable to v6.6.123, v6.12.69",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23148",
                            "    - nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23166",
                            "    - ice: Fix NULL pointer dereference in ice_vsi_set_napi_queues",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23151",
                            "    - Bluetooth: MGMT: Fix memory leak in set_ssp_complete",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23163",
                            "    - drm/amdgpu: fix NULL pointer dereference in",
                            "      amdgpu_gmc_filter_faults_remove",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23159",
                            "    - perf: sched: Fix perf crash with new is_user_task() helper",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2024-58096",
                            "    - wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2025-40039",
                            "    - ksmbd: Fix race condition in RPC handle list access",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23093",
                            "    - ksmbd: smbd: fix dma_unmap_sg() nents",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23102",
                            "    - arm64/fpsimd: signal: Fix restoration of SVE context",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23170",
                            "    - drm/imx/tve: fix probe device leak",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23168",
                            "    - flex_proportions: make fprop_new_period() hardirq safe",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23156",
                            "    - efivarfs: fix error propagation in efivar_entry_get()",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23167",
                            "    - nfc: nci: Fix race between rfkill and nci_unregister_device().",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23173",
                            "    - net/mlx5e: TC, delete flows only for existing peers",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23150",
                            "    - nfc: llcp: Fix memleak in nfc_llcp_send_ui_frame().",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23164",
                            "    - rocker: fix memory leak in rocker_world_port_post_fini()",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23172",
                            "    - net: wwan: t7xx: fix potential skb->frags overflow in RX path",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23212",
                            "    - bonding: annotate data-races around slave->last_rx",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23160",
                            "    - octeon_ep: Fix memory leak in octep_device_setup()",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23146",
                            "    - Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work",
                            "  * CVE-2026-23394",
                            "    - af_unix: Give up GC if MSG_PEEK intervened.",
                            "  * [SRU] MIPI camera is not working after upgrading to 6.17-oem",
                            "    (LP: #2145171)",
                            "    - SAUCE: ACPI: respect items already in honor_dep before skipping",
                            "  * ADATA SU680 causes repeated SATA resets and I/O errors on Ubuntu unless",
                            "    link power management is forced to max_performance (LP: #2144060)",
                            "    - ata: libata-core: disable LPM on ADATA SU680 SSD",
                            "  *  intel_idle: add Clearwater Forest SoC support (LP: #2144006)",
                            "    - intel_idle: add Clearwater Forest SoC support",
                            "  * Noble kernel 6.8.0-108 does not compile when KASAN enabled (LP: #2144914)",
                            "    - mm/kasan: fix incorrect unpoisoning in vrealloc for KASAN",
                            "  * Generic noble linux throws warning from file tegra-i2c.c (LP: #2143152)",
                            "    - i2c: tegra: Use internal reset when reset property is not available",
                            "  * [SRU] Duplicated entries in /proc/<pid>/mountinfo (LP: #2143083)",
                            "    - namespace: fix proc mount iteration",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465)",
                            "    - firmware: imx: scu-irq: Set mu_resource_id before get handle",
                            "    - efi/cper: Fix cper_bits_to_str buffer handling and return value",
                            "    - ASoC: codecs: wsa884x: fix codec initialisation",
                            "    - xfrm: Fix inner mode lookup in tunnel mode GSO segmentation",
                            "    - net: bridge: annotate data-races around fdb->{updated,used}",
                            "    - net: update netdev_lock_{type,name}",
                            "    - vsock/test: add a final full barrier after run all tests",
                            "    - net/mlx5e: Restore destroying state bit after profile cleanup",
                            "    - btrfs: store fs_info in space_info",
                            "    - btrfs: factor out init_space_info() from create_space_info()",
                            "    - btrfs: factor out check_removing_space_info() from",
                            "      btrfs_free_block_groups()",
                            "    - btrfs: introduce btrfs_space_info sub-group",
                            "    - btrfs: fix memory leaks in create_space_info() error paths",
                            "    - selftests: drv-net: fix RPS mask handling for high CPU numbers",
                            "    - ASoC: tlv320adcx140: fix word length",
                            "    - textsearch: describe @list member in ts_ops search",
                            "    - mm, kfence: describe @slab parameter in __kfence_obj_info()",
                            "    - dmaengine: xilinx_dma: Fix uninitialized addr_width when",
                            "      \"xlnx,addrwidth\" property is missing",
                            "    - phy: fsl-imx8mq-usb: Clear the PCS_TX_SWING_FULL field before using it",
                            "    - phy: phy-snps-eusb2: refactor constructs names",
                            "    - phy: drop probe registration printks",
                            "    - phy: broadcom: ns-usb3: Fix Wvoid-pointer-to-enum-cast warning (again)",
                            "    - i2c: qcom-geni: make sure I2C hub controllers can't use SE DMA",
                            "    - HID: usbhid: paper over wrong bNumDescriptor field",
                            "    - scsi: core: Fix error handler encryption support",
                            "    - ALSA: pcm: Improve the fix for race of buffer access at PCM OSS layer",
                            "    - can: ctucanfd: fix SSP_SRC in cases when bit-rate is higher than 1 MBit.",
                            "    - x86/kaslr: Recognize all ZONE_DEVICE users as physaddr consumers",
                            "    - phy: rockchip: inno-usb2: fix communication disruption in gadget mode",
                            "    - phy: freescale: imx8m-pcie: assert phy reset during power on",
                            "    - phy: rockchip: inno-usb2: fix disconnection in gadget mode",
                            "    - phy: tegra: xusb: Explicitly configure HS_DISCON_LEVEL to 0x7",
                            "    - usb: dwc3: Check for USB4 IP_NAME",
                            "    - usb: core: add USB_QUIRK_NO_BOS for devices that hang on BOS descriptor",
                            "    - USB: OHCI/UHCI: Add soft dependencies on ehci_platform",
                            "    - USB: serial: option: add Telit LE910 MBIM composition",
                            "    - USB: serial: ftdi_sio: add support for PICAXE AXE027 cable",
                            "    - nvme-pci: disable secondary temp for Wodposit WPBSNM8",
                            "    - hrtimer: Fix softirq base check in update_needs_ipi()",
                            "    - EDAC/x38: Fix a resource leak in x38_probe1()",
                            "    - EDAC/i3200: Fix a resource leak in i3200_probe1()",
                            "    - tcpm: allow looking for role_sw device in the main node",
                            "    - x86/resctrl: Add missing resctrl initialization for Hygon",
                            "    - x86/resctrl: Fix memory bandwidth counter width for Hygon",
                            "    - mm/page_alloc: make percpu_pagelist_high_fraction reads lock-free",
                            "    - LoongArch: Fix PMU counter allocation for mixed-type event groups",
                            "    - drm/amd/display: Bump the HDMI clock to 340MHz",
                            "    - drm/amd: Clean up kfd node on surprise disconnect",
                            "    - drm/amdkfd: fix a memory leak in device_queue_manager_init()",
                            "    - drm/nouveau/disp/nv50-: Set lock_core in curs507a_prepare",
                            "    - drm/vmwgfx: Fix an error return check in vmw_compat_shader_add()",
                            "    - dmaengine: apple-admac: Add \"apple,t8103-admac\" compatible",
                            "    - dmaengine: sh: rz-dmac: Fix rz_dmac_terminate_all()",
                            "    - dmaengine: ti: dma-crossbar: fix device leak on dra7x route allocation",
                            "    - dmaengine: ti: k3-udma: fix device leak on udma lookup",
                            "    - io_uring: move local task_work in exit cancel loop",
                            "    - posix-clock: Store file pointer in struct posix_clock_context",
                            "    - ptp: Add PHC file mode checks. Allow RO adjtime() without FMODE_WRITE.",
                            "    - selftest/ptp: update ptp selftest to exercise the gettimex options",
                            "    - testptp: Add option to open PHC in readonly mode",
                            "    - arm64: dts: qcom: sc8280xp: Add missing VDD_MXC links",
                            "    - hyperv-tlfs: Change prefix of generic HV_REGISTER_* MSRs to HV_MSR_*",
                            "    - Drivers: hv: Always do Hyper-V panic notification in hv_kmsg_dump()",
                            "    - btrfs: fix missing fields in superblock backup with BLOCK_GROUP_TREE",
                            "    - dt-bindings: power: qcom,rpmpd: document the SM8750 RPMh Power Domains",
                            "    - dt-bindings: power: qcom,rpmpd: add Turbo L5 corner",
                            "    - dt-bindings: power: qcom-rpmpd: split RPMh domains definitions",
                            "    - dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO",
                            "    - pmdomain: qcom: rpmhpd: Add MXC to SC8280XP",
                            "    - ata: libata: Add cpr_log to ata_dev_print_features() early return",
                            "    - ata: libata-core: Introduce ata_dev_config_lpm()",
                            "    - ata: libata: Call ata_dev_config_lpm() for ATAPI devices",
                            "    - ata: libata: Print features also for ATAPI devices",
                            "    - ice: initialize ring_stats->syncp",
                            "    - ice: Avoid detrimental cleanup for bond during interface stop",
                            "    - igc: fix race condition in TX timestamp read for register 0",
                            "    - net: usb: dm9601: remove broken SR9700 support",
                            "    - selftests: net: fib-onlink-tests: Convert to use namespaces by default",
                            "    - can: gs_usb: gs_usb_receive_bulk_callback(): unanchor URL on",
                            "      usb_submit_urb() error",
                            "    - amd-xgbe: avoid misleading per-packet error log",
                            "    - tools: ynl: Specify --no-line-number in ynl-regen.sh.",
                            "    - veth: fix data race in veth_get_ethtool_stats",
                            "    - octeontx2: cn10k: fix RX flowid TCAM mask handling",
                            "    - serial: 8250_pci: Fix broken RS485 for F81504/508/512",
                            "    - comedi: dmm32at: serialize use of paged registers",
                            "    - w1: fix redundant counter decrement in w1_attach_slave_device()",
                            "    - Revert \"nfc/nci: Add the inconsistency check between the input data",
                            "      length and count\"",
                            "    - Input: i8042 - add quirks for MECHREVO Wujie 15X Pro",
                            "    - Input: i8042 - add quirk for ASUS Zenbook UX425QA_UM425QA",
                            "    - scsi: storvsc: Process unsupported MODE_SENSE_10",
                            "    - arm64: dts: rockchip: remove dangerous max-link-speed from helios64",
                            "    - arm64: dts: rockchip: Fix voltage threshold for volume keys for",
                            "      Pinephone Pro",
                            "    - x86/kfence: avoid writing L1TF-vulnerable PTEs",
                            "    - comedi: Fix getting range information for subdevices 16 to 255",
                            "    - iio: adc: ad7280a: handle spi_setup() errors in probe()",
                            "    - kconfig: fix static linking of nconf",
                            "    - riscv: clocksource: Fix stimecmp update hazard on RV32",
                            "    - ALSA: usb: Increase volume range that triggers a warning",
                            "    - net: hns3: fix data race in hns3_fetch_stats",
                            "    - be2net: fix data race in be_get_new_eqd",
                            "    - net: hns3: fix wrong GENMASK() for HCLGE_FD_AD_COUNTER_NUM_M",
                            "    - net: hns3: fix the HCLGE_FD_AD_NXT_KEY error setting issue",
                            "    - usbnet: limit max_mtu based on device's hard_mtu",
                            "    - drm/amd/pm: Don't clear SI SMC table when setting power limit",
                            "    - drm/amd/pm: Workaround SI powertune issue on Radeon 430 (v2)",
                            "    - selftests: net: amt: wait longer for connection before sending packets",
                            "    - net: dsa: fix off-by-one in maximum bridge ID determination",
                            "    - octeontx2-af: Fix error handling",
                            "    - net: openvswitch: fix data race in ovs_vport_get_upcall_stats",
                            "    - vsock/test: fix seqpacket message bounds test",
                            "    - x86: make page fault handling disable interrupts properly",
                            "    - of: fix reference count leak in of_alias_scan()",
                            "    - of: platform: Use default match table for /firmware",
                            "    - iio: accel: iis328dq: fix gain values",
                            "    - iio: adc: ad9467: fix ad9434 vref mask",
                            "    - iio: chemical: scd4x: fix reported channel endianness",
                            "    - iio: dac: ad5686: add AD5695R to ad5686_chip_info_tbl",
                            "    - mmc: rtsx_pci_sdmmc: implement sdmmc_card_busy function",
                            "    - wifi: mwifiex: Fix a loop in mwifiex_update_ampdu_rxwinsize()",
                            "    - octeontx2: Fix otx2_dma_map_page() error return code",
                            "    - slimbus: core: fix runtime PM imbalance on report present",
                            "    - platform/x86: hp-bioscfg: Fix automatic module loading",
                            "    - perf/x86/intel: Do not enable BTS for guests",
                            "    - selftests/bpf: Check for timeout in perf_link test",
                            "    - mm/damon/sysfs-scheme: cleanup quotas subdirs on scheme dir setup",
                            "      failure",
                            "    - iio: core: add missing mutex_destroy in iio_dev_release()",
                            "    - iio: core: add separate lockdep class for info_exist_lock",
                            "    - mm/rmap: fix two comments related to huge_pmd_unshare()",
                            "    - arm64: dts: rockchip: remove redundant max-link-speed from nanopi-r4s",
                            "    - iio: adc: exynos_adc: fix OF populate on driver rebind",
                            "    - dmaengine: stm32: dmamux: fix OF node leak on route allocation failure",
                            "    - mm: kmsan: fix poisoning of high-order non-compound pages",
                            "    - phy: phy-rockchip-inno-usb2: Use dev_err_probe() in the probe path",
                            "    - ASoC: codecs: wsa881x: Drop unused version readout",
                            "    - ASoC: codecs: wsa881x: fix unnecessary initialisation",
                            "    - ASoC: codecs: wsa883x: fix unnecessary initialisation",
                            "    - nvme-fc: rename free_ctrl callback to match name pattern",
                            "    - nvme-pci: do not directly handle subsys reset fallout",
                            "    - nvme: fix PCIe subsystem reset controller state transition",
                            "    - net: phy: fix phy_uses_state_machine()",
                            "    - pnfs/blocklayout: Fix memory leak in bl_parse_scsi()",
                            "    - drm/vmwgfx: Merge vmw_bo_release and vmw_bo_free functions",
                            "    - ALSA: hda/cirrus_scodec_test: Fix incorrect setup of gpiochip",
                            "    - ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type",
                            "    - selftests/landlock: Fix TCP bind(AF_UNSPEC) test case",
                            "    - xfs: Fix the return value of xfs_rtcopy_summary()",
                            "    - phy: ti: gmii-sel: fix regmap leak on probe failure",
                            "    - LoongArch: dts: loongson-2k0500: Add default interrupt controller",
                            "      address cells",
                            "    - LoongArch: dts: loongson-2k1000: Add default interrupt controller",
                            "      address cells",
                            "    - LoongArch: dts: loongson-2k1000: Fix i2c-gpio node names",
                            "    - LoongArch: dts: loongson-2k2000: Add default interrupt controller",
                            "      address cells",
                            "    - HID: intel-ish-hid: Use dedicated unbound workqueues to prevent resume",
                            "      blocking",
                            "    - HID: intel-ish-hid: Fix -Wcast-function-type-strict in",
                            "      devm_ishtp_alloc_workqueue()",
                            "    - xfs: set max_agbno to allow sparse alloc of last full inode chunk",
                            "    - selftests/bpf: Test invalid narrower ctx load",
                            "    - mm/page_alloc/vmstat: simplify refresh_cpu_vm_stats change detection",
                            "    - mm/page_alloc: batch page freeing in decay_pcp_high",
                            "    - ata: libata-sata: Improve link_power_management_supported sysfs",
                            "      attribute",
                            "    - igc: Restore default Qbv schedule when changing channels",
                            "    - vsock/virtio: Coalesce only linear skb",
                            "    - platform/x86/amd: Fix memory leak in wbrf_record()",
                            "    - drm/imagination: Wait for FW trace update command completion",
                            "    - ice: Fix persistent failure in ice_get_rxfh",
                            "    - sched/fair: Fix pelt clock sync when entering idle",
                            "    - drm/nouveau: add missing DCB connector types",
                            "    - drm/nouveau: implement missing DCB connector types; gracefully handle",
                            "      unknown connectors",
                            "    - dpll: Prevent duplicate registrations",
                            "    - mei: trace: treat reg parameter as string",
                            "    - s390/ap: Fix wrong APQN fill calculation",
                            "    - net: sfp: add potron quirk to the H-COM SPP425H-GAB4 SFP+ Stick",
                            "    - gpio: cdev: Correct return code on memory allocation failure",
                            "    - dmaengine: ti: k3-udma: Enable second resource range for BCDMA and",
                            "      PKTDMA",
                            "    - exfat: fix refcount leak in exfat_find",
                            "    - accel/ivpu: Fix race condition when unbinding BOs",
                            "    - btrfs: fix racy bitfield write in btrfs_clear_space_info_full()",
                            "    - vsock/virtio: Move length check to callers of virtio_vsock_skb_rx_put()",
                            "    - vsock/virtio: Rename virtio_vsock_alloc_skb()",
                            "    - vsock/virtio: Move SKB allocation lower-bound check to callers",
                            "    - vsock/virtio: Rename virtio_vsock_skb_rx_put()",
                            "    - vhost/vsock: Allocate nonlinear SKBs for handling large receive buffers",
                            "    - vsock/virtio: Allocate nonlinear SKBs for handling large transmit",
                            "      buffers",
                            "    - net: Introduce skb_copy_datagram_from_iter_full()",
                            "    - vsock/virtio: Fix message iterator handling on transmit path",
                            "    - Upstream stable to v6.6.122, v6.12.67, v6.12.68",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-38591",
                            "    - bpf: Reject narrower access to pointer ctx fields",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23035",
                            "    - net/mlx5e: Pass netdev to mlx5e_destroy_netdev instead of priv",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22996",
                            "    - net/mlx5e: Don't store mlx5e_priv in mlx5e_dev devlink priv",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23000",
                            "    - net/mlx5e: Fix crash on profile change rollback failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23053",
                            "    - NFS: Fix a deadlock involving nfs_release_folio()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23050",
                            "    - pNFS: Fix a deadlock when returning a delegation during open()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23005",
                            "    - x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2024-58097",
                            "    - wifi: ath11k: fix RCU stall while reaping monitor destination ring",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-68365",
                            "    - fs/ntfs3: Initialize allocated memory before use",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-37926",
                            "    - ksmbd: fix use-after-free in ksmbd_session_rpc_open",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23030",
                            "    - phy: rockchip: inno-usb2: Fix a double free bug in",
                            "      rockchip_usb2phy_probe()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23025",
                            "    - mm/page_alloc: prevent pcp corruption with SMP=n",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71186",
                            "    - dmaengine: stm32: dmamux: fix device leak on route allocation",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23078",
                            "    - ALSA: scarlett2: Fix buffer overflow in config retrieval",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23142",
                            "    - mm/damon/sysfs-scheme: cleanup access_pattern subdirs on scheme dir",
                            "      setup failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23075",
                            "    - can: esd_usb: esd_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-68725",
                            "    - bpf: Do not let BPF test infra emit invalid GSO types to stack",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23097",
                            "    - migrate: correct lock ordering for hugetlb file folios",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23108",
                            "    - can: usb_8dev: usb_8dev_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23080",
                            "    - can: mcba_usb: mcba_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23061",
                            "    - can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23058",
                            "    - can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23085",
                            "    - irqchip/gic-v3-its: Avoid truncating memory addresses",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23116",
                            "    - pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23098",
                            "    - netrom: fix double-free in nr_route_frame()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23063",
                            "    - uacce: ensure safe queue release with state management",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23056",
                            "    - uacce: implement mremap in uacce_vm_ops to return -EPERM",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23094",
                            "    - uacce: fix isolate sysfs check condition",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23096",
                            "    - uacce: fix cdev handling in the cleanup path",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23091",
                            "    - intel_th: fix device leak on output open()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23088",
                            "    - tracing: Fix crash on synthetic stacktrace field usage",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23090",
                            "    - slimbus: core: fix device reference leak on report present",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23128",
                            "    - arm64: Set __nocfi on swsusp_arch_resume()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23107",
                            "    - arm64/fpsimd: signal: Allocate SSVE storage when restoring ZA",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23073",
                            "    - wifi: rsi: Fix memory corruption due to not set vif driver data size",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23135",
                            "    - wifi: ath12k: fix dma_free_coherent() pointer",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23133",
                            "    - wifi: ath10k: fix dma_free_coherent() pointer",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71200",
                            "    - mmc: sdhci-of-dwcmshc: Prevent illegal clock reduction in HS200/HS400",
                            "      mode",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23089",
                            "    - ALSA: usb-audio: Fix use-after-free in snd_usb_mixer_free()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23076",
                            "    - ALSA: ctxfi: Fix potential OOB access in audio mixer handling",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71199",
                            "    - iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc",
                            "      driver",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23101",
                            "    - leds: led-class: Only Add LED to leds_list when it is fully ready",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23064",
                            "    - net/sched: act_ife: avoid possible NULL deref",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23086",
                            "    - vsock/virtio: cap TX credit to local buffer size",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23069",
                            "    - vsock/virtio: fix potential underflow in virtio_transport_get_credit()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23119",
                            "    - bonding: provide a net pointer to __skb_flow_dissect()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23084",
                            "    - be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23124",
                            "    - ipv6: annotate data-race in ndisc_router_discovery()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23121",
                            "    - mISDN: annotate data-race around dev->work",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23126",
                            "    - netdevsim: fix a race issue related to the operation on bpf_bound_progs",
                            "      list",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23059",
                            "    - scsi: qla2xxx: Sanitize payload size to prevent member overflow",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23110",
                            "    - scsi: core: Wake up the error handler when final completions race",
                            "      against each other",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23071",
                            "    - regmap: Fix race condition in hwspinlock irqsave routine",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23068",
                            "    - spi: spi-sprd-adi: Fix double free in probe error path",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23123",
                            "    - interconnect: debugfs: initialize src_node and dst_node to empty strings",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71198",
                            "    - iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event",
                            "      detection",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23113",
                            "    - io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23062",
                            "    - platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23131",
                            "    - platform/x86: hp-bioscfg: Fix kobject warnings for empty attribute names",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23087",
                            "    - scsi: xen: scsiback: Fix potential memory leak in scsiback_remove()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71197",
                            "    - w1: therm: Fix off-by-one buffer overflow in alarms_store",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23105",
                            "    - net/sched: qfq: Use cl_is_active to determine whether class is active in",
                            "      qfq_rm_from_ag",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23103",
                            "    - ipvlan: Make the addrs_lock be per port",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23120",
                            "    - l2tp: avoid one data-race in l2tp_tunnel_del_work()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23083",
                            "    - fou: Don't allow 0 for FOU_ATTR_IPPROTO.",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23095",
                            "    - gue: Fix skb memleak with inner IP protocol 0.",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23125",
                            "    - sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23099",
                            "    - bonding: limit BOND_MODE_8023AD to Ethernet devices",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71194",
                            "    - btrfs: fix deadlock in wait_current_trans() due to ignored transaction",
                            "      type",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71185",
                            "    - dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23026",
                            "    - dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71188",
                            "    - dmaengine: lpc18xx-dmamux: fix device leak on route allocation",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71163",
                            "    - dmaengine: idxd: fix device leaks on compat bind and unbind",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71189",
                            "    - dmaengine: dw: dmamux: fix OF node leak on route allocation failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71190",
                            "    - dmaengine: bcm-sba-raid: fix device leak on probe",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71191",
                            "    - dmaengine: at_hdmac: fix device leak on of_dma_xlate()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23049",
                            "    - drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23144",
                            "    - mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23145",
                            "    - ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22997",
                            "    - net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session",
                            "      upon receiving the second rts",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23031",
                            "    - can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23032",
                            "    - null_blk: fix kmemleak by releasing references to fault configfs items",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23033",
                            "    - dmaengine: omap-dma: fix dma_pool resource leak in error paths",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71196",
                            "    - phy: stm32-usphyc: Fix off by one in probe()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71193",
                            "    - phy: qcom-qusb2: Fix NULL pointer dereference on early suspend",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71162",
                            "    - dmaengine: tegra-adma: Fix use-after-free",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71195",
                            "    - dmaengine: xilinx: xdma: Fix regmap max_register",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23006",
                            "    - ASoC: tlv320adcx140: fix null pointer",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22999",
                            "    - net/sched: sch_qfq: do not free existing class in qfq_change_class()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23010",
                            "    - ipv6: Fix use-after-free in inet6_addr_del().",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23054",
                            "    - net: hv_netvsc: reject RSS hash key programming without RX indirection",
                            "      table",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23011",
                            "    - ipv4: ip_gre: make ipgre_header() robust",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23001",
                            "    - macvlan: fix possible UAF in macvlan_forward_source()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23003",
                            "    - ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23141",
                            "    - btrfs: send: check for inline extents in range_is_hole_in_parent()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22998",
                            "    - nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23037",
                            "    - can: etas_es58x: allow partial RX URB allocation to succeed",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23038",
                            "    - pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058)",
                            "    - NFSD: Fix permission check for read access to executable-only files",
                            "    - 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",
                            "    - counter: 104-quad-8: Fix incorrect return value in IRQ handler",
                            "    - drm/pl111: Fix error handling in pl111_amba_probe",
                            "    - drm/radeon: Remove __counted_by from ClockInfoArray.clockInfo[]",
                            "    - gpio: rockchip: mark the GPIO controller as sleeping",
                            "    - pinctrl: qcom: lpass-lpi: mark the GPIO controller as sleeping",
                            "    - net: Add locking to protect skb->dev access in ip_output",
                            "    - nfsd: Fix a regression in nfsd_setattr()",
                            "    - nfsd: Fix NFSv3 atomicity bugs in nfsd_setattr()",
                            "    - nfsd: set security label during create operations",
                            "    - 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",
                            "    - dm-snapshot: fix 'scheduling while atomic' on real-time kernels",
                            "    - NFSv4: ensure the open stateid seqid doesn't go backwards",
                            "    - NFS: Fix up the automount fs_context to use the correct cred",
                            "    - smb/client: fix NT_STATUS_UNABLE_TO_FREE_VM value",
                            "    - smb/client: fix NT_STATUS_DEVICE_DOOR_OPEN value",
                            "    - smb/client: fix NT_STATUS_NO_DATA_DETECTED value",
                            "    - scsi: ipr: Enable/disable IRQD_NO_BALANCING during reset",
                            "    - scsi: ufs: core: Fix EH failure after W-LUN resume error",
                            "    - 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",
                            "    - arm64: dts: imx8mp: Fix LAN8740Ai PHY reference clock on DH electronics",
                            "      i.MX8M Plus DHCOM",
                            "    - netfilter: nft_synproxy: avoid possible data-race on update operation",
                            "    - gpio: pca953x: Add support for level-triggered interrupts",
                            "    - gpio: pca953x: handle short interrupt pulses on PCAL devices",
                            "    - netfilter: nf_tables: fix memory leak in nf_tables_newrule()",
                            "    - 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",
                            "    - net: wwan: iosm: Fix memory leak in ipc_mux_deinit()",
                            "    - bnxt_en: Fix potential data corruption with HW GRO/LRO",
                            "    - net: enetc: fix build warning when PAGE_SIZE is greater than 128K",
                            "    - arp: do not assume dev_hard_header() does not change skb->head",
                            "    - ALSA: ac97bus: Use guard() for mutex locks",
                            "    - NFS: trace: show TIMEDOUT instead of 0x6e",
                            "    - nfs_common: factor out nfs_errtbl and nfs_stat_to_errno",
                            "    - NFSD: Remove NFSERR_EAGAIN",
                            "    - bpf: Fix an issue in bpf_prog_test_run_xdp when page size greater than",
                            "      4K",
                            "    - bpf: Make variables in bpf_prog_test_run_xdp less confusing",
                            "    - bpf: Support specifying linear xdp packet data size for",
                            "      BPF_PROG_TEST_RUN",
                            "    - powercap: fix race condition in register_control_type()",
                            "    - powercap: fix sscanf() error return value handling",
                            "    - ALSA: usb-audio: Update for native DSD support quirks",
                            "    - ASoC: amd: yc: Add quirk for Honor MagicBook X16 2025",
                            "    - ASoC: fsl_sai: Add missing registers to cache default",
                            "    - scsi: sg: Fix occasional bogus elapsed time that exceeds timeout",
                            "    - bpf: test_run: Fix ctx leak in bpf_prog_test_run_xdp error path",
                            "    - ASoC: rockchip: Fix Wvoid-pointer-to-enum-cast warning (again)",
                            "    - btrfs: tracepoints: use btrfs_root_id() to get the id of a root",
                            "    - crypto: qat - fix duplicate restarting msg during AER error",
                            "    - netfilter: nft_set_pipapo: fix range overlap detection",
                            "    - vsock: Make accept()ed sockets use custom setsockopt()",
                            "    - btrfs: only enforce free space tree if v1 cache is required for bs < ps",
                            "      cases",
                            "    - riscv: pgtable: Cleanup useless VA_USER_XXX definitions",
                            "    - idpf: keep the netdev when a reset fails",
                            "    - net: sfp: extend Potron XGSPON quirk to cover additional EEPROM variant",
                            "    - ata: libata-core: Disable LPM on ST2000DM008-2FR102",
                            "    - drm/amd/display: Fix DP no audio issue",
                            "    - ALSA: hda/realtek: enable woofer speakers on Medion NM14LNL",
                            "    - spi: cadence-quadspi: Prevent lost complete() call during indirect read",
                            "    - ALSA: hda: intel-dsp-config: Prefer legacy driver as fallback",
                            "    - Upstream stable to v6.6.121, v6.12.66",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71184",
                            "    - btrfs: fix NULL dereference on root when tracing inode eviction",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71182",
                            "    - can: j1939: make j1939_session_activate() fail if device is no longer",
                            "      registered",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71160",
                            "    - netfilter: nf_tables: avoid chain re-validation if possible",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22994",
                            "    - bpf: Fix reference count leak in bpf_prog_test_run_xdp()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23140",
                            "    - bpf, test_run: Subtract size of xdp_frame from allowed metadata size",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71192",
                            "    - ALSA: ac97: fix a double free in snd_ac97_controller_register()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23021",
                            "    - net: usb: pegasus: fix memory leak in update_eth_regs_async()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22976",
                            "    - net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate",
                            "      in qfq_reset",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22979",
                            "    - net: fix memory leak in skb_segment_list for GRO packets",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22977",
                            "    - net: sock: fix hardened usercopy panic in sock_recv_errqueue",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22982",
                            "    - net: mscc: ocelot: Fix crash when adding interface under a lag",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23019",
                            "    - net: marvell: prestera: fix NULL dereference on devlink_alloc() failure",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23139",
                            "    - netfilter: nf_conncount: update last_gc only when GC has been performed",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-40149",
                            "    - tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock().",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-68803",
                            "    - NFSD: NFSv4 file creation neglects setting ACL",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23047",
                            "    - libceph: make calc_target() set t->paused, not just clear it",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23136",
                            "    - libceph: reset sparse-read state in osd_fault()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22992",
                            "    - libceph: return the handler error from mon_handle_auth_done()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22991",
                            "    - libceph: make free_choose_arg_map() resilient to partial allocation",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22990",
                            "    - libceph: replace overzealous BUG_ON in osdmap_apply_incremental()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22984",
                            "    - libceph: prevent potential out-of-bounds reads in handle_auth_done()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22978",
                            "    - wifi: avoid kernel-infoleak from struct iw_point",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71180",
                            "    - counter: interrupt-cnt: Drop IRQF_NO_THREAD flag",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71183",
                            "    - btrfs: always detect conflicting inodes when logging inode refs",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23020",
                            "    - net: 3com: 3c59x: fix possible null dereference in vortex_probe1()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22980",
                            "    - nfsd: provide locking for v4_end_grace",
                            "  * CVE-2024-50004",
                            "    - drm/amd/display: update DML2 policy",
                            "      EnhancedPrefetchScheduleAccelerationFinal DCN35",
                            "  * CVE-2026-23274",
                            "    - netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels",
                            "  * CVE-2026-23351",
                            "    - netfilter: nft_set_pipapo: split gc into unlink and reclaim phase",
                            "  * CVE-2026-23231",
                            "    - netfilter: nf_tables: fix use-after-free in nf_tables_addchain()",
                            "  * macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "    path (LP: #2144380) // CVE-2026-23209",
                            "    - macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "      path",
                            "  * CVE-2026-23112",
                            "    - nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-114.114~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2147981,
                            2148397,
                            2146465,
                            2147982,
                            2147447,
                            2147400,
                            2147065,
                            2144577,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2145171,
                            2144060,
                            2144006,
                            2144914,
                            2143152,
                            2143083,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144380
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 17 Apr 2026 10:49:46 +0200"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23231",
                                "url": "https://ubuntu.com/security/CVE-2026-23231",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-03-04 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23209",
                                "url": "https://ubuntu.com/security/CVE-2026-23209",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23112",
                                "url": "https://ubuntu.com/security/CVE-2026-23112",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-111.111~22.04.1 -proposed tracker (LP: #2147889)",
                            "",
                            "  [ Ubuntu: 6.8.0-111.111 ]",
                            "",
                            "  * noble/linux: 6.8.0-111.111 -proposed tracker (LP: #2147890)",
                            "  * CVE-2026-23231",
                            "    - netfilter: nf_tables: fix use-after-free in nf_tables_addchain()",
                            "  * macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "    path (LP: #2144380) // CVE-2026-23209",
                            "    - macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "      path",
                            "  * CVE-2026-23112",
                            "    - nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-111.111~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2147889,
                            2147890,
                            2144380
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Tue, 14 Apr 2026 17:47:01 +0200"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2024-36347",
                                "url": "https://ubuntu.com/security/CVE-2024-36347",
                                "cve_description": "Improper signature verification in AMD CPU ROM microcode patch loader may allow an attacker with local administrator privilege to load malicious microcode, potentially resulting in loss of integrity of x86 instruction execution, loss of confidentiality and integrity of data in x86 CPU privileged context and compromise of SMM execution environment.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-06-27 23:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40164",
                                "url": "https://ubuntu.com/security/CVE-2025-40164",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Fix using smp_processor_id() in preemptible code warnings  Syzbot reported the following warning:  BUG: using smp_processor_id() in preemptible [00000000] code: dhcpcd/2879 caller is usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331 CPU: 1 UID: 0 PID: 2879 Comm: dhcpcd Not tainted 6.15.0-rc4-syzkaller-00098-g615dca38c2ea #0 PREEMPT(voluntary) Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120  check_preemption_disabled+0xd0/0xe0 lib/smp_processor_id.c:49  usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331  usbnet_resume_rx+0x4b/0x170 drivers/net/usb/usbnet.c:708  usbnet_change_mtu+0x1be/0x220 drivers/net/usb/usbnet.c:417  __dev_set_mtu net/core/dev.c:9443 [inline]  netif_set_mtu_ext+0x369/0x5c0 net/core/dev.c:9496  netif_set_mtu+0xb0/0x160 net/core/dev.c:9520  dev_set_mtu+0xae/0x170 net/core/dev_api.c:247  dev_ifsioc+0xa31/0x18d0 net/core/dev_ioctl.c:572  dev_ioctl+0x223/0x10e0 net/core/dev_ioctl.c:821  sock_do_ioctl+0x19d/0x280 net/socket.c:1204  sock_ioctl+0x42f/0x6a0 net/socket.c:1311  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+0x190/0x200 fs/ioctl.c:892  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  For historical and portability reasons, the netif_rx() is usually run in the softirq or interrupt context, this commit therefore add local_bh_disable/enable() protection in the usbnet_resume_rx().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-12 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40325",
                                "url": "https://ubuntu.com/security/CVE-2025-40325",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid10: wait barrier before returning discard request with REQ_NOWAIT  raid10_handle_discard should wait barrier before returning a discard bio which has REQ_NOWAIT. And there is no need to print warning calltrace if a discard bio has REQ_NOWAIT flag. Quality engineer usually checks dmesg and reports error if dmesg has warning/error calltrace.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-18 07:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68206",
                                "url": "https://ubuntu.com/security/CVE-2025-68206",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_ct: add seqadj extension for natted connections  Sequence adjustment may be required for FTP traffic with PASV/EPSV modes. due to need to re-write packet payload (IP, port) on the ftp control connection. This can require changes to the TCP length and expected seq / ack_seq.  The easiest way to reproduce this issue is with PASV mode. Example ruleset: table inet ftp_nat {         ct helper ftp_helper {                 type \"ftp\" protocol tcp                 l3proto inet         }          chain prerouting {                 type filter hook prerouting priority 0; policy accept;                 tcp dport 21 ct state new ct helper set \"ftp_helper\"         } } table ip nat {         chain prerouting {                 type nat hook prerouting priority -100; policy accept;                 tcp dport 21 dnat ip prefix to ip daddr map { \t\t\t192.168.100.1 : 192.168.13.2/32 }         }          chain postrouting {                 type nat hook postrouting priority 100 ; policy accept;                 tcp sport 21 snat ip prefix to ip saddr map { \t\t\t192.168.13.2 : 192.168.100.1/32 }         } }  Note that the ftp helper gets assigned *after* the dnat setup.  The inverse (nat after helper assign) is handled by an existing check in nf_nat_setup_info() and will not show the problem.  Topoloy:   +-------------------+     +----------------------------------+  | FTP: 192.168.13.2 | <-> | NAT: 192.168.13.3, 192.168.100.1 |  +-------------------+     +----------------------------------+                                       |                          +-----------------------+                          | Client: 192.168.100.2 |                          +-----------------------+  ftp nat changes do not work as expected in this case: Connected to 192.168.100.1. [..] ftp> epsv EPSV/EPRT on IPv4 off. ftp> ls 227 Entering passive mode (192,168,100,1,209,129). 421 Service not available, remote server has closed connection.  Kernel logs: Missing nfct_seqadj_ext_add() setup call WARNING: CPU: 1 PID: 0 at net/netfilter/nf_conntrack_seqadj.c:41 [..]  __nf_nat_mangle_tcp_packet+0x100/0x160 [nf_nat]  nf_nat_ftp+0x142/0x280 [nf_nat_ftp]  help+0x4d1/0x880 [nf_conntrack_ftp]  nf_confirm+0x122/0x2e0 [nf_conntrack]  nf_hook_slow+0x3c/0xb0  ..  Fix this by adding the required extension when a conntrack helper is assigned to a connection that has a nat binding.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15: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-71135",
                                "url": "https://ubuntu.com/security/CVE-2025-71135",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid5: fix possible null-pointer dereferences in raid5_store_group_thread_cnt()  The variable mddev->private is first assigned to conf and then checked:    conf = mddev->private;   if (!conf) ...  If conf is NULL, then mddev->private is also NULL. In this case, null-pointer dereferences can occur when calling raid5_quiesce():    raid5_quiesce(mddev, true);   raid5_quiesce(mddev, false);  since mddev->private is assigned to conf again in raid5_quiesce(), and conf is dereferenced in several places, for example:    conf->quiesce = 0;   wake_up(&conf->wait_for_quiescent);  To fix this issue, the function should unlock mddev and return before invoking raid5_quiesce() when conf is NULL, following the existing pattern in raid5_change_consistency_policy().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38234",
                                "url": "https://ubuntu.com/security/CVE-2025-38234",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/rt: Fix race in push_rt_task  Overview ======== When a CPU chooses to call push_rt_task and picks a task to push to another CPU's runqueue then it will call find_lock_lowest_rq method which would take a double lock on both CPUs' runqueues. If one of the locks aren't readily available, it may lead to dropping the current runqueue lock and reacquiring both the locks at once. During this window it is possible that the task is already migrated and is running on some other CPU. These cases are already handled. However, if the task is migrated and has already been executed and another CPU is now trying to wake it up (ttwu) such that it is queued again on the runqeue (on_rq is 1) and also if the task was run by the same CPU, then the current checks will pass even though the task was migrated out and is no longer in the pushable tasks list.  Crashes ======= This bug resulted in quite a few flavors of crashes triggering kernel panics with various crash signatures such as assert failures, page faults, null pointer dereferences, and queue corruption errors all coming from scheduler itself.  Some of the crashes: -> kernel BUG at kernel/sched/rt.c:1616! BUG_ON(idx >= MAX_RT_PRIO)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? pick_next_task_rt+0x6e/0x1d0    ? do_error_trap+0x64/0xa0    ? pick_next_task_rt+0x6e/0x1d0    ? exc_invalid_op+0x4c/0x60    ? pick_next_task_rt+0x6e/0x1d0    ? asm_exc_invalid_op+0x12/0x20    ? pick_next_task_rt+0x6e/0x1d0    __schedule+0x5cb/0x790    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: kernel NULL pointer dereference, address: 00000000000000c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? __warn+0x8a/0xe0    ? exc_page_fault+0x3d6/0x520    ? asm_exc_page_fault+0x1e/0x30    ? pick_next_task_rt+0xb5/0x1d0    ? pick_next_task_rt+0x8c/0x1d0    __schedule+0x583/0x7e0    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: unable to handle page fault for address: ffff9464daea5900    kernel BUG at kernel/sched/rt.c:1861! BUG_ON(rq->cpu != task_cpu(p))  -> kernel BUG at kernel/sched/rt.c:1055! BUG_ON(!rq->nr_running)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? dequeue_top_rt_rq+0xa2/0xb0    ? do_error_trap+0x64/0xa0    ? dequeue_top_rt_rq+0xa2/0xb0    ? exc_invalid_op+0x4c/0x60    ? dequeue_top_rt_rq+0xa2/0xb0    ? asm_exc_invalid_op+0x12/0x20    ? dequeue_top_rt_rq+0xa2/0xb0    dequeue_rt_entity+0x1f/0x70    dequeue_task_rt+0x2d/0x70    __schedule+0x1a8/0x7e0    ? blk_finish_plug+0x25/0x40    schedule+0x3c/0xb0    futex_wait_queue_me+0xb6/0x120    futex_wait+0xd9/0x240    do_futex+0x344/0xa90    ? get_mm_exe_file+0x30/0x60    ? audit_exe_compare+0x58/0x70    ? audit_filter_rules.constprop.26+0x65e/0x1220    __x64_sys_futex+0x148/0x1f0    do_syscall_64+0x30/0x80    entry_SYSCALL_64_after_hwframe+0x62/0xc7  -> BUG: unable to handle page fault for address: ffff8cf3608bc2c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? spurious_kernel_fault+0x171/0x1c0    ? exc_page_fault+0x3b6/0x520    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? asm_exc_page_fault+0x1e/0x30    ? _cond_resched+0x15/0x30    ? futex_wait_queue_me+0xc8/0x120    ? futex_wait+0xd9/0x240    ? try_to_wake_up+0x1b8/0x490    ? futex_wake+0x78/0x160    ? do_futex+0xcd/0xa90    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? plist_del+0x6a/0xd0    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? dequeue_pushable_task+0x20/0x70    ? __schedule+0x382/0x7e0    ? asm_sysvec_reschedule_i ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-07-04 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68811",
                                "url": "https://ubuntu.com/security/CVE-2025-68811",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: use rc_pageoff for memcpy byte offset  svc_rdma_copy_inline_range added rc_curpage (page index) to the page base instead of the byte offset rc_pageoff. Use rc_pageoff so copies land within the current page.  Found by ZeroPath (https://zeropath.com)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68810",
                                "url": "https://ubuntu.com/security/CVE-2025-68810",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot  Reject attempts to disable KVM_MEM_GUEST_MEMFD on a memslot that was initially created with a guest_memfd binding, as KVM doesn't support toggling KVM_MEM_GUEST_MEMFD on existing memslots.  KVM prevents enabling KVM_MEM_GUEST_MEMFD, but doesn't prevent clearing the flag.  Failure to reject the new memslot results in a use-after-free due to KVM not unbinding from the guest_memfd instance.  Unbinding on a FLAGS_ONLY change is easy enough, and can/will be done as a hardening measure (in anticipation of KVM supporting dirty logging on guest_memfd at some point), but fixing the use-after-free would only address the immediate symptom.    ==================================================================   BUG: KASAN: slab-use-after-free in kvm_gmem_release+0x362/0x400 [kvm]   Write of size 8 at addr ffff8881111ae908 by task repro/745    CPU: 7 UID: 1000 PID: 745 Comm: repro Not tainted 6.18.0-rc6-115d5de2eef3-next-kasan #3 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   Call Trace:    <TASK>    dump_stack_lvl+0x51/0x60    print_report+0xcb/0x5c0    kasan_report+0xb4/0xe0    kvm_gmem_release+0x362/0x400 [kvm]    __fput+0x2fa/0x9d0    task_work_run+0x12c/0x200    do_exit+0x6ae/0x2100    do_group_exit+0xa8/0x230    __x64_sys_exit_group+0x3a/0x50    x64_sys_call+0x737/0x740    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f581f2eac31    </TASK>    Allocated by task 745 on cpu 6 at 9.746971s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_kmalloc+0x77/0x90    kvm_set_memory_region.part.0+0x652/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53    Freed by task 745 on cpu 6 at 9.747467s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_save_free_info+0x37/0x50    __kasan_slab_free+0x3b/0x60    kfree+0xf5/0x440    kvm_set_memslot+0x3c2/0x1160 [kvm]    kvm_set_memory_region.part.0+0x86a/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71109",
                                "url": "https://ubuntu.com/security/CVE-2025-71109",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  MIPS: ftrace: Fix memory corruption when kernel is located beyond 32 bits  Since commit e424054000878 (\"MIPS: Tracing: Reduce the overhead of dynamic Function Tracer\"), the macro UASM_i_LA_mostly has been used, and this macro can generate more than 2 instructions. At the same time, the code in ftrace assumes that no more than 2 instructions can be generated, which is why it stores them in an int[2] array. However, as previously noted, the macro UASM_i_LA_mostly (and now UASM_i_LA) causes a buffer overflow when _mcount is beyond 32 bits. This leads to corruption of the variables located in the __read_mostly section.  This corruption was observed because the variable __cpu_primary_thread_mask was corrupted, causing a hang very early during boot.  This fix prevents the corruption by avoiding the generation of instructions if they could exceed 2 instructions in length. Fortunately, insn_la_mcount is only used if the instrumented code is located outside the kernel code section, so dynamic ftrace can still be used, albeit in a more limited scope. This is still preferable to corrupting memory and/or crashing the kernel.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68770",
                                "url": "https://ubuntu.com/security/CVE-2025-68770",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bnxt_en: Fix XDP_TX path  For XDP_TX action in bnxt_rx_xdp(), clearing of the event flags is not correct.  __bnxt_poll_work() -> bnxt_rx_pkt() -> bnxt_rx_xdp() may be looping within NAPI and some event flags may be set in earlier iterations.  In particular, if BNXT_TX_EVENT is set earlier indicating some XDP_TX packets are ready and pending, it will be cleared if it is XDP_TX action again.  Normally, we will set BNXT_TX_EVENT again when we successfully call __bnxt_xmit_xdp().  But if the TX ring has no more room, the flag will not be set.  This will cause the TX producer to be ahead but the driver will not hit the TX doorbell.  For multi-buf XDP_TX, there is no need to clear the event flags and set BNXT_AGG_EVENT.  The BNXT_AGG_EVENT flag should have been set earlier in bnxt_rx_pkt().  The visible symptom of this is that the RX ring associated with the TX XDP ring will eventually become empty and all packets will be dropped. Because this condition will cause the driver to not refill the RX ring seeing that the TX ring has forever pending XDP_TX packets.  The fix is to only clear BNXT_RX_EVENT when we have successfully called __bnxt_xmit_xdp().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71072",
                                "url": "https://ubuntu.com/security/CVE-2025-71072",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  shmem: fix recovery on rename failures  maple_tree insertions can fail if we are seriously short on memory; simple_offset_rename() does not recover well if it runs into that. The same goes for simple_offset_rename_exchange().  Moreover, shmem_whiteout() expects that if it succeeds, the caller will progress to d_move(), i.e. that shmem_rename2() won't fail past the successful call of shmem_whiteout().  Not hard to fix, fortunately - mtree_store() can't fail if the index we are trying to store into is already present in the tree as a singleton.  For simple_offset_rename_exchange() that's enough - we just need to be careful about the order of operations.  For simple_offset_rename() solution is to preinsert the target into the tree for new_dir; the rest can be done without any potentially failing operations.  That preinsertion has to be done in shmem_rename2() rather than in simple_offset_rename() itself - otherwise we'd need to deal with the possibility of failure after successful shmem_whiteout().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68374",
                                "url": "https://ubuntu.com/security/CVE-2025-68374",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: fix rcu protection in md_wakeup_thread  We attempted to use RCU to protect the pointer 'thread', but directly passed the value when calling md_wakeup_thread(). This means that the RCU pointer has been acquired before rcu_read_lock(), which renders rcu_read_lock() ineffective and could lead to a use-after-free.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68378",
                                "url": "https://ubuntu.com/security/CVE-2025-68378",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix stackmap overflow check in __bpf_get_stackid()  Syzkaller reported a KASAN slab-out-of-bounds write in __bpf_get_stackid() when copying stack trace data. The issue occurs when the perf trace  contains more stack entries than the stack map bucket can hold,  leading to an out-of-bounds write in the bucket's data array.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-57795",
                                "url": "https://ubuntu.com/security/CVE-2024-57795",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Remove the direct link to net_device  The similar patch in siw is in the link: https://git.kernel.org/rdma/rdma/c/16b87037b48889  This problem also occurred in RXE. The following analyze this problem. In the following Call Traces: \" BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 net/core/dev.c:8782 Read of size 4 at addr ffff8880554640b0 by task kworker/1:4/5295  CPU: 1 UID: 0 PID: 5295 Comm: kworker/1:4 Not tainted 6.12.0-rc3-syzkaller-00399-g9197b73fd7bb #0 Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: infiniband ib_cache_event_task 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:377 [inline]  print_report+0x169/0x550 mm/kasan/report.c:488  kasan_report+0x143/0x180 mm/kasan/report.c:601  dev_get_flags+0x188/0x1d0 net/core/dev.c:8782  rxe_query_port+0x12d/0x260 drivers/infiniband/sw/rxe/rxe_verbs.c:60  __ib_query_port drivers/infiniband/core/device.c:2111 [inline]  ib_query_port+0x168/0x7d0 drivers/infiniband/core/device.c:2143  ib_cache_update+0x1a9/0xb80 drivers/infiniband/core/cache.c:1494  ib_cache_event_task+0xf3/0x1e0 drivers/infiniband/core/cache.c:1568  process_one_work kernel/workqueue.c:3229 [inline]  process_scheduled_works+0xa65/0x1850 kernel/workqueue.c:3310  worker_thread+0x870/0xd30 kernel/workqueue.c:3391  kthread+0x2f2/0x390 kernel/kthread.c:389  ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:147  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244  </TASK> \"  1). In the link [1],  \"  infiniband syz2: set down \"  This means that on 839.350575, the event ib_cache_event_task was sent andi queued in ib_wq.  2). In the link [1],  \"  team0 (unregistering): Port device team_slave_0 removed \"  It indicates that before 843.251853, the net device should be freed.  3). In the link [1],  \"  BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 \"  This means that on 850.559070, this slab-use-after-free problem occurred.  In all, on 839.350575, the event ib_cache_event_task was sent and queued in ib_wq,  before 843.251853, the net device veth was freed.  on 850.559070, this event was executed, and the mentioned freed net device was called. Thus, the above call trace occurred.  [1] https://syzkaller.appspot.com/x/log.txt?x=12e7025f980000",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-01-15 13: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-71140",
                                "url": "https://ubuntu.com/security/CVE-2025-71140",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: mediatek: vcodec: Use spinlock for context list protection lock  Previously a mutex was added to protect the encoder and decoder context lists from unexpected changes originating from the SCP IP block, causing the context pointer to go invalid, resulting in a NULL pointer dereference in the IPI handler.  Turns out on the MT8173, the VPU IPI handler is called from hard IRQ context. This causes a big warning from the scheduler. This was first reported downstream on the ChromeOS kernels, but is also reproducible on mainline using Fluster with the FFmpeg v4l2m2m decoders. Even though the actual capture format is not supported, the affected code paths are triggered.  Since this lock just protects the context list and operations on it are very fast, it should be OK to switch to a spinlock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-68772",
                                "url": "https://ubuntu.com/security/CVE-2025-68772",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating compression context during writeback  Bai, Shuangpeng <sjb7183@psu.edu> reported a bug as below:  Oops: divide error: 0000 [#1] SMP KASAN PTI CPU: 0 UID: 0 PID: 11441 Comm: syz.0.46 Not tainted 6.17.0 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP: 0010:f2fs_all_cluster_page_ready+0x106/0x550 fs/f2fs/compress.c:857 Call Trace:  <TASK>  f2fs_write_cache_pages fs/f2fs/data.c:3078 [inline]  __f2fs_write_data_pages fs/f2fs/data.c:3290 [inline]  f2fs_write_data_pages+0x1c19/0x3600 fs/f2fs/data.c:3317  do_writepages+0x38e/0x640 mm/page-writeback.c:2634  filemap_fdatawrite_wbc mm/filemap.c:386 [inline]  __filemap_fdatawrite_range mm/filemap.c:419 [inline]  file_write_and_wait_range+0x2ba/0x3e0 mm/filemap.c:794  f2fs_do_sync_file+0x6e6/0x1b00 fs/f2fs/file.c:294  generic_write_sync include/linux/fs.h:3043 [inline]  f2fs_file_write_iter+0x76e/0x2700 fs/f2fs/file.c:5259  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x7e9/0xe00 fs/read_write.c:686  ksys_write+0x19d/0x2d0 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xf7/0x470 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The bug was triggered w/ below race condition:  fsync\t\t\t\tsetattr\t\t\tioctl - f2fs_do_sync_file  - file_write_and_wait_range   - f2fs_write_cache_pages   : inode is non-compressed   : cc.cluster_size =     F2FS_I(inode)->i_cluster_size = 0    - tag_pages_for_writeback \t\t\t\t- f2fs_setattr \t\t\t\t - truncate_setsize \t\t\t\t - f2fs_truncate \t\t\t\t\t\t\t- f2fs_fileattr_set \t\t\t\t\t\t\t - f2fs_setflags_common \t\t\t\t\t\t\t  - set_compress_context \t\t\t\t\t\t\t  : F2FS_I(inode)->i_cluster_size = 4 \t\t\t\t\t\t\t  : set_inode_flag(inode, FI_COMPRESSED_FILE)    - f2fs_compressed_file    : return true    - f2fs_all_cluster_page_ready    : \"pgidx % cc->cluster_size\" trigger dividing 0 issue  Let's change as below to fix this issue: - introduce a new atomic type variable .writeback in structure f2fs_inode_info to track the number of threads which calling f2fs_write_cache_pages(). - use .i_sem lock to protect .writeback update. - check .writeback before update compression context in f2fs_setflags_common() to avoid race w/ ->writepages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15: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-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-71141",
                                "url": "https://ubuntu.com/security/CVE-2025-71141",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/tilcdc: Fix removal actions in case of failed probe  The drm_kms_helper_poll_fini() and drm_atomic_helper_shutdown() helpers should only be called when the device has been successfully registered. Currently, these functions are called unconditionally in tilcdc_fini(), which causes warnings during probe deferral scenarios.  [    7.972317] WARNING: CPU: 0 PID: 23 at drivers/gpu/drm/drm_atomic_state_helper.c:175 drm_atomic_helper_crtc_duplicate_state+0x60/0x68 ... [    8.005820]  drm_atomic_helper_crtc_duplicate_state from drm_atomic_get_crtc_state+0x68/0x108 [    8.005858]  drm_atomic_get_crtc_state from drm_atomic_helper_disable_all+0x90/0x1c8 [    8.005885]  drm_atomic_helper_disable_all from drm_atomic_helper_shutdown+0x90/0x144 [    8.005911]  drm_atomic_helper_shutdown from tilcdc_fini+0x68/0xf8 [tilcdc] [    8.005957]  tilcdc_fini [tilcdc] from tilcdc_pdev_probe+0xb0/0x6d4 [tilcdc]  Fix this by rewriting the failed probe cleanup path using the standard goto error handling pattern, which ensures that cleanup functions are only called on successfully initialized resources. Additionally, remove the now-unnecessary is_registered flag.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 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-71088",
                                "url": "https://ubuntu.com/security/CVE-2025-71088",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fallback earlier on simult connection  Syzkaller reports a simult-connect race leading to inconsistent fallback status:    WARNING: CPU: 3 PID: 33 at net/mptcp/subflow.c:1515 subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Modules linked in:   CPU: 3 UID: 0 PID: 33 Comm: ksoftirqd/3 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:subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Code: 89 ee e8 78 61 3c f6 40 84 ed 75 21 e8 8e 66 3c f6 44 89 fe bf 07 00 00 00 e8 c1 61 3c f6 41 83 ff 07 74 09 e8 76 66 3c f6 90 <0f> 0b 90 e8 6d 66 3c f6 48 89 df e8 e5 ad ff ff 31 ff 89 c5 89 c6   RSP: 0018:ffffc900006cf338 EFLAGS: 00010246   RAX: 0000000000000000 RBX: ffff888031acd100 RCX: ffffffff8b7f2abf   RDX: ffff88801e6ea440 RSI: ffffffff8b7f2aca RDI: 0000000000000005   RBP: 0000000000000000 R08: 0000000000000005 R09: 0000000000000007   R10: 0000000000000004 R11: 0000000000002c10 R12: ffff88802ba69900   R13: 1ffff920000d9e67 R14: ffff888046f81800 R15: 0000000000000004   FS:  0000000000000000(0000) GS:ffff8880d69bc000(0000) knlGS:0000000000000000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 0000560fc0ca1670 CR3: 0000000032c3a000 CR4: 0000000000352ef0   Call Trace:    <TASK>    tcp_data_queue+0x13b0/0x4f90 net/ipv4/tcp_input.c:5197    tcp_rcv_state_process+0xfdf/0x4ec0 net/ipv4/tcp_input.c:6922    tcp_v6_do_rcv+0x492/0x1740 net/ipv6/tcp_ipv6.c:1672    tcp_v6_rcv+0x2976/0x41e0 net/ipv6/tcp_ipv6.c:1918    ip6_protocol_deliver_rcu+0x188/0x1520 net/ipv6/ip6_input.c:438    ip6_input_finish+0x1e4/0x4b0 net/ipv6/ip6_input.c:489    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ip6_input+0x105/0x2f0 net/ipv6/ip6_input.c:500    dst_input include/net/dst.h:471 [inline]    ip6_rcv_finish net/ipv6/ip6_input.c:79 [inline]    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ipv6_rcv+0x264/0x650 net/ipv6/ip6_input.c:311    __netif_receive_skb_one_core+0x12d/0x1e0 net/core/dev.c:5979    __netif_receive_skb+0x1d/0x160 net/core/dev.c:6092    process_backlog+0x442/0x15e0 net/core/dev.c:6444    __napi_poll.constprop.0+0xba/0x550 net/core/dev.c:7494    napi_poll net/core/dev.c:7557 [inline]    net_rx_action+0xa9f/0xfe0 net/core/dev.c:7684    handle_softirqs+0x216/0x8e0 kernel/softirq.c:579    run_ksoftirqd kernel/softirq.c:968 [inline]    run_ksoftirqd+0x3a/0x60 kernel/softirq.c:960    smpboot_thread_fn+0x3f7/0xae0 kernel/smpboot.c:160    kthread+0x3c2/0x780 kernel/kthread.c:463    ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148    ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245    </TASK>  The TCP subflow can process the simult-connect syn-ack packet after transitioning to TCP_FIN1 state, bypassing the MPTCP fallback check, as the sk_state_change() callback is not invoked for * -> FIN_WAIT1 transitions.  That will move the msk socket to an inconsistent status and the next incoming data will hit the reported splat.  Close the race moving the simult-fallback check at the earliest possible stage - that is at syn-ack generation time.  About the fixes tags: [2] was supposed to also fix this issue introduced by [3]. [1] is required as a dependence: it was not explicitly marked as a fix, but it is one and it has already been backported before [3]. In other words, this commit should be backported up to [3], including [2] and [1] if that's not already there.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71065",
                                "url": "https://ubuntu.com/security/CVE-2025-71065",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid potential deadlock  As Jiaming Zhang and syzbot reported, there is potential deadlock in f2fs as below:  Chain exists of:   &sbi->cp_rwsem --> fs_reclaim --> sb_internal#2   Possible unsafe locking scenario:         CPU0                    CPU1        ----                    ----   rlock(sb_internal#2);                                lock(fs_reclaim);                                lock(sb_internal#2);   rlock(&sbi->cp_rwsem);   *** DEADLOCK ***  3 locks held by kswapd0/73:  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat mm/vmscan.c:7015 [inline]  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0x951/0x2800 mm/vmscan.c:7389  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_trylock_shared fs/super.c:562 [inline]  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_cache_scan+0x91/0x4b0 fs/super.c:197  #2: ffff888011840610 (sb_internal#2){.+.+}-{0:0}, at: f2fs_evict_inode+0x8d9/0x1b60 fs/f2fs/inode.c:890  stack backtrace: CPU: 0 UID: 0 PID: 73 Comm: kswapd0 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 Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_circular_bug+0x2ee/0x310 kernel/locking/lockdep.c:2043  check_noncircular+0x134/0x160 kernel/locking/lockdep.c:2175  check_prev_add kernel/locking/lockdep.c:3165 [inline]  check_prevs_add kernel/locking/lockdep.c:3284 [inline]  validate_chain+0xb9b/0x2140 kernel/locking/lockdep.c:3908  __lock_acquire+0xab9/0xd20 kernel/locking/lockdep.c:5237  lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5868  down_read+0x46/0x2e0 kernel/locking/rwsem.c:1537  f2fs_down_read fs/f2fs/f2fs.h:2278 [inline]  f2fs_lock_op fs/f2fs/f2fs.h:2357 [inline]  f2fs_do_truncate_blocks+0x21c/0x10c0 fs/f2fs/file.c:791  f2fs_truncate_blocks+0x10a/0x300 fs/f2fs/file.c:867  f2fs_truncate+0x489/0x7c0 fs/f2fs/file.c:925  f2fs_evict_inode+0x9f2/0x1b60 fs/f2fs/inode.c:897  evict+0x504/0x9c0 fs/inode.c:810  f2fs_evict_inode+0x1dc/0x1b60 fs/f2fs/inode.c:853  evict+0x504/0x9c0 fs/inode.c:810  dispose_list fs/inode.c:852 [inline]  prune_icache_sb+0x21b/0x2c0 fs/inode.c:1000  super_cache_scan+0x39b/0x4b0 fs/super.c:224  do_shrink_slab+0x6ef/0x1110 mm/shrinker.c:437  shrink_slab_memcg mm/shrinker.c:550 [inline]  shrink_slab+0x7ef/0x10d0 mm/shrinker.c:628  shrink_one+0x28a/0x7c0 mm/vmscan.c:4955  shrink_many mm/vmscan.c:5016 [inline]  lru_gen_shrink_node mm/vmscan.c:5094 [inline]  shrink_node+0x315d/0x3780 mm/vmscan.c:6081  kswapd_shrink_node mm/vmscan.c:6941 [inline]  balance_pgdat mm/vmscan.c:7124 [inline]  kswapd+0x147c/0x2800 mm/vmscan.c:7389  kthread+0x70e/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>  The root cause is deadlock among four locks as below:  kswapd - fs_reclaim\t\t\t\t--- Lock A  - shrink_one   - evict    - f2fs_evict_inode     - sb_start_intwrite\t\t\t--- Lock B  - iput  - evict   - f2fs_evict_inode    - sb_start_intwrite\t\t\t--- Lock B    - f2fs_truncate     - f2fs_truncate_blocks      - f2fs_do_truncate_blocks       - f2fs_lock_op\t\t\t--- Lock C  ioctl - f2fs_ioc_commit_atomic_write  - f2fs_lock_op\t\t\t\t--- Lock C   - __f2fs_commit_atomic_write    - __replace_atomic_write_block     - f2fs_get_dnode_of_data      - __get_node_folio       - f2fs_check_nid_range        - f2fs_handle_error         - f2fs_record_errors          - f2fs_down_write\t\t--- Lock D  open - do_open  - do_truncate   - security_inode_need_killpriv    - f2fs_getxattr     - lookup_all_xattrs      - f2fs_handle_error       - f2fs_record_errors        - f2fs_down_write\t\t--- Lock D         - f2fs_commit_super          - read_mapping_folio           - filemap_alloc_folio_noprof            - prepare_alloc_pages             - fs_reclaim_acquire\t--- Lock A  In order to a ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68345",
                                "url": "https://ubuntu.com/security/CVE-2025-68345",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: hda: cs35l41: Fix NULL pointer dereference in cs35l41_hda_read_acpi()  The acpi_get_first_physical_node() function can return NULL, in which case the get_device() function also returns NULL, but this value is then dereferenced without checking,so add a check to prevent a crash.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11: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-71130",
                                "url": "https://ubuntu.com/security/CVE-2025-71130",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/gem: Zero-initialize the eb.vma array in i915_gem_do_execbuffer  Initialize the eb.vma array with values of 0 when the eb structure is first set up. In particular, this sets the eb->vma[i].vma pointers to NULL, simplifying cleanup and getting rid of the bug described below.  During the execution of eb_lookup_vmas(), the eb->vma array is successively filled up with struct eb_vma objects. This process includes calling eb_add_vma(), which might fail; however, even in the event of failure, eb->vma[i].vma is set for the currently processed buffer.  If eb_add_vma() fails, eb_lookup_vmas() returns with an error, which prompts a call to eb_release_vmas() to clean up the mess. Since eb_lookup_vmas() might fail during processing any (possibly not first) buffer, eb_release_vmas() checks whether a buffer's vma is NULL to know at what point did the lookup function fail.  In eb_lookup_vmas(), eb->vma[i].vma is set to NULL if either the helper function eb_lookup_vma() or eb_validate_vma() fails. eb->vma[i+1].vma is set to NULL in case i915_gem_object_userptr_submit_init() fails; the current one needs to be cleaned up by eb_release_vmas() at this point, so the next one is set. If eb_add_vma() fails, neither the current nor the next vma is set to NULL, which is a source of a NULL deref bug described in the issue linked in the Closes tag.  When entering eb_lookup_vmas(), the vma pointers are set to the slab poison value, instead of NULL. This doesn't matter for the actual lookup, since it gets overwritten anyway, however the eb_release_vmas() function only recognizes NULL as the stopping value, hence the pointers are being set to NULL as they go in case of intermediate failure. This patch changes the approach to filling them all with NULL at the start instead, rather than handling that manually during failure.  (cherry picked from commit 08889b706d4f0b8d2352b7ca29c2d8df4d0787cd)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71138",
                                "url": "https://ubuntu.com/security/CVE-2025-71138",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/msm/dpu: Add missing NULL pointer check for pingpong interface  It is checked almost always in dpu_encoder_phys_wb_setup_ctl(), but in a single place the check is missing. Also use convenient locals instead of phys_enc->* where available.  Patchwork: https://patchwork.freedesktop.org/patch/693860/",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16: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-71129",
                                "url": "https://ubuntu.com/security/CVE-2025-71129",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: BPF: Sign extend kfunc call arguments  The kfunc calls are native calls so they should follow LoongArch calling conventions. Sign extend its arguments properly to avoid kernel panic. This is done by adding a new emit_abi_ext() helper. The emit_abi_ext() helper performs extension in place meaning a value already store in the target register (Note: this is different from the existing sign_extend() helper and thus we can't reuse it).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-71143",
                                "url": "https://ubuntu.com/security/CVE-2025-71143",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  clk: samsung: exynos-clkout: Assign .num before accessing .hws  Commit f316cdff8d67 (\"clk: Annotate struct clk_hw_onecell_data with __counted_by\") annotated the hws member of 'struct clk_hw_onecell_data' with __counted_by, which informs the bounds sanitizer (UBSAN_BOUNDS) about the number of elements in .hws[], so that it can warn when .hws[] is accessed out of bounds. As noted in that change, the __counted_by member must be initialized with the number of elements before the first array access happens, otherwise there will be a warning from each access prior to the initialization because the number of elements is zero. This occurs in exynos_clkout_probe() due to .num being assigned after .hws[] has been accessed:    UBSAN: array-index-out-of-bounds in drivers/clk/samsung/clk-exynos-clkout.c:178:18   index 0 is out of range for type 'clk_hw *[*]'  Move the .num initialization to before the first access of .hws[], clearing up the warning.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-71089",
                                "url": "https://ubuntu.com/security/CVE-2025-71089",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu: disable SVA when CONFIG_X86 is set  Patch series \"Fix stale IOTLB entries for kernel address space\", v7.  This proposes a fix for a security vulnerability related to IOMMU Shared Virtual Addressing (SVA).  In an SVA context, an IOMMU can cache kernel page table entries.  When a kernel page table page is freed and reallocated for another purpose, the IOMMU might still hold stale, incorrect entries.  This can be exploited to cause a use-after-free or write-after-free condition, potentially leading to privilege escalation or data corruption.  This solution introduces a deferred freeing mechanism for kernel page table pages, which provides a safe window to notify the IOMMU to invalidate its caches before the page is reused.   This patch (of 8):  In the IOMMU Shared Virtual Addressing (SVA) context, the IOMMU hardware shares and walks the CPU's page tables.  The x86 architecture maps the kernel's virtual address space into the upper portion of every process's page table.  Consequently, in an SVA context, the IOMMU hardware can walk and cache kernel page table entries.  The Linux kernel currently lacks a notification mechanism for kernel page table changes, specifically when page table pages are freed and reused. The IOMMU driver is only notified of changes to user virtual address mappings.  This can cause the IOMMU's internal caches to retain stale entries for kernel VA.  Use-After-Free (UAF) and Write-After-Free (WAF) conditions arise when kernel page table pages are freed and later reallocated.  The IOMMU could misinterpret the new data as valid page table entries.  The IOMMU might then walk into attacker-controlled memory, leading to arbitrary physical memory DMA access or privilege escalation.  This is also a Write-After-Free issue, as the IOMMU will potentially continue to write Accessed and Dirty bits to the freed memory while attempting to walk the stale page tables.  Currently, SVA contexts are unprivileged and cannot access kernel mappings.  However, the IOMMU will still walk kernel-only page tables all the way down to the leaf entries, where it realizes the mapping is for the kernel and errors out.  This means the IOMMU still caches these intermediate page table entries, making the described vulnerability a real concern.  Disable SVA on x86 architecture until the IOMMU can receive notification to flush the paging cache before freeing the CPU kernel page table pages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16: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-71153",
                                "url": "https://ubuntu.com/security/CVE-2025-71153",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix memory leak in get_file_all_info()  In get_file_all_info(), if vfs_getattr() fails, the function returns immediately without freeing the allocated filename, leading to a memory leak.  Fix this by freeing the filename before returning in this error case.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 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-71095",
                                "url": "https://ubuntu.com/security/CVE-2025-71095",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: stmmac: fix the crash issue for zero copy XDP_TX action  There is a crash issue when running zero copy XDP_TX action, the crash log is shown below.  [  216.122464] Unable to handle kernel paging request at virtual address fffeffff80000000 [  216.187524] Internal error: Oops: 0000000096000144 [#1]  SMP [  216.301694] Call trace: [  216.304130]  dcache_clean_poc+0x20/0x38 (P) [  216.308308]  __dma_sync_single_for_device+0x1bc/0x1e0 [  216.313351]  stmmac_xdp_xmit_xdpf+0x354/0x400 [  216.317701]  __stmmac_xdp_run_prog+0x164/0x368 [  216.322139]  stmmac_napi_poll_rxtx+0xba8/0xf00 [  216.326576]  __napi_poll+0x40/0x218 [  216.408054] Kernel panic - not syncing: Oops: Fatal exception in interrupt  For XDP_TX action, the xdp_buff is converted to xdp_frame by xdp_convert_buff_to_frame(). The memory type of the resulting xdp_frame depends on the memory type of the xdp_buff. For page pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_POOL. For zero copy XSK pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_ORDER0. However, stmmac_xdp_xmit_back() does not check the memory type and always uses the page pool type, this leads to invalid mappings and causes the crash. Therefore, check the xdp_buff memory type in stmmac_xdp_xmit_back() to fix this issue.",
                                "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-71101",
                                "url": "https://ubuntu.com/security/CVE-2025-71101",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix out-of-bounds array access in ACPI package parsing  The hp_populate_*_elements_from_package() functions in the hp-bioscfg driver contain out-of-bounds array access vulnerabilities.  These functions parse ACPI packages into internal data structures using a for loop with index variable 'elem' that iterates through enum_obj/integer_obj/order_obj/password_obj/string_obj arrays.  When processing multi-element fields like PREREQUISITES and ENUM_POSSIBLE_VALUES, these functions read multiple consecutive array elements using expressions like 'enum_obj[elem + reqs]' and 'enum_obj[elem + pos_values]' within nested loops.  The bug is that the bounds check only validated elem, but did not consider the additional offset when accessing elem + reqs or elem + pos_values.  The fix changes the bounds check to validate the actual accessed index.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16: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-71071",
                                "url": "https://ubuntu.com/security/CVE-2025-71071",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu/mediatek: fix use-after-free on probe deferral  The driver is dropping the references taken to the larb devices during probe after successful lookup as well as on errors. This can potentially lead to a use-after-free in case a larb device has not yet been bound to its driver so that the iommu driver probe defers.  Fix this by keeping the references as expected while the iommu driver is bound.",
                                "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-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-71149",
                                "url": "https://ubuntu.com/security/CVE-2025-71149",
                                "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68778",
                                "url": "https://ubuntu.com/security/CVE-2025-68778",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: don't log conflicting inode if it's a dir moved in the current transaction  We can't log a conflicting inode if it's a directory and it was moved from one parent directory to another parent directory in the current transaction, as this can result an attempt to have a directory with two hard links during log replay, one for the old parent directory and another for the new parent directory.  The following scenario triggers that issue:  1) We have directories \"dir1\" and \"dir2\" created in a past transaction.    Directory \"dir1\" has inode A as its parent directory;  2) We move \"dir1\" to some other directory;  3) We create a file with the name \"dir1\" in directory inode A;  4) We fsync the new file. This results in logging the inode of the new file    and the inode for the directory \"dir1\" that was previously moved in the    current transaction. So the log tree has the INODE_REF item for the    new location of \"dir1\";  5) We move the new file to some other directory. This results in updating    the log tree to included the new INODE_REF for the new location of the    file and removes the INODE_REF for the old location. This happens    during the rename when we call btrfs_log_new_name();  6) We fsync the file, and that persists the log tree changes done in the    previous step (btrfs_log_new_name() only updates the log tree in    memory);  7) We have a power failure;  8) Next time the fs is mounted, log replay happens and when processing    the inode for directory \"dir1\" we find a new INODE_REF and add that    link, but we don't remove the old link of the inode since we have    not logged the old parent directory of the directory inode \"dir1\".  As a result after log replay finishes when we trigger writeback of the subvolume tree's extent buffers, the tree check will detect that we have a directory a hard link count of 2 and we get a mount failure. The errors and stack traces reported in dmesg/syslog are like this:     [ 3845.729764] BTRFS info (device dm-0): start tree-log replay    [ 3845.730304] page: refcount:3 mapcount:0 mapping:000000005c8a3027 index:0x1d00 pfn:0x11510c    [ 3845.731236] memcg:ffff9264c02f4e00    [ 3845.731751] aops:btree_aops [btrfs] ino:1    [ 3845.732300] flags: 0x17fffc00000400a(uptodate|private|writeback|node=0|zone=2|lastcpupid=0x1ffff)    [ 3845.733346] raw: 017fffc00000400a 0000000000000000 dead000000000122 ffff9264d978aea8    [ 3845.734265] raw: 0000000000001d00 ffff92650e6d4738 00000003ffffffff ffff9264c02f4e00    [ 3845.735305] page dumped because: eb page dump    [ 3845.735981] BTRFS critical (device dm-0): corrupt leaf: root=5 block=30408704 slot=6 ino=257, invalid nlink: has 2 expect no more than 1 for dir    [ 3845.737786] BTRFS info (device dm-0): leaf 30408704 gen 10 total ptrs 17 free space 14881 owner 5    [ 3845.737789] BTRFS info (device dm-0): refs 4 lock_owner 0 current 30701    [ 3845.737792] \titem 0 key (256 INODE_ITEM 0) itemoff 16123 itemsize 160    [ 3845.737794] \t\tinode generation 3 transid 9 size 16 nbytes 16384    [ 3845.737795] \t\tblock group 0 mode 40755 links 1 uid 0 gid 0    [ 3845.737797] \t\trdev 0 sequence 2 flags 0x0    [ 3845.737798] \t\tatime 1764259517.0    [ 3845.737800] \t\tctime 1764259517.572889464    [ 3845.737801] \t\tmtime 1764259517.572889464    [ 3845.737802] \t\totime 1764259517.0    [ 3845.737803] \titem 1 key (256 INODE_REF 256) itemoff 16111 itemsize 12    [ 3845.737805] \t\tindex 0 name_len 2    [ 3845.737807] \titem 2 key (256 DIR_ITEM 2363071922) itemoff 16077 itemsize 34    [ 3845.737808] \t\tlocation key (257 1 0) type 2    [ 3845.737810] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737811] \titem 3 key (256 DIR_ITEM 2676584006) itemoff 16043 itemsize 34    [ 3845.737813] \t\tlocation key (258 1 0) type 2    [ 3845.737814] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737815] \titem 4 key (256 DIR_INDEX 2) itemoff 16009 itemsize 34    [ 3845.737816] \t\tlocation key (257 1 0) type 2    [ ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71119",
                                "url": "https://ubuntu.com/security/CVE-2025-71119",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/kexec: Enable SMT before waking offline CPUs  If SMT is disabled or a partial SMT state is enabled, when a new kernel image is loaded for kexec, on reboot the following warning is observed:  kexec: Waking offline cpu 228. WARNING: CPU: 0 PID: 9062 at arch/powerpc/kexec/core_64.c:223 kexec_prepare_cpus+0x1b0/0x1bc [snip]  NIP kexec_prepare_cpus+0x1b0/0x1bc  LR  kexec_prepare_cpus+0x1a0/0x1bc  Call Trace:   kexec_prepare_cpus+0x1a0/0x1bc (unreliable)   default_machine_kexec+0x160/0x19c   machine_kexec+0x80/0x88   kernel_kexec+0xd0/0x118   __do_sys_reboot+0x210/0x2c4   system_call_exception+0x124/0x320   system_call_vectored_common+0x15c/0x2ec  This occurs as add_cpu() fails due to cpu_bootable() returning false for CPUs that fail the cpu_smt_thread_allowed() check or non primary threads if SMT is disabled.  Fix the issue by enabling SMT and resetting the number of SMT threads to the number of threads per core, before attempting to wake up all present CPUs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-71148",
                                "url": "https://ubuntu.com/security/CVE-2025-71148",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: restore destructor on submit failure  handshake_req_submit() replaces sk->sk_destruct but never restores it when submission fails before the request is hashed. handshake_sk_destruct() then returns early and the original destructor never runs, leaking the socket. Restore sk_destruct on the error path.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15: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-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-71107",
                                "url": "https://ubuntu.com/security/CVE-2025-71107",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: ensure node page reads complete before f2fs_put_super() finishes  Xfstests generic/335, generic/336 sometimes crash with the following message:  F2FS-fs (dm-0): detect filesystem reference count leak during umount, type: 9, count: 1 ------------[ cut here ]------------ kernel BUG at fs/f2fs/super.c:1939! Oops: invalid opcode: 0000 [#1] SMP NOPTI CPU: 1 UID: 0 PID: 609351 Comm: umount Tainted: G        W          6.17.0-rc5-xfstests-g9dd1835ecda5 #1 PREEMPT(none) Tainted: [W]=WARN Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:f2fs_put_super+0x3b3/0x3c0 Call Trace:  <TASK>  generic_shutdown_super+0x7e/0x190  kill_block_super+0x1a/0x40  kill_f2fs_super+0x9d/0x190  deactivate_locked_super+0x30/0xb0  cleanup_mnt+0xba/0x150  task_work_run+0x5c/0xa0  exit_to_user_mode_loop+0xb7/0xc0  do_syscall_64+0x1ae/0x1c0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  </TASK> ---[ end trace 0000000000000000 ]---  It appears that sometimes it is possible that f2fs_put_super() is called before all node page reads are completed. Adding a call to f2fs_wait_on_all_pages() for F2FS_RD_NODE fixes the problem.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15: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-71126",
                                "url": "https://ubuntu.com/security/CVE-2025-71126",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: avoid deadlock on fallback while reinjecting  Jakub reported an MPTCP deadlock at fallback time:   WARNING: possible recursive locking detected  6.18.0-rc7-virtme #1 Not tainted  --------------------------------------------  mptcp_connect/20858 is trying to acquire lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_try_fallback+0xd8/0x280   but task is already holding lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   other info that might help us debug this:   Possible unsafe locking scenario:          CPU0         ----    lock(&msk->fallback_lock);    lock(&msk->fallback_lock);    *** DEADLOCK ***    May be due to missing lock nesting notation   3 locks held by mptcp_connect/20858:   #0: ff1100001da18290 (sk_lock-AF_INET){+.+.}-{0:0}, at: mptcp_sendmsg+0x114/0x1bc0   #1: ff1100001db40fd0 (k-sk_lock-AF_INET#2){+.+.}-{0:0}, at: __mptcp_retrans+0x2cb/0xaa0   #2: ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   stack backtrace:  CPU: 0 UID: 0 PID: 20858 Comm: mptcp_connect Not tainted 6.18.0-rc7-virtme #1 PREEMPT(full)  Hardware name: Bochs, BIOS Bochs 01/01/2011  Call Trace:   <TASK>   dump_stack_lvl+0x6f/0xa0   print_deadlock_bug.cold+0xc0/0xcd   validate_chain+0x2ff/0x5f0   __lock_acquire+0x34c/0x740   lock_acquire.part.0+0xbc/0x260   _raw_spin_lock_bh+0x38/0x50   __mptcp_try_fallback+0xd8/0x280   mptcp_sendmsg_frag+0x16c2/0x3050   __mptcp_retrans+0x421/0xaa0   mptcp_release_cb+0x5aa/0xa70   release_sock+0xab/0x1d0   mptcp_sendmsg+0xd5b/0x1bc0   sock_write_iter+0x281/0x4d0   new_sync_write+0x3c5/0x6f0   vfs_write+0x65e/0xbb0   ksys_write+0x17e/0x200   do_syscall_64+0xbb/0xfd0   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7fa5627cbc5e  Code: 4d 89 d8 e8 14 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa  RSP: 002b:00007fff1fe14700 EFLAGS: 00000202 ORIG_RAX: 0000000000000001  RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00007fa5627cbc5e  RDX: 0000000000001f9c RSI: 00007fff1fe16984 RDI: 0000000000000005  RBP: 00007fff1fe14710 R08: 0000000000000000 R09: 0000000000000000  R10: 0000000000000000 R11: 0000000000000202 R12: 00007fff1fe16920  R13: 0000000000002000 R14: 0000000000001f9c R15: 0000000000001f9c  The packet scheduler could attempt a reinjection after receiving an MP_FAIL and before the infinite map has been transmitted, causing a deadlock since MPTCP needs to do the reinjection atomically from WRT fallback.  Address the issue explicitly avoiding the reinjection in the critical scenario. Note that this is the only fallback critical section that could potentially send packets and hit the double-lock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-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-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-71151",
                                "url": "https://ubuntu.com/security/CVE-2025-71151",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cifs: Fix memory and information leak in smb3_reconfigure()  In smb3_reconfigure(), if smb3_sync_session_ctx_passwords() fails, the function returns immediately without freeing and erasing the newly allocated new_password and new_password2. This causes both a memory leak and a potential information leak.  Fix this by calling kfree_sensitive() on both password buffers before returning in this error case.",
                                "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-68773",
                                "url": "https://ubuntu.com/security/CVE-2025-68773",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: fsl-cpm: Check length parity before switching to 16 bit mode  Commit fc96ec826bce (\"spi: fsl-cpm: Use 16 bit mode for large transfers with even size\") failed to make sure that the size is really even before switching to 16 bit mode. Until recently the problem went unnoticed because kernfs uses a pre-allocated bounce buffer of size PAGE_SIZE for reading EEPROM.  But commit 8ad6249c51d0 (\"eeprom: at25: convert to spi-mem API\") introduced an additional dynamically allocated bounce buffer whose size is exactly the size of the transfer, leading to a buffer overrun in the fsl-cpm driver when that size is odd.  Add the missing length parity verification and remain in 8 bit mode when the length is not even.",
                                "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-68806",
                                "url": "https://ubuntu.com/security/CVE-2025-68806",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix buffer validation by including null terminator size in EA length  The smb2_set_ea function, which handles Extended Attributes (EA), was performing buffer validation checks that incorrectly omitted the size of the null terminating character (+1 byte) for EA Name. This patch fixes the issue by explicitly adding '+ 1' to EaNameLength where the null terminator is expected to be present in the buffer, ensuring the validation accurately reflects the total required buffer size.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71150",
                                "url": "https://ubuntu.com/security/CVE-2025-71150",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix refcount leak when invalid session is found on session lookup  When a session is found but its state is not SMB2_SESSION_VALID, It indicates that no valid session was found, but it is missing to decrement the reference count acquired by the session lookup, which results in a reference count leak. This patch fixes the issue by explicitly calling ksmbd_user_session_put to release the reference to the session.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68786",
                                "url": "https://ubuntu.com/security/CVE-2025-68786",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: skip lock-range check on equal size to avoid size==0 underflow  When size equals the current i_size (including 0), the code used to call check_lock_range(filp, i_size, size - 1, WRITE), which computes `size - 1` and can underflow for size==0. Skip the equal case.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68789",
                                "url": "https://ubuntu.com/security/CVE-2025-68789",
                                "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                                "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-68775",
                                "url": "https://ubuntu.com/security/CVE-2025-68775",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: duplicate handshake cancellations leak socket  When a handshake request is cancelled it is removed from the handshake_net->hn_requests list, but it is still present in the handshake_rhashtbl until it is destroyed.  If a second cancellation request arrives for the same handshake request, then remove_pending() will return false... and assuming HANDSHAKE_F_REQ_COMPLETED isn't set in req->hr_flags, we'll continue processing through the out_true label, where we put another reference on the sock and a refcount underflow occurs.  This can happen for example if a handshake times out - particularly if the SUNRPC client sends the AUTH_TLS probe to the server but doesn't follow it up with the ClientHello due to a problem with tlshd.  When the timeout is hit on the server, the server will send a FIN, which triggers a cancellation request via xs_reset_transport().  When the timeout is hit on the client, another cancellation request happens via xs_tls_handshake_sync().  Add a test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED) in the pending cancel path so duplicate cancels can be detected.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15: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-71122",
                                "url": "https://ubuntu.com/security/CVE-2025-71122",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommufd/selftest: Check for overflow in IOMMU_TEST_OP_ADD_RESERVED  syzkaller found it could overflow math in the test infrastructure and cause a WARN_ON by corrupting the reserved interval tree. This only effects test kernels with CONFIG_IOMMUFD_TEST.  Validate the user input length in the test ioctl.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-68809",
                                "url": "https://ubuntu.com/security/CVE-2025-68809",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: vfs: fix race on m_flags in vfs_cache  ksmbd maintains delete-on-close and pending-delete state in ksmbd_inode->m_flags. In vfs_cache.c this field is accessed under inconsistent locking: some paths read and modify m_flags under ci->m_lock while others do so without taking the lock at all.  Examples:   - ksmbd_query_inode_status() and __ksmbd_inode_close() use    ci->m_lock when checking or updating m_flags.  - ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete() and ksmbd_fd_set_delete_on_close()    used to read and modify m_flags without ci->m_lock.  This creates a potential data race on m_flags when multiple threads open, close and delete the same file concurrently. In the worst case delete-on-close and pending-delete bits can be lost or observed in an inconsistent state, leading to confusing delete semantics (files that stay on disk after delete-on-close, or files that disappear while still in use).  Fix it by:   - Making ksmbd_query_inode_status() look at m_flags under ci->m_lock    after dropping inode_hash_lock.  - Adding ci->m_lock protection to all helpers that read or modify    m_flags (ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete(), ksmbd_fd_set_delete_on_close()).  - Keeping the existing ci->m_lock protection in __ksmbd_inode_close(),    and moving the actual unlink/xattr removal outside the lock.  This unifies the locking around m_flags and removes the data race while preserving the existing delete-on-close behaviour.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68817",
                                "url": "https://ubuntu.com/security/CVE-2025-68817",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency  Under high concurrency, A tree-connection object (tcon) is freed on a disconnect path while another path still holds a reference and later executes *_put()/write on it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16: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-71067",
                                "url": "https://ubuntu.com/security/CVE-2025-71067",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs: set dummy blocksize to read boot_block when mounting  When mounting, sb->s_blocksize is used to read the boot_block without being defined or validated. Set a dummy blocksize before attempting to read the boot_block.  The issue can be triggered with the following syz reproducer:    mkdirat(0xffffffffffffff9c, &(0x7f0000000080)='./file1\\x00', 0x0)   r4 = openat$nullb(0xffffffffffffff9c, &(0x7f0000000040), 0x121403, 0x0)   ioctl$FS_IOC_SETFLAGS(r4, 0x40081271, &(0x7f0000000980)=0x4000)   mount(&(0x7f0000000140)=@nullb, &(0x7f0000000040)='./cgroup\\x00',         &(0x7f0000000000)='ntfs3\\x00', 0x2208004, 0x0)   syz_clone(0x88200200, 0x0, 0x0, 0x0, 0x0, 0x0)  Here, the ioctl sets the bdev block size to 16384. During mount, get_tree_bdev_flags() calls sb_set_blocksize(sb, block_size(bdev)), but since block_size(bdev) > PAGE_SIZE, sb_set_blocksize() leaves sb->s_blocksize at zero.  Later, ntfs_init_from_boot() attempts to read the boot_block while sb->s_blocksize is still zero, which triggers the bug.  [almaz.alexandrovich@paragon-software.com: changed comment style, added return value handling]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16: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-68798",
                                "url": "https://ubuntu.com/security/CVE-2025-68798",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf/x86/amd: Check event before enable to avoid GPF  On AMD machines cpuc->events[idx] can become NULL in a subtle race condition with NMI->throttle->x86_pmu_stop().  Check event for NULL in amd_pmu_enable_all() before enable to avoid a GPF. This appears to be an AMD only issue.  Syzkaller reported a GPF in amd_pmu_enable_all.  INFO: NMI handler (perf_event_nmi_handler) took too long to run: 13.143     msecs Oops: general protection fault, probably for non-canonical address     0xdffffc0000000034: 0000  PREEMPT SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x00000000000001a0-0x00000000000001a7] CPU: 0 UID: 0 PID: 328415 Comm: repro_36674776 Not tainted 6.12.0-rc1-syzk RIP: 0010:x86_pmu_enable_event (arch/x86/events/perf_event.h:1195     arch/x86/events/core.c:1430) RSP: 0018:ffff888118009d60 EFLAGS: 00010012 RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000000034 RSI: 0000000000000000 RDI: 00000000000001a0 RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000002 R13: ffff88811802a440 R14: ffff88811802a240 R15: ffff8881132d8601 FS:  00007f097dfaa700(0000) GS:ffff888118000000(0000) GS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000200001c0 CR3: 0000000103d56000 CR4: 00000000000006f0 Call Trace:  <IRQ> amd_pmu_enable_all (arch/x86/events/amd/core.c:760 (discriminator 2)) x86_pmu_enable (arch/x86/events/core.c:1360) event_sched_out (kernel/events/core.c:1191 kernel/events/core.c:1186     kernel/events/core.c:2346) __perf_remove_from_context (kernel/events/core.c:2435) event_function (kernel/events/core.c:259) remote_function (kernel/events/core.c:92 (discriminator 1)     kernel/events/core.c:72 (discriminator 1)) __flush_smp_call_function_queue (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207 ./include/trace/events/csd.h:64     kernel/smp.c:135 kernel/smp.c:540) __sysvec_call_function_single (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207     ./arch/x86/include/asm/trace/irq_vectors.h:99 arch/x86/kernel/smp.c:272) sysvec_call_function_single (arch/x86/kernel/smp.c:266 (discriminator 47)     arch/x86/kernel/smp.c:266 (discriminator 47))  </IRQ>",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68794",
                                "url": "https://ubuntu.com/security/CVE-2025-68794",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iomap: adjust read range correctly for non-block-aligned positions  iomap_adjust_read_range() assumes that the position and length passed in are block-aligned. This is not always the case however, as shown in the syzbot generated case for erofs. This causes too many bytes to be skipped for uptodate blocks, which results in returning the incorrect position and length to read in. If all the blocks are uptodate, this underflows length and returns a position beyond the folio.  Fix the calculation to also take into account the block offset when calculating how many bytes can be skipped for uptodate blocks.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16: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-68766",
                                "url": "https://ubuntu.com/security/CVE-2025-68766",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()  If irq_domain_translate_twocell() sets \"hwirq\" to >= MCHP_EIC_NIRQ (2) then it results in an out of bounds access.  The code checks for invalid values, but doesn't set the error code.  Return -EINVAL in that case, instead of returning success.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68756",
                                "url": "https://ubuntu.com/security/CVE-2025-68756",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  block: Use RCU in blk_mq_[un]quiesce_tagset() instead of set->tag_list_lock  blk_mq_{add,del}_queue_tag_set() functions add and remove queues from tagset, the functions make sure that tagset and queues are marked as shared when two or more queues are attached to the same tagset. Initially a tagset starts as unshared and when the number of added queues reaches two, blk_mq_add_queue_tag_set() marks it as shared along with all the queues attached to it. When the number of attached queues drops to 1 blk_mq_del_queue_tag_set() need to mark both the tagset and the remaining queues as unshared.  Both functions need to freeze current queues in tagset before setting on unsetting BLK_MQ_F_TAG_QUEUE_SHARED flag. While doing so, both functions hold set->tag_list_lock mutex, which makes sense as we do not want queues to be added or deleted in the process. This used to work fine until commit 98d81f0df70c (\"nvme: use blk_mq_[un]quiesce_tagset\") made the nvme driver quiesce tagset instead of quiscing individual queues. blk_mq_quiesce_tagset() does the job and quiesce the queues in set->tag_list while holding set->tag_list_lock also.  This results in deadlock between two threads with these stacktraces:    __schedule+0x47c/0xbb0   ? timerqueue_add+0x66/0xb0   schedule+0x1c/0xa0   schedule_preempt_disabled+0xa/0x10   __mutex_lock.constprop.0+0x271/0x600   blk_mq_quiesce_tagset+0x25/0xc0   nvme_dev_disable+0x9c/0x250   nvme_timeout+0x1fc/0x520   blk_mq_handle_expired+0x5c/0x90   bt_iter+0x7e/0x90   blk_mq_queue_tag_busy_iter+0x27e/0x550   ? __blk_mq_complete_request_remote+0x10/0x10   ? __blk_mq_complete_request_remote+0x10/0x10   ? __call_rcu_common.constprop.0+0x1c0/0x210   blk_mq_timeout_work+0x12d/0x170   process_one_work+0x12e/0x2d0   worker_thread+0x288/0x3a0   ? rescuer_thread+0x480/0x480   kthread+0xb8/0xe0   ? kthread_park+0x80/0x80   ret_from_fork+0x2d/0x50   ? kthread_park+0x80/0x80   ret_from_fork_asm+0x11/0x20    __schedule+0x47c/0xbb0   ? xas_find+0x161/0x1a0   schedule+0x1c/0xa0   blk_mq_freeze_queue_wait+0x3d/0x70   ? destroy_sched_domains_rcu+0x30/0x30   blk_mq_update_tag_set_shared+0x44/0x80   blk_mq_exit_queue+0x141/0x150   del_gendisk+0x25a/0x2d0   nvme_ns_remove+0xc9/0x170   nvme_remove_namespaces+0xc7/0x100   nvme_remove+0x62/0x150   pci_device_remove+0x23/0x60   device_release_driver_internal+0x159/0x200   unbind_store+0x99/0xa0   kernfs_fop_write_iter+0x112/0x1e0   vfs_write+0x2b1/0x3d0   ksys_write+0x4e/0xb0   do_syscall_64+0x5b/0x160   entry_SYSCALL_64_after_hwframe+0x4b/0x53  The top stacktrace is showing nvme_timeout() called to handle nvme command timeout. timeout handler is trying to disable the controller and as a first step, it needs to blk_mq_quiesce_tagset() to tell blk-mq not to call queue callback handlers. The thread is stuck waiting for set->tag_list_lock as it tries to walk the queues in set->tag_list.  The lock is held by the second thread in the bottom stack which is waiting for one of queues to be frozen. The queue usage counter will drop to zero after nvme_timeout() finishes, and this will not happen because the thread will wait for this mutex forever.  Given that [un]quiescing queue is an operation that does not need to sleep, update blk_mq_[un]quiesce_tagset() to use RCU instead of taking set->tag_list_lock, update blk_mq_{add,del}_queue_tag_set() to use RCU safe list operations. Also, delete INIT_LIST_HEAD(&q->tag_set_list) in blk_mq_del_queue_tag_set() because we can not re-initialize it while the list is being traversed under RCU. The deleted queue will not be added/deleted to/from a tagset and it will be freed in blk_free_queue() after the end of RCU grace period.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68753",
                                "url": "https://ubuntu.com/security/CVE-2025-68753",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: add bounds check in put_user loop for DSP events  In the DSP event handling code, a put_user() loop copies event data. When the user buffer size is not aligned to 4 bytes, it could overwrite beyond the buffer boundary.  Fix by adding a bounds check before put_user().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68347",
                                "url": "https://ubuntu.com/security/CVE-2025-68347",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: fix buffer overflow in hwdep read for DSP events  The DSP event handling code in hwdep_read() could write more bytes to the user buffer than requested, when a user provides a buffer smaller than the event header size (8 bytes).  Fix by using min_t() to clamp the copy size, This ensures we never copy more than the user requested.",
                                "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-68763",
                                "url": "https://ubuntu.com/security/CVE-2025-68763",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: starfive - Correctly handle return of sg_nents_for_len  The return value of sg_nents_for_len was assigned to an unsigned long in starfive_hash_digest, causing negative error codes to be converted to large positive integers.  Add error checking for sg_nents_for_len and return immediately on failure to prevent potential buffer overflows.",
                                "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-68741",
                                "url": "https://ubuntu.com/security/CVE-2025-68741",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Fix improper freeing of purex item  In qla2xxx_process_purls_iocb(), an item is allocated via qla27xx_copy_multiple_pkt(), which internally calls qla24xx_alloc_purex_item().  The qla24xx_alloc_purex_item() function may return a pre-allocated item from a per-adapter pool for small allocations, instead of dynamically allocating memory with kzalloc().  An error handling path in qla2xxx_process_purls_iocb() incorrectly uses kfree() to release the item. If the item was from the pre-allocated pool, calling kfree() on it is a bug that can lead to memory corruption.  Fix this by using the correct deallocation function, qla24xx_free_purex_item(), which properly handles both dynamically allocated and pre-allocated items.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68742",
                                "url": "https://ubuntu.com/security/CVE-2025-68742",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix invalid prog->stats access when update_effective_progs fails  Syzkaller triggers an invalid memory access issue following fault injection in update_effective_progs. The issue can be described as follows:  __cgroup_bpf_detach   update_effective_progs     compute_effective_progs       bpf_prog_array_alloc <-- fault inject   purge_effective_progs     /* change to dummy_bpf_prog */     array->items[index] = &dummy_bpf_prog.prog  ---softirq start--- __do_softirq   ...     __cgroup_bpf_run_filter_skb       __bpf_prog_run_save_cb         bpf_prog_run           stats = this_cpu_ptr(prog->stats)           /* invalid memory access */           flags = u64_stats_update_begin_irqsave(&stats->syncp) ---softirq end---    static_branch_dec(&cgroup_bpf_enabled_key[atype])  The reason is that fault injection caused update_effective_progs to fail and then changed the original prog into dummy_bpf_prog.prog in purge_effective_progs. Then a softirq came, and accessing the members of dummy_bpf_prog.prog in the softirq triggers invalid mem access.  To fix it, skip updating stats when stats is NULL.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16: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-68363",
                                "url": "https://ubuntu.com/security/CVE-2025-68363",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Check skb->transport_header is set in bpf_skb_check_mtu  The bpf_skb_check_mtu helper needs to use skb->transport_header when the BPF_MTU_CHK_SEGS flag is used:  \tbpf_skb_check_mtu(skb, ifindex, &mtu_len, 0, BPF_MTU_CHK_SEGS)  The transport_header is not always set. There is a WARN_ON_ONCE report when CONFIG_DEBUG_NET is enabled + skb->gso_size is set + bpf_prog_test_run is used:  WARNING: CPU: 1 PID: 2216 at ./include/linux/skbuff.h:3071  skb_gso_validate_network_len  bpf_skb_check_mtu  bpf_prog_3920e25740a41171_tc_chk_segs_flag # A test in the next patch  bpf_test_run  bpf_prog_test_run_skb  For a normal ingress skb (not test_run), skb_reset_transport_header is performed but there is plan to avoid setting it as described in commit 2170a1f09148 (\"net: no longer reset transport_header in __netif_receive_skb_core()\").  This patch fixes the bpf helper by checking skb_transport_header_was_set(). The check is done just before skb->transport_header is used, to avoid breaking the existing bpf prog. The WARN_ON_ONCE is limited to bpf_prog_test_run, so targeting bpf-next.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68744",
                                "url": "https://ubuntu.com/security/CVE-2025-68744",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Free special fields when update [lru_,]percpu_hash maps  As [lru_,]percpu_hash maps support BPF_KPTR_{REF,PERCPU}, missing calls to 'bpf_obj_free_fields()' in 'pcpu_copy_value()' could cause the memory referenced by BPF_KPTR_{REF,PERCPU} fields to be held until the map gets freed.  Fix this by calling 'bpf_obj_free_fields()' after 'copy_map_value[,_long]()' in 'pcpu_copy_value()'.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16: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-68755",
                                "url": "https://ubuntu.com/security/CVE-2025-68755",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: most: remove broken i2c driver  The MOST I2C driver has been completely broken for five years without anyone noticing so remove the driver from staging.  Specifically, commit 723de0f9171e (\"staging: most: remove device from interface structure\") started requiring drivers to set the interface device pointer before registration, but the I2C driver was never updated which results in a NULL pointer dereference if anyone ever tries to probe it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68371",
                                "url": "https://ubuntu.com/security/CVE-2025-68371",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: smartpqi: Fix device resources accessed after device removal  Correct possible race conditions during device removal.  Previously, a scheduled work item to reset a LUN could still execute after the device was removed, leading to use-after-free and other resource access issues.  This race condition occurs because the abort handler may schedule a LUN reset concurrently with device removal via sdev_destroy(), leading to use-after-free and improper access to freed resources.    - Check in the device reset handler if the device is still present in     the controller's SCSI device list before running; if not, the reset     is skipped.    - Cancel any pending TMF work that has not started in sdev_destroy().    - Ensure device freeing in sdev_destroy() is done while holding the     LUN reset mutex to avoid races with ongoing resets.",
                                "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-68379",
                                "url": "https://ubuntu.com/security/CVE-2025-68379",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Fix null deref on srq->rq.queue after resize failure  A NULL pointer dereference can occur in rxe_srq_chk_attr() when ibv_modify_srq() is invoked twice in succession under certain error conditions. The first call may fail in rxe_queue_resize(), which leads rxe_srq_from_attr() to set srq->rq.queue = NULL. The second call then triggers a crash (null deref) when accessing srq->rq.queue->buf->index_mask.  Call Trace: <TASK> rxe_modify_srq+0x170/0x480 [rdma_rxe] ? __pfx_rxe_modify_srq+0x10/0x10 [rdma_rxe] ? uverbs_try_lock_object+0x4f/0xa0 [ib_uverbs] ? rdma_lookup_get_uobject+0x1f0/0x380 [ib_uverbs] ib_uverbs_modify_srq+0x204/0x290 [ib_uverbs] ? __pfx_ib_uverbs_modify_srq+0x10/0x10 [ib_uverbs] ? tryinc_node_nr_active+0xe6/0x150 ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x2c0/0x470 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_run_method+0x55a/0x6e0 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ib_uverbs_cmd_verbs+0x54d/0x800 [ib_uverbs] ? __pfx_ib_uverbs_cmd_verbs+0x10/0x10 [ib_uverbs] ? __pfx___raw_spin_lock_irqsave+0x10/0x10 ? __pfx_do_vfs_ioctl+0x10/0x10 ? ioctl_has_perm.constprop.0.isra.0+0x2c7/0x4c0 ? __pfx_ioctl_has_perm.constprop.0.isra.0+0x10/0x10 ib_uverbs_ioctl+0x13e/0x220 [ib_uverbs] ? __pfx_ib_uverbs_ioctl+0x10/0x10 [ib_uverbs] __x64_sys_ioctl+0x138/0x1c0 do_syscall_64+0x82/0x250 ? fdget_pos+0x58/0x4c0 ? ksys_write+0xf3/0x1c0 ? __pfx_ksys_write+0x10/0x10 ? do_syscall_64+0xc8/0x250 ? __pfx_vm_mmap_pgoff+0x10/0x10 ? fget+0x173/0x230 ? fput+0x2a/0x80 ? ksys_mmap_pgoff+0x224/0x4c0 ? do_syscall_64+0xc8/0x250 ? do_user_addr_fault+0x37b/0xfe0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 entry_SYSCALL_64_after_hwframe+0x76/0x7e",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68380",
                                "url": "https://ubuntu.com/security/CVE-2025-68380",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix peer HE MCS assignment  In ath11k_wmi_send_peer_assoc_cmd(), peer's transmit MCS is sent to firmware as receive MCS while peer's receive MCS sent as transmit MCS, which goes against firmwire's definition.  While connecting to a misbehaved AP that advertises 0xffff (meaning not supported) for 160 MHz transmit MCS map, firmware crashes due to 0xffff is assigned to he_mcs->rx_mcs_set field.  \tExt Tag: HE Capabilities \t    [...] \t    Supported HE-MCS and NSS Set \t\t[...] \t        Rx and Tx MCS Maps 160 MHz \t\t    [...] \t            Tx HE-MCS Map 160 MHz: 0xffff  Swap the assignment to fix this issue.  As the HE rate control mask is meant to limit our own transmit MCS, it needs to go via he_mcs->rx_mcs_set field. With the aforementioned swapping done, change is needed as well to apply it to the peer's receive MCS.  Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41 Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11: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-68256",
                                "url": "https://ubuntu.com/security/CVE-2025-68256",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in rtw_get_ie() parser  The Information Element (IE) parser rtw_get_ie() trusted the length byte of each IE without validating that the IE body (len bytes after the 2-byte header) fits inside the remaining frame buffer. A malformed frame can advertise an IE length larger than the available data, causing the parser to increment its pointer beyond the buffer end. This results in out-of-bounds reads or, depending on the pattern, an infinite loop.  Fix by validating that (offset + 2 + len) does not exceed the limit before accepting the IE or advancing to the next element.  This prevents OOB reads and ensures the parser terminates safely on malformed frames.",
                                "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-68265",
                                "url": "https://ubuntu.com/security/CVE-2025-68265",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: fix admin request_queue lifetime  The namespaces can access the controller's admin request_queue, and stale references on the namespaces may exist after tearing down the controller. Ensure the admin request_queue is active by moving the controller's 'put' to after all controller references have been released to ensure no one is can access the request_queue. This fixes a reported use-after-free bug:    BUG: KASAN: slab-use-after-free in blk_queue_enter+0x41c/0x4a0   Read of size 8 at addr ffff88c0a53819f8 by task nvme/3287   CPU: 67 UID: 0 PID: 3287 Comm: nvme Tainted: G            E      6.13.2-ga1582f1a031e #15   Tainted: [E]=UNSIGNED_MODULE   Hardware name: Jabil /EGS 2S MB1, BIOS 1.00 06/18/2025   Call Trace:    <TASK>    dump_stack_lvl+0x4f/0x60    print_report+0xc4/0x620    ? _raw_spin_lock_irqsave+0x70/0xb0    ? _raw_read_unlock_irqrestore+0x30/0x30    ? blk_queue_enter+0x41c/0x4a0    kasan_report+0xab/0xe0    ? blk_queue_enter+0x41c/0x4a0    blk_queue_enter+0x41c/0x4a0    ? __irq_work_queue_local+0x75/0x1d0    ? blk_queue_start_drain+0x70/0x70    ? irq_work_queue+0x18/0x20    ? vprintk_emit.part.0+0x1cc/0x350    ? wake_up_klogd_work_func+0x60/0x60    blk_mq_alloc_request+0x2b7/0x6b0    ? __blk_mq_alloc_requests+0x1060/0x1060    ? __switch_to+0x5b7/0x1060    nvme_submit_user_cmd+0xa9/0x330    nvme_user_cmd.isra.0+0x240/0x3f0    ? force_sigsegv+0xe0/0xe0    ? nvme_user_cmd64+0x400/0x400    ? vfs_fileattr_set+0x9b0/0x9b0    ? cgroup_update_frozen_flag+0x24/0x1c0    ? cgroup_leave_frozen+0x204/0x330    ? nvme_ioctl+0x7c/0x2c0    blkdev_ioctl+0x1a8/0x4d0    ? blkdev_common_ioctl+0x1930/0x1930    ? fdget+0x54/0x380    __x64_sys_ioctl+0x129/0x190    do_syscall_64+0x5b/0x160    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f765f703b0b   Code: ff ff ff 85 c0 79 9b 49 c7 c4 ff ff ff ff 5b 5d 4c 89 e0 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d dd 52 0f 00 f7 d8 64 89 01 48   RSP: 002b:00007ffe2cefe808 EFLAGS: 00000202 ORIG_RAX: 0000000000000010   RAX: ffffffffffffffda RBX: 00007ffe2cefe860 RCX: 00007f765f703b0b   RDX: 00007ffe2cefe860 RSI: 00000000c0484e41 RDI: 0000000000000003   RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000000   R10: 00007f765f611d50 R11: 0000000000000202 R12: 0000000000000003   R13: 00000000c0484e41 R14: 0000000000000001 R15: 00007ffe2cefea60    </TASK>",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15: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-68259",
                                "url": "https://ubuntu.com/security/CVE-2025-68259",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: SVM: Don't skip unrelated instruction if INT3/INTO is replaced  When re-injecting a soft interrupt from an INT3, INT0, or (select) INTn instruction, discard the exception and retry the instruction if the code stream is changed (e.g. by a different vCPU) between when the CPU executes the instruction and when KVM decodes the instruction to get the next RIP.  As effectively predicted by commit 6ef88d6e36c2 (\"KVM: SVM: Re-inject INT3/INTO instead of retrying the instruction\"), failure to verify that the correct INTn instruction was decoded can effectively clobber guest state due to decoding the wrong instruction and thus specifying the wrong next RIP.  The bug most often manifests as \"Oops: int3\" panics on static branch checks in Linux guests.  Enabling or disabling a static branch in Linux uses the kernel's \"text poke\" code patching mechanism.  To modify code while other CPUs may be executing that code, Linux (temporarily) replaces the first byte of the original instruction with an int3 (opcode 0xcc), then patches in the new code stream except for the first byte, and finally replaces the int3 with the first byte of the new code stream.  If a CPU hits the int3, i.e. executes the code while it's being modified, then the guest kernel must look up the RIP to determine how to handle the #BP, e.g. by emulating the new instruction.  If the RIP is incorrect, then this lookup fails and the guest kernel panics.  The bug reproduces almost instantly by hacking the guest kernel to repeatedly check a static branch[1] while running a drgn script[2] on the host to constantly swap out the memory containing the guest's TSS.  [1]: https://gist.github.com/osandov/44d17c51c28c0ac998ea0334edf90b5a [2]: https://gist.github.com/osandov/10e45e45afa29b11e0c7209247afc00b",
                                "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-68263",
                                "url": "https://ubuntu.com/security/CVE-2025-68263",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: ipc: fix use-after-free in ipc_msg_send_request  ipc_msg_send_request() waits for a generic netlink reply using an ipc_msg_table_entry on the stack. The generic netlink handler (handle_generic_event()/handle_response()) fills entry->response under ipc_msg_table_lock, but ipc_msg_send_request() used to validate and free entry->response without holding the same lock.  Under high concurrency this allows a race where handle_response() is copying data into entry->response while ipc_msg_send_request() has just freed it, leading to a slab-use-after-free reported by KASAN in handle_generic_event():    BUG: KASAN: slab-use-after-free in handle_generic_event+0x3c4/0x5f0 [ksmbd]   Write of size 12 at addr ffff888198ee6e20 by task pool/109349   ...   Freed by task:     kvfree     ipc_msg_send_request [ksmbd]     ksmbd_rpc_open -> ksmbd_session_rpc_open [ksmbd]  Fix by: - Taking ipc_msg_table_lock in ipc_msg_send_request() while validating   entry->response, freeing it when invalid, and removing the entry from   ipc_msg_table. - Returning the final entry->response pointer to the caller only after   the hash entry is removed under the lock. - Returning NULL in the error path, preserving the original API   semantics.  This makes all accesses to entry->response consistent with handle_response(), which already updates and fills the response buffer under ipc_msg_table_lock, and closes the race that allowed the UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15: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-2026-23111",
                                "url": "https://ubuntu.com/security/CVE-2026-23111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23209",
                                "url": "https://ubuntu.com/security/CVE-2026-23209",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23074",
                                "url": "https://ubuntu.com/security/CVE-2026-23074",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23060",
                                "url": "https://ubuntu.com/security/CVE-2026-23060",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-110.110~22.04.1 -proposed tracker (LP: #2143477)",
                            "",
                            "  [ Ubuntu: 6.8.0-110.110 ]",
                            "",
                            "  * noble/linux: 6.8.0-110.110 -proposed tracker (LP: #2144887)",
                            "  * ITS mitigation is not enabled on affected CPUs (LP: #2144730)",
                            "    - x86/bugs: Rename CONFIG_RETPOLINE => CONFIG_MITIGATION_RETPOLINE",
                            "    - x86/bugs: Rename CONFIG_RETHUNK => CONFIG_MITIGATION_RETHUNK",
                            "    - [Config] rename config options RETHUNK and RETPOLINE",
                            "",
                            "  [ Ubuntu: 6.8.0-108.108 ]",
                            "",
                            "  * noble/linux: 6.8.0-108.108 -proposed tracker (LP: #2143478)",
                            "  * linux-riscv-6.8 is FTBFS because of missing patches (LP: #2142235)",
                            "    - riscv, bpf: Unify 32-bit sign-extension to emit_sextw",
                            "    - riscv, bpf: Unify 32-bit zero-extension to emit_zextw",
                            "    - riscv, bpf: Simplify sext and zext logics in branch instructions",
                            "    - riscv, bpf: Add necessary Zbb instructions",
                            "    - riscv, bpf: Optimize sign-extention mov insns with Zbb support",
                            "    - riscv, bpf: Optimize bswap insns with Zbb support",
                            "  * ADT test for linux package failed with \"fatal: unable to connect to",
                            "    git.launchpad.net\" (LP: #2143033)",
                            "    - [Packaging] d/t/ubuntu-regression-suite: use https to clone",
                            "  * Coresight fails to build on 6.8.0-102 due to missing function and arg",
                            "    definitions (LP: #2142337)",
                            "    - SAUCE: Revert \"coresight: catu: Support atclk\"",
                            "    - SAUCE: Revert \"coresight: catu: Move ACPI support from AMBA driver to",
                            "      platform driver\"",
                            "    - SAUCE: Revert \"coresight: tmc: Support atclk\"",
                            "    - SAUCE: Revert \"coresight: tmc: Move ACPI support from AMBA driver to",
                            "      platform driver\"",
                            "    - SAUCE: Revert \"Coresight: Set correct cs_mode for TPDM to fix disable",
                            "      issue\"",
                            "    - SAUCE: Revert \"Coresight: Set correct cs_mode for dummy source to fix",
                            "      disable issue\"",
                            "  * efi: Fix swapped arguments to bsearch() in efi_status_to_*() SAUCE patch",
                            "    (LP: #2141276)",
                            "    - SAUCE efi: Fix swapped arguments to bsearch() in efi_status_to_*()",
                            "  * Fix conntrack use after free when ovs hardware offload is enabled",
                            "    (LP: #2139322)",
                            "    - netfilter: conntrack: remove skb argument from nf_ct_refresh",
                            "    - netfilter: conntrack: rework offload nf_conn timeout extension logic",
                            "    - netfilter: conntrack: fix erronous removal of offload bit",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789)",
                            "    - xhci: fix stale flag preventig URBs after link state error is cleared",
                            "    - Revert \"xfrm: destroy xfrm_state synchronously on net exit path\"",
                            "    - xfrm: flush all states in xfrm_state_fini",
                            "    - 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",
                            "    - ftrace: bpf: Fix IPMODIFY + DIRECT in modify_ftrace_direct()",
                            "    - spi: xilinx: increase number of retries before declaring stall",
                            "    - spi: imx: keep dma request disabled before dma transfer setup",
                            "    - drm/vmwgfx: Use kref in vmw_bo_dirty",
                            "    - Bluetooth: btrtl: Avoid loading the config file on security chips",
                            "    - smb: fix invalid username check in smb3_fs_context_parse_param()",
                            "    - ALSA: usb-audio: Add native DSD quirks for PureAudio DAC series",
                            "    - HID: hid-input: Extend Elan ignore battery quirk to USB",
                            "    - pinctrl: qcom: msm: Fix deadlock in pinmux configuration",
                            "    - platform/x86: acer-wmi: Ignore backlight event",
                            "    - HID: apple: Add SONiX AK870 PRO to non_apple_keyboards quirk list",
                            "    - platform/x86: huawei-wmi: add keys for HONOR models",
                            "    - platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list",
                            "    - platform/x86/amd/pmc: Add spurious_8042 to Xbox Ally",
                            "    - HID: elecom: Add support for ELECOM M-XT3URBK (018F)",
                            "    - LoongArch: Mask all interrupts during kexec/kdump",
                            "    - samples: work around glibc redefining some of our defines wrong",
                            "    - wifi: rtw88: Add USB ID 2001:3329 for D-Link AC13U rev. A1",
                            "    - drm/panel: visionox-rm69299: Don't clear all mode flags",
                            "    - USB: Fix descriptor count when handling invalid MBIM extended descriptor",
                            "    - clk: renesas: cpg-mssr: Add missing 1ms delay into reset toggle callback",
                            "    - clk: renesas: Use str_on_off() helper",
                            "    - clk: renesas: Pass sub struct of cpg_mssr_priv to cpg_clk_register",
                            "    - clk: renesas: cpg-mssr: Read back reset registers to assure values",
                            "      latched",
                            "    - HID: logitech-hidpp: Do not assume FAP in hidpp_send_message_sync()",
                            "    - objtool: Fix standalone --hacks=jump_label",
                            "    - objtool: Fix weak symbol detection",
                            "    - sched/fair: Forfeit vruntime on yield",
                            "    - irqchip/irq-bcm7038-l1: Fix section mismatch",
                            "    - irqchip/irq-bcm7120-l2: Fix section mismatch",
                            "    - irqchip/irq-brcmstb-l2: Fix section mismatch",
                            "    - irqchip/imx-mu-msi: Fix section mismatch",
                            "    - irqchip/qcom-irq-combiner: Fix section mismatch",
                            "    - crypto: authenc - Correctly pass EINPROGRESS back up to the caller",
                            "    - 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: Fix measurement unit for odr struct member",
                            "    - arm64: dts: freescale: imx8mp-venice-gw7905-2x: remove duplicate usdhc1",
                            "      props",
                            "    - arm64: dts: imx8mm-venice-gw72xx: remove unused sdhc1 pinctrl",
                            "    - arm64: dts: imx8mp-venice-gw702x: remove off-board uart",
                            "    - arm64: dts: imx8mp-venice-gw702x: remove off-board sdhc1",
                            "    - PCI: rcar-gen2: Drop ARM dependency from PCI_RCAR_GEN2",
                            "    - uio: uio_fsl_elbc_gpcm:: Add null pointer check to",
                            "      uio_fsl_elbc_gpcm_probe",
                            "    - clk: qcom: camcc-sm6350: Specify Titan GDSC power domain as a parent to",
                            "      other",
                            "    - clk: qcom: camcc-sm6350: Fix PLL config of PLL2",
                            "    - 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",
                            "    - arm64: dts: ti: k3-am62p: Fix memory ranges for GPU",
                            "    - firmware: imx: scu-irq: fix OF node leak in",
                            "    - arm64: dts: qcom: sdm845-oneplus: Correct gpio used for slider",
                            "    - phy: mscc: Fix PTP for VSC8574 and VSC8572",
                            "    - sctp: Defer SCTP_DBG_OBJCNT_DEC() to sctp_destroy_sock().",
                            "    - ARM: dts: renesas: gose: Remove superfluous port property",
                            "    - ARM: dts: renesas: r9a06g032-rzn1d400-db: Drop invalid #cells properties",
                            "    - Revert \"mtd: rawnand: marvell: fix layouts\"",
                            "    - mtd: nand: relax ECC parameter validation check",
                            "    - mtd: rawnand: lpc32xx_slc: fix GPIO descriptor leak on probe error and",
                            "      remove",
                            "    - task_work: Fix NMI race condition",
                            "    - x86/dumpstack: Prevent KASAN false positive warnings in __show_regs()",
                            "    - tools/nolibc/stdio: let perror work when NOLIBC_IGNORE_ERRNO is set",
                            "    - soc: qcom: smem: fix hwspinlock resource leak in probe error paths",
                            "    - pinctrl: stm32: fix hwspinlock resource leak in probe function",
                            "    - i3c: fix refcount inconsistency in i3c_master_register",
                            "    - i3c: master: svc: Prevent incomplete IBI transaction",
                            "    - interconnect: qcom: msm8996: add missing link to SLAVE_USB_HS",
                            "    - arm64: dts: qcom: msm8996: add interconnect paths to USB2 controller",
                            "    - interconnect: debugfs: Fix incorrect error handling for NULL path",
                            "    - perf lock contention: Load kernel map before lookup",
                            "    - perf record: skip synthesize event when open evsel failed",
                            "    - power: supply: cw2015: Check devm_delayed_work_autocancel() return code",
                            "    - power: supply: rt9467: Return error on failure in",
                            "      rt9467_set_value_from_ranges()",
                            "    - power: supply: rt9467: Prevent using uninitialized local variable in",
                            "      rt9467_set_value_from_ranges()",
                            "    - 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",
                            "    - fs/9p: Don't open remote file with APPEND mode when writeback cache is",
                            "      used",
                            "    - ARM: dts: am335x-netcom-plus-2xx: add missing GPIO labels",
                            "    - ARM: dts: omap3: beagle-xm: Correct obsolete TWL4030 power compatible",
                            "    - ARM: dts: omap3: n900: Correct obsolete TWL4030 power compatible",
                            "    - x86/boot: Fix page table access in 5-level to 4-level paging transition",
                            "    - efi/libstub: Fix page table access in 5-level to 4-level paging",
                            "      transition",
                            "    - mfd: da9055: Fix missing regmap_del_irq_chip() in error path",
                            "    - 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",
                            "    - scsi: stex: Fix reboot_notifier leak in probe error path",
                            "    - staging: most: i2c: Drop explicit initialization of struct",
                            "      i2c_device_id::driver_data to 0",
                            "    - [Config] remove MOST_I2C driver",
                            "    - dt-bindings: PCI: amlogic: Fix the register name of the DBI region",
                            "    - RDMA/rtrs: server: Fix error handling in get_or_create_srv",
                            "    - ARM: dts: stm32: stm32mp157c-phycore: Fix STMPE811 touchscreen node",
                            "      properties",
                            "    - ntfs3: init run lock for extend inode",
                            "    - scsi: ufs: core: fix incorrect buffer duplication in",
                            "      ufshcd_read_string_desc()",
                            "    - cpufreq/amd-pstate: Call cppc_set_auto_sel() only for online CPUs",
                            "    - powerpc/32: Fix unpaired stwcx. on interrupt exit",
                            "    - wifi: cw1200: Fix potential memory leak in cw1200_bh_rx_helper()",
                            "    - coresight: etm4x: Correct polling IDLE bit",
                            "    - 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",
                            "    - arm64: dts: rockchip: Move the EEPROM to correct I2C bus on Radxa ROCK",
                            "      5A",
                            "    - arm64: dts: rockchip: Add eeprom vcc-supply for Radxa ROCK 5A",
                            "    - ps3disk: use memcpy_{from,to}_bvec index",
                            "    - bpf: Handle return value of ftrace_set_filter_ip in register_fentry",
                            "    - selftests/bpf: Fix failure paths in send_signal test",
                            "    - watchdog: wdat_wdt: Fix ACPI table leak in probe function",
                            "    - watchdog: starfive: Fix resource leak in probe error path",
                            "    - tracefs: fix a leak in eventfs_create_events_dir()",
                            "    - NFSD/blocklayout: Fix minlength check in proc_layoutget",
                            "    - drm/msm/a2xx: stop over-complaining about the legacy firmware",
                            "    - bpf: Improve program stats run-time calculation",
                            "    - powerpc/64s/hash: Restrict stress_hpt_struct memblock region to within",
                            "      RMA limit",
                            "    - powerpc/64s/ptdump: Fix kernel_hash_pagetable dump for ISA v3.00 HPTE",
                            "      format",
                            "    - 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",
                            "    - net/ipv6: Remove expired routes with a separated list of routes.",
                            "    - ipv6: clear RA flags when adding a static route",
                            "    - perf arm-spe: Extend branch operations",
                            "    - perf arm_spe: Fix memset subclass in operation",
                            "    - pwm: bcm2835: Make sure the channel is enabled after pwm_request()",
                            "    - wifi: mac80211: fix CMAC functions not handling errors",
                            "    - mfd: mt6397-irq: Fix missing irq_domain_remove() in error path",
                            "    - mfd: mt6358-irq: Fix missing irq_domain_remove() in error path",
                            "    - phy: renesas: rcar-gen3-usb2: Fix an error handling path in",
                            "      rcar_gen3_phy_usb2_probe()",
                            "    - net: phy: adin1100: Fix software power-down ready condition",
                            "    - cpuset: Treat cpusets in attaching as populated",
                            "    - 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",
                            "    - RISC-V: KVM: Fix guest page fault within HLV* instructions",
                            "    - RDMA/bnxt_re: Fix the inline size for GenP7 devices",
                            "    - firmware: stratix10-svc: fix make htmldocs warning for stratix10_svc",
                            "    - staging: fbtft: core: fix potential memory leak in fbtft_probe_common()",
                            "    - btrfs: fix leaf leak in an error path in btrfs_del_items()",
                            "    - PCI: dwc: Fix wrong PORT_LOGIC_LTSSM_STATE_MASK definition",
                            "    - drm/nouveau: restrict the flush page to a 32-bit address",
                            "    - iomap: factor out a iomap_dio_done helper",
                            "    - iomap: always run error completions in user context",
                            "    - wifi: ieee80211: correct FILS status codes",
                            "    - 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",
                            "    - RDMA/irdma: Do not directly rely on IB_PD_UNSAFE_GLOBAL_RKEY",
                            "    - ASoC: fsl_xcvr: clear the channel status control memory",
                            "    - drm/amd/display: Fix logical vs bitwise bug in",
                            "      get_embedded_panel_info_v2_1()",
                            "    - hwmon: sy7636a: Fix regulator_enable resource leak on error path",
                            "    - ACPI: processor_core: fix map_x2apic_id for amd-pstate on am4",
                            "    - ublk: prevent invalid access with DEBUG",
                            "    - ext4: improve integrity checking in __mb_check_buddy by enhancing",
                            "      order-0 validation",
                            "    - virtio_vdpa: fix misleading return in void function",
                            "    - virtio: fix typo in virtio_device_ready() comment",
                            "    - virtio: fix whitespace in virtio_config_ops",
                            "    - virtio: fix virtqueue_set_affinity() docs",
                            "    - vdpa/pds: use %pe for ERR_PTR() in event handler registration",
                            "    - ASoC: Intel: catpt: Fix error path in hw_params()",
                            "    - ARM: dts: samsung: universal_c210: turn off SDIO WLAN chip during system",
                            "      suspend",
                            "    - ARM: dts: samsung: exynos4210-i9100: turn off SDIO WLAN chip during",
                            "      system suspend",
                            "    - ARM: dts: samsung: exynos4210-trats: turn off SDIO WLAN chip during",
                            "      system suspend",
                            "    - ARM: dts: samsung: exynos4412-midas: turn off SDIO WLAN chip during",
                            "      system suspend",
                            "    - resource: replace open coded resource_intersection()",
                            "    - resource: introduce is_type_match() helper and use it",
                            "    - Reinstate \"resource: avoid unnecessary lookups in find_next_iomem_res()\"",
                            "    - netfilter: flowtable: check for maximum number of encapsulations in",
                            "      bridge vlan",
                            "    - 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: rawnand: renesas: Handle devm_pm_runtime_enable() errors",
                            "    - selftests: bonding: add ipvlan over bond testing",
                            "    - selftests: bonding: add delay before each xvlan_over_bond connectivity",
                            "      check",
                            "    - mtd: lpddr_cmds: fix signed shifts in lpddr_cmds",
                            "    - remoteproc: qcom_q6v5_wcss: fix parsing of qcom,halt-regs",
                            "    - md/raid5: fix IO hang when array is broken with IO inflight",
                            "    - clk: keystone: fix compile testing",
                            "    - 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()",
                            "    - 9p: fix cache/debug options printing in v9fs_show_options",
                            "    - NFS: Avoid changing nlink when file removes and attribute updates race",
                            "    - fs/nls: Fix utf16 to utf8 conversion",
                            "    - NFS: Initialise verifiers for visible dentries in readdir and lookup",
                            "    - 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\"",
                            "    - Expand the type of nfs_fattr->valid",
                            "    - NFS: Fix inheritance of the block sizes when automounting",
                            "    - 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",
                            "    - nvme-auth: use kvfree() for memory allocated with kvcalloc()",
                            "    - dma/pool: eliminate alloc_pages warning in atomic_pool_expand",
                            "    - ALSA: uapi: Fix typo in asound.h comment",
                            "    - rtc: gamecube: Check the return value of ioremap()",
                            "    - 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()",
                            "    - LoongArch: Add machine_kexec_mask_interrupts() implementation",
                            "    - net: lan743x: Allocate rings outside ZONE_DMA",
                            "    - usb: gadget: tegra-xudc: Always reinitialize data toggle when clear halt",
                            "    - usb: phy: Initialize struct usb_phy list_head",
                            "    - ipv6: add exception routes to GC list in rt6_insert_exception",
                            "    - btrfs: do not skip logging new dentries when logging a new name",
                            "    - btrfs: fix a potential path leak in print_data_reloc_error()",
                            "    - bpf, arm64: Do not audit capability check in do_jit()",
                            "    - btrfs: fix memory leak of fs_devices in degraded seed device path",
                            "    - iomap: account for unaligned end offsets when truncating read range",
                            "    - sched/fair: Revert max_newidle_lb_cost bump",
                            "    - x86/ptrace: Always inline trivial accessors",
                            "    - ACPI: property: Use ACPI functions in acpi_graph_get_next_endpoint()",
                            "      only",
                            "    - cpufreq: dt-platdev: Add JH7110S SOC to the allowlist",
                            "    - cpufreq: s5pv210: fix refcount leak",
                            "    - cpuidle: menu: Use residency threshold in polling state override",
                            "      decisions",
                            "    - livepatch: Match old_sympos 0 and 1 in klp_find_func()",
                            "    - fs/ntfs3: Support timestamps prior to epoch",
                            "    - kbuild: Use objtree for module signing key path",
                            "    - hfsplus: fix volume corruption issue for generic/070",
                            "    - hfsplus: fix volume corruption issue for generic/073",
                            "    - wifi: brcmfmac: Add DMI nvram filename quirk for Acer A1 840 tablet",
                            "    - btrfs: scrub: always update btrfs_scrub_progress::last_physical",
                            "    - gfs2: fix remote evict for read-only filesystems",
                            "    - smb/server: fix return value of smb2_ioctl()",
                            "    - ksmbd: use rwsem instead of rwlock for lease break",
                            "    - Bluetooth: btusb: Add new VID/PID 2b89/6275 for RTL8761BUV",
                            "    - Bluetooth: btusb: Add new VID/PID 13d3/3533 for RTL8821CE",
                            "    - net: fec: ERR007885 Workaround for XDP TX path",
                            "    - ipvlan: Ignore PACKET_LOOPBACK in handle_mode_l2()",
                            "    - mlxsw: spectrum_router: Fix possible neighbour reference count leak",
                            "    - 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()",
                            "    - netfilter: nf_tables: pass context structure to nft_parse_register_load",
                            "    - netfilter: nf_tables: allow loads only when register is initialized",
                            "    - netfilter: nf_tables: remove redundant chain validation on register",
                            "      store",
                            "    - net/mlx5: fw reset, clear reset requested on drain_fw_reset",
                            "    - net/mlx5: Drain firmware reset in shutdown callback",
                            "    - net/mlx5: fw_tracer, Handle escaped percent properly",
                            "    - net/mlx5: Skip HotPlug check on sync reset using hot reset",
                            "    - net/mlx5: Serialize firmware reset with devlink",
                            "    - net: enetc: do not transmit redirected XDP frames when the link is down",
                            "    - net: hns3: using the num_tqps to check whether tqp_index is out of range",
                            "      when vf get ring info from mbx",
                            "    - hwmon: (tmp401) fix overflow caused by default conversion rate value",
                            "    - MIPS: Fix a reference leak bug in ip22_check_gio()",
                            "    - drm/panel: sony-td4353-jdi: Enable prepare_prev_first",
                            "    - x86/xen: Move Xen upcall handler",
                            "    - x86/xen: Fix sparse warning in enlighten_pv.c",
                            "    - spi: cadence-quadspi: Fix clock disable on probe failure path",
                            "    - block: rnbd-clt: Fix leaked ID in init_dev()",
                            "    - HID: input: map HID_GD_Z to ABS_DISTANCE for stylus/pen",
                            "    - Input: i8042 - add TUXEDO InfinityBook Max Gen10 AMD to i8042 quirk",
                            "      table",
                            "    - can: gs_usb: gs_can_open(): fix error handling",
                            "    - ACPI: PCC: Fix race condition by removing static qualifier",
                            "    - ACPI: CPPC: Fix missing PCC check for guaranteed_perf",
                            "    - mmc: sdhci-esdhc-imx: add alternate ARCH_S32 dependency to Kconfig",
                            "    - dt-bindings: mmc: sdhci-of-aspeed: Switch ref to sdhci-common.yaml",
                            "    - 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",
                            "    - fuse: Always flush the page cache before FOPEN_DIRECT_IO write",
                            "    - fuse: Invalidate the page cache after FOPEN_DIRECT_IO write",
                            "    - reset: fix BIT macro reference",
                            "    - exfat: fix remount failure in different process environments",
                            "    - usbip: Fix locking bug in RT-enabled kernels",
                            "    - iio: adc: ti_am335x_adc: Limit step_avg to valid range for gcc complains",
                            "    - 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",
                            "    - libperf cpumap: Fix perf_cpu_map__max for an empty/NULL map",
                            "    - i2c: designware: Disable SMBus interrupts to prevent storms from mis-",
                            "      configured firmware",
                            "    - 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",
                            "    - block: rnbd-clt: Fix signedness bug in init_dev()",
                            "    - 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",
                            "    - s390/dasd: Fix gendisk parent after copy pair swap",
                            "    - block: rate-limit capacity change info log",
                            "    - floppy: fix for PAGE_SIZE != 4KB",
                            "    - kallsyms: Fix wrong \"big\" kernel symbol type read from procfs",
                            "    - 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 per-journal lock_class_key for jbd2_trans_commit_key",
                            "    - jbd2: use a weaker annotation in journal handling",
                            "    - media: v4l2-mem2mem: Fix outdated documentation",
                            "    - mptcp: schedule rtx timer only after pushing data",
                            "    - 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: dwc3: keep susphy enabled during exit to avoid controller faults",
                            "    - usb: renesas_usbhs: Fix a resource leak in usbhs_pipe_malloc()",
                            "    - intel_th: Fix error handling in intel_th_output_open",
                            "    - cpuidle: governors: teo: Drop misguided target residency check",
                            "    - cpufreq: nforce2: fix reference count leak in nforce2",
                            "    - NFSD: use correct reservation type in nfsd4_scsi_fence_client",
                            "    - f2fs: fix age extent cache insertion skip on counter overflow",
                            "    - tools/testing/nvdimm: Use per-DIMM device handle",
                            "    - KVM: x86: Don't clear async #PF queue when CR0.PG is disabled (e.g. on",
                            "      #SMI)",
                            "    - 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: Avoid incorrect injection of SVM_EXIT_CR0_SEL_WRITE",
                            "    - KVM: SVM: Mark VMCB_NPT as dirty on nested VMRUN",
                            "    - KVM: nSVM: Propagate SVM_EXIT_CR0_SEL_WRITE correctly for LMSW emulation",
                            "    - KVM: SVM: Mark VMCB_PERM_MAP as dirty on nested VMRUN",
                            "    - 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",
                            "    - xfs: fix a memory leak in xfs_buf_item_init()",
                            "    - PM: runtime: Do not clear needs_force_resume with enabled runtime PM",
                            "    - r8169: fix RTL8117 Wake-on-Lan in DASH mode",
                            "    - nfsd: Mark variable __maybe_unused to avoid W=1 build break",
                            "    - svcrdma: return 0 on success from svc_rdma_copy_inline_range",
                            "    - s390/ipl: Clear SBP flag when bootprog is set",
                            "    - gpio: regmap: Fix memleak in error path in gpio_regmap_register()",
                            "    - drm/amd/display: Use GFP_ATOMIC in dc_create_plane_state()",
                            "    - selftests: openvswitch: Fix escape chars in regexp.",
                            "    - crypto: caam - Add check for kcalloc() in test_len()",
                            "    - amba: tegra-ahb: Fix device leak on SMMU enable",
                            "    - tracing: Fix fixed array of synthetic event",
                            "    - soc: qcom: ocmem: fix device leak on lookup",
                            "    - soc: amlogic: canvas: fix device leak on lookup",
                            "    - rpmsg: glink: fix rpmsg device leak",
                            "    - platform/x86: intel: chtwc_int33fe: don't dereference swnode args",
                            "    - 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",
                            "    - ARM: dts: microchip: sama5d2: fix spi flexcom fifo size to 32",
                            "    - wifi: rtw88: limit indirect IO under powered off for RTL8822CS",
                            "    - wifi: cfg80211: sme: store capped length in __cfg80211_connect_result()",
                            "    - wifi: mac80211: do not use old MBSSID elements",
                            "    - i40e: fix scheduling in set_rx_mode",
                            "    - 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",
                            "    - amd-xgbe: reset retries and mode on RX adapt failures",
                            "    - Revert \"UBUNTU: SAUCE: selftests: net: fix \"buffer overflow detected\"",
                            "      for tap.c\"",
                            "    - selftests: net: fix \"buffer overflow detected\" for tap.c",
                            "    - 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",
                            "    - blk-mq: don't schedule block kworker on isolated CPUs",
                            "    - blk-mq: skip CPU offline notify on unmapped hctx",
                            "    - selftests/ftrace: traceonoff_triggers: strip off names",
                            "    - ntfs: Do not overwrite uptodate pages",
                            "    - ASoC: stm32: sai: fix device leak on probe",
                            "    - ASoC: stm32: sai: fix clk prepare imbalance on probe failure",
                            "    - ASoC: qcom: q6apm-dai: set flags to reflect correct operation of",
                            "      appl_ptr",
                            "    - 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/amd: Fix pci_segment memleak in alloc_pci_segment()",
                            "    - 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-v1: fix device leaks on probe()",
                            "    - iommu/mediatek: fix device leak on of_xlate()",
                            "    - iommu/omap: fix device leaks on probe_device()",
                            "    - iommu/qcom: fix device leak on of_xlate()",
                            "    - 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",
                            "    - SAUCE: Revert \"arm64: dts: ti: k3-j721e-sk: Add DT nodes for power",
                            "      regulators\"",
                            "    - arm64: dts: ti: k3-j721e-sk: Fix pinmux for pin Y1 used by power",
                            "      regulator",
                            "    - powerpc, mm: Fix mprotect on book3s 32-bit",
                            "    - 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",
                            "    - leds: leds-lp50xx: Enable chip before any communication",
                            "    - 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()",
                            "    - powerpc/pseries/cmm: call balloon_devinfo_init() also without",
                            "      CONFIG_BALLOON_COMPACTION",
                            "    - firmware: stratix10-svc: Add mutex in stratix10 memory management",
                            "    - dm-ebs: Mark full buffer dirty even on partial write",
                            "    - dm-bufio: align write boundary on physical block size",
                            "    - 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: renesas: rcar_drif: fix device node reference leak in",
                            "      rcar_drif_bond_enabled",
                            "    - media: samsung: exynos4-is: fix potential ABBA deadlock on init",
                            "    - media: TDA1997x: Remove redundant cancel_delayed_work in probe",
                            "    - media: verisilicon: Protect G2 HEVC decoder against invalid DPB index",
                            "    - media: videobuf2: Fix device reference leak in vb2_dc_alloc error path",
                            "    - media: vpif_capture: fix section mismatch",
                            "    - media: vpif_display: fix section mismatch",
                            "    - media: amphion: Cancel message work before releasing the VPU core",
                            "    - media: i2c: ADV7604: Remove redundant cancel_delayed_work in probe",
                            "    - media: i2c: adv7842: Remove redundant cancel_delayed_work in probe",
                            "    - media: mediatek: vcodec: Fix a reference leak in",
                            "      mtk_vcodec_fw_vpu_init()",
                            "    - LoongArch: Add new PCI ID for pci_fixup_vgadev()",
                            "    - LoongArch: Correct the calculation logic of thread_count",
                            "    - LoongArch: Fix build errors for CONFIG_RANDSTRUCT",
                            "    - LoongArch: Use __pmd()/__pte() for swap entry conversions",
                            "    - LoongArch: Use unsigned long for _end and _text",
                            "    - compiler_types.h: add \"auto\" as a macro for \"__auto_type\"",
                            "    - kasan: refactor pcpu kasan vmalloc unpoison",
                            "    - idr: fix idr_alloc() returning an ID out of range",
                            "    - tools/mm/page_owner_sort: fix timestamp comparison for stable sorting",
                            "    - samples/ftrace: Adjust LoongArch register restore order in direct calls",
                            "    - fjes: Add missing iounmap in fjes_hw_init()",
                            "    - LoongArch: BPF: Zero-extend bpf_tail_call() index",
                            "    - nfsd: Drop the client reference in client_states_open()",
                            "    - net: usb: sr9700: fix incorrect command used to write single register",
                            "    - net: macb: Relocate mog_init_rings() callback from macb_mac_link_up() to",
                            "      macb_open()",
                            "    - drm/amdgpu: add missing lock to amdgpu_ttm_access_memory_sdma",
                            "    - drm/msm/a6xx: Fix out of bound IO access in a6xx_get_gmu_registers",
                            "    - drm/gma500: Remove unused helper psb_fbdev_fb_setcolreg()",
                            "    - drm/mediatek: Fix device node reference leak in mtk_dp_dt_parse()",
                            "    - drm/mgag200: Fix big-endian support",
                            "    - drm/nouveau/dispnv50: Don't call drm_atomic_get_crtc_state() in",
                            "      prepare_fb",
                            "    - blk-mq: add helper for checking if one CPU is mapped to specified hctx",
                            "    - mptcp: Initialise rcv_mss before calling tcp_send_active_reset() in",
                            "      mptcp_do_fastclose().",
                            "    - ALSA: wavefront: Use standard print API",
                            "    - ALSA: wavefront: Use guard() for spin locks",
                            "    - ALSA: wavefront: Clear substream pointers on close",
                            "    - ext4: fix string copying in parse_apply_sb_mount_options()",
                            "    - jbd2: fix the inconsistency between checksum and data in memory for",
                            "      journal sb",
                            "    - btrfs: don't rewrite ret from inode_permission",
                            "    - mm/ksm: fix exec/fork inheritance support for prctl",
                            "    - usb: ohci-nxp: Use helper function devm_clk_get_enabled()",
                            "    - usb: ohci-nxp: fix device leak on probe failure",
                            "    - scsi: ufs: core: Add ufshcd_update_evt_hist() for UFS suspend error",
                            "    - f2fs: use f2fs_err_ratelimited() to avoid redundant logs",
                            "    - ARM: dts: microchip: sama7g5: fix uart fifo size to 32",
                            "    - fuse: fix readahead reclaim deadlock",
                            "    - PCI: brcmstb: Fix disabling L0s capability",
                            "    - lockd: fix vfs_test_lock() calls",
                            "    - mm: simplify folio_expected_ref_count()",
                            "    - mm: consider non-anon swap cache folios in folio_expected_ref_count()",
                            "    - pmdomain: imx: Fix reference count leak in imx_gpc_probe()",
                            "    - net: phy: mediatek: fix nvmem cell reference leak in",
                            "      mt798x_phy_calibration",
                            "    - drm/amdgpu: Forward VMID reservation errors",
                            "    - drm/mediatek: Fix probe memory leak",
                            "    - drm/mediatek: Fix probe resource leaks",
                            "    - drm/tilcdc: request and mapp iomem with devres",
                            "    - tty: introduce and use tty_port_tty_vhangup() helper",
                            "    - xhci: dbgtty: fix device unregister: fixup",
                            "    - usb: xhci: move link chain bit quirk checks into one helper function.",
                            "    - LoongArch: Refactor register restoration in ftrace_common_return",
                            "    - f2fs: remove unused GC_FAILURE_PIN",
                            "    - f2fs: keep POSIX_FADV_NOREUSE ranges",
                            "    - f2fs: drop inode from the donation list when the last file is closed",
                            "    - f2fs: fix to propagate error from f2fs_enable_checkpoint()",
                            "    - f2fs: fix to detect recoverable inode during dryrun of",
                            "      find_fsync_dnodes()",
                            "    - media: verisilicon: Fix CPU stalls on G2 bus error",
                            "    - 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",
                            "    - KVM: nVMX: Immediately refresh APICv controls as needed on nested VM-",
                            "      Exit",
                            "    - media: amphion: Add a frame flush mode for decoder",
                            "    - media: amphion: Make some vpu_v4l2 functions static",
                            "    - media: amphion: Remove vpu_vb_is_codecconfig",
                            "    - 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()",
                            "    - sched/fair: Small cleanup to sched_balance_newidle()",
                            "    - sched/fair: Small cleanup to update_newidle_cost()",
                            "    - sched/fair: Proportional newidle balance",
                            "    - RDMA/rxe: Fix the failure of ibv_query_device() and",
                            "      ibv_query_device_ex() tests",
                            "    - mm/damon/tests/vaddr-kunit: handle alloc failures on",
                            "      damon_test_split_evenly_succ()",
                            "    - mm/damon/tests/core-kunit: handle alloc failres in",
                            "      damon_test_new_filter()",
                            "    - mm/damon/tests/core-kunit: handle allocation failures in",
                            "      damon_test_regions()",
                            "    - 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 alloc failures on",
                            "      damos_test_filter_out()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures in",
                            "      damon_test_set_regions()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures in",
                            "      damon_test_ops_registration()",
                            "    - mm/damon/tests/core-kunit: handle alloc failure on",
                            "      damon_test_set_attrs()",
                            "    - virtio_console: fix order of fields cols and rows",
                            "    - pwm: stm32: Always program polarity",
                            "    - tty: fix tty_port_tty_*hangup() kernel-doc",
                            "    - firmware: arm_scmi: Fix unused notifier-block in unregister",
                            "    - ext4: filesystems without casefold feature cannot be mounted with",
                            "      siphash",
                            "    - drm/amdkfd: Fix GPU mappings for APU after prefetch",
                            "    - wifi: rtl8xxxu: Add USB ID 2001:3328 for D-Link AN3U rev. A1",
                            "    - smack: fix bug: setting task label silently ignores input garbage",
                            "    - wifi: ath10k: Avoid vdev delete timeout when firmware is already down",
                            "    - wifi: ath10k: Add missing include of export.h",
                            "    - wifi: ath10k: move recovery check logic into a new work",
                            "    - wifi: ath11k: restore register window after global reset",
                            "    - dt-bindings: clock: qcom,x1e80100-gcc: Add missing video resets",
                            "    - dt-bindings: clock: qcom,x1e80100-gcc: Add missing USB4 clocks/resets",
                            "    - clk: qcom: gcc-x1e80100: Add missing USB4 clocks/resets",
                            "    - inet: Avoid ehash lookup race in inet_twsk_hashdance_schedule()",
                            "    - block/mq-deadline: Introduce dd_start_request()",
                            "    - block/mq-deadline: Switch back to a single dispatch list",
                            "    - perf annotate: Check return value of evsel__get_arch() properly",
                            "    - arm64: dts: exynos: gs101: fix sysreg_apm reg property",
                            "    - clk: qcom: camcc-sm8550: Specify Titan GDSC power domain as a parent to",
                            "      other",
                            "    - soc: qcom: gsbi: fix double disable caused by devm",
                            "    - wifi: ath11k: fix VHT MCS assignment",
                            "    - arm64: dts: qcom: sm8650: set ufs as dma coherent",
                            "    - perf: Remove get_perf_callchain() init_nr argument",
                            "    - bpf: Refactor stack map trace depth calculation into helper function",
                            "    - perf/x86/intel/cstate: Remove PC3 support from LunarLake",
                            "    - drm/imagination: Fix reference to",
                            "      devm_platform_get_and_ioremap_resource()",
                            "    - power: supply: rt5033_charger: Fix device node reference leaks",
                            "    - power: supply: max17040: Check iio_read_channel_processed() return code",
                            "    - libbpf: Fix parsing of multi-split BTF",
                            "    - locktorture: Fix memory leak in param_set_cpumask()",
                            "    - crypto: iaa - Fix incorrect return value in save_iaa_wq()",
                            "    - drm/msm/dpu: drop dpu_hw_dsc_destroy() prototype",
                            "    - leds: rgb: leds-qcom-lpg: Don't enable TRILED when configuring PWM",
                            "    - RAS: Report all ARM processor CPER information to userspace",
                            "    - vhost: Fix kthread worker cgroup failure handling",
                            "    - vfio/pci: Use RCU for error/request triggers to avoid circular locking",
                            "    - net: phy: aquantia: check for NVMEM deferral",
                            "    - perf tools: Mark split kallsyms DSOs as loaded",
                            "    - perf hist: In init, ensure mem_info is put on error paths",
                            "    - sched/fair: Fix unfairness caused by stalled tg_load_avg_contrib when",
                            "      the last task migrates out",
                            "    - platform/x86:intel/pmc: Update Arrow Lake telemetry GUID",
                            "    - nfs/vfs: discard d_exact_alias()",
                            "    - NFS: Initialise verifiers for visible dentries in",
                            "      _nfs4_open_and_get_state",
                            "    - drm/plane: Fix IS_ERR() vs NULL check in",
                            "      drm_plane_create_hotspot_properties()",
                            "    - regulator: fixed: Rely on the core freeing the enable GPIO",
                            "    - drm/nouveau: refactor deprecated strcpy",
                            "    - drm/amdkfd: Use huge page size to check split svm range alignment",
                            "    - block: return unsigned int from queue_dma_alignment",
                            "    - fs/ntfs3: check for shutdown in fsync",
                            "    - wifi: rtl8xxxu: Fix HT40 channel config for RTL8192CU, RTL8723AU",
                            "    - wifi: cfg80211: use cfg80211_leave() in iftype change",
                            "    - wifi: mt76: mt792x: fix wifi init fail by setting MCU_RUNNING after CLC",
                            "      load",
                            "    - gfs2: Fix \"gfs2: Switch to wait_event in gfs2_quotad\"",
                            "    - Bluetooth: btusb: MT7922: Add VID/PID 0489/e170",
                            "    - Bluetooth: btusb: MT7920: Add VID/PID 0489/e135",
                            "    - Bluetooth: btusb: Add new VID/PID 0x0489/0xE12F for RTL8852BE-VT",
                            "    - netfilter: nf_nat: remove bogus direction check",
                            "    - iommufd/selftest: Add coverage for reporting max_pasid_log2 via",
                            "      IOMMU_HW_INFO",
                            "    - iommufd/selftest: Update hw_info coverage for an input data_type",
                            "    - iommufd/selftest: Make it clearer to gcc that the access is not out of",
                            "      bounds",
                            "    - hwmon: (dell-smm) Limit fan multiplier to avoid overflow",
                            "    - drm/xe: Restore engine registers before restarting schedulers after GT",
                            "      reset",
                            "    - mmc: sdhci-of-arasan: Increase CD stable timeout to 2 seconds",
                            "    - scsi: ufs: host: mediatek: Fix shutdown/suspend race condition",
                            "    - scsi: smartpqi: Add support for Hurray Data new controller PCI device",
                            "    - exfat: zero out post-EOF page cache on file extension",
                            "    - x86/mce: Do not clear bank's poll bit in mce_poll_banks on AMD SMCA",
                            "      systems",
                            "    - perf: arm_cspmu: fix error handling in arm_cspmu_impl_unregister()",
                            "    - wifi: mt76: Fix DTS power-limits on little endian systems",
                            "    - usb: gadget: lpc32xx_udc: fix clock imbalance in error path",
                            "    - mei: gsc: add dependency on Xe driver",
                            "    - serial: sh-sci: Check that the DMA cookie is valid",
                            "    - powerpc: Add reloc_offset() to font bitmap pointer used for",
                            "      bootx_printf()",
                            "    - xfs: fix stupid compiler warning",
                            "    - NFSD: Clear SECLABEL in the suppattr_exclcreat bitmap",
                            "    - drm/amd/display: Fix scratch registers offsets for DCN35",
                            "    - drm/displayid: pass iter to drm_find_displayid_extension()",
                            "    - KVM: arm64: Initialize SCTLR_EL1 in __kvm_hyp_init_cpu()",
                            "    - soc: apple: mailbox: fix device leak on lookup",
                            "    - interconnect: qcom: sdx75: Drop QPIC interconnect and BCM nodes",
                            "    - i40e: validate ring_len parameter against hardware-specific values",
                            "    - idpf: reduce mbx_task schedule delay to 300us",
                            "    - platform/mellanox: mlxbf-pmc: Remove trailing whitespaces from event",
                            "      names",
                            "    - net: dsa: fix missing put_device() in dsa_tree_find_first_conduit()",
                            "    - vfio/pds: Fix memory leak in pds_vfio_dirty_enable()",
                            "    - md: Fix static checker warning in analyze_sbs",
                            "    - ASoC: codecs: lpass-tx-macro: fix SM6115 support",
                            "    - iommu/amd: Propagate the error code returned by __modify_irte_ga() in",
                            "      modify_irte_ga()",
                            "    - mtd: mtdpart: ignore error -ENOENT from parsers on subpartitions",
                            "    - mtd: spi-nor: winbond: Add support for W25Q01NWxxIQ chips",
                            "    - mtd: spi-nor: winbond: Add support for W25Q01NWxxIM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25Q02NWxxIM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25H512NWxxAM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25H01NWxxAM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25H02NWxxAM chips",
                            "    - perf/x86/amd/uncore: Fix the return value of amd_uncore_df_event_init()",
                            "      on error",
                            "    - mm/damon/tests/sysfs-kunit: handle alloc failures on",
                            "      damon_sysfs_test_add_targets()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      damon_test_split_at()",
                            "    - mm/damon/tests/core-kunit: handle memory alloc failure from",
                            "      damon_test_aggregate()",
                            "    - 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 alloc failures in",
                            "      damon_test_update_monitoring_result()",
                            "    - kasan: unpoison vms[area] addresses with a common tag",
                            "    - drm/amdgpu/gmc11: add amdgpu_vm_handle_fault() handling",
                            "    - drm/edid: add DRM_EDID_IDENT_INIT() to initialize struct drm_edid_ident",
                            "    - drm/mediatek: Fix probe device leaks",
                            "    - drm/i915: Fix format string truncation warning",
                            "    - drm/xe/bo: Don't include the CCS metadata in the dma-buf sg-table",
                            "    - drm/xe: Adjust long-running workload timeslices to reasonable values",
                            "    - drm/xe: Use usleep_range for accurate long-running workload timeslicing",
                            "    - drm/xe: Drop preempt-fences when destroying imported dma-bufs.",
                            "    - drm/imagination: Disallow exporting of PM/FW protected objects",
                            "    - gfs2: fix freeze error handling",
                            "    - sched/eevdf: Remove min_vruntime_copy",
                            "    - sched/eevdf: Fix min_vruntime vs avg_vruntime",
                            "    - serial: core: fix OF node leak",
                            "    - serial: core: Restore sysfs fwnode information",
                            "    - mptcp: pm: ignore unknown endpoint flags",
                            "    - f2fs: clear SBI_POR_DOING before initing inmem curseg",
                            "    - f2fs: add timeout in f2fs_enable_checkpoint()",
                            "    - f2fs: dump more information for f2fs_{enable,disable}_checkpoint()",
                            "    - gpiolib: acpi: Switch to use enum in acpi_gpio_in_ignore_list()",
                            "    - gpiolib: acpi: Handle deferred list via new API",
                            "    - gpiolib: acpi: Add acpi_gpio_need_run_edge_events_on_boot() getter",
                            "    - gpiolib: acpi: Move quirks to a separate file",
                            "    - gpiolib: acpi: Add a quirk for Acer Nitro V15",
                            "    - gpiolib: acpi: Add quirk for ASUS ProArt PX13",
                            "    - gpiolib: acpi: Add quirk for Dell Precision 7780",
                            "    - serial: core: Fix serial device initialization",
                            "    - media: i2c: imx219: Fix 1920x1080 mode to use 1:1 pixel aspect ratio",
                            "    - wifi: mt76: mt7925: fix CLC command timeout when suspend/resume",
                            "    - soundwire: stream: extend sdw_alloc_stream() to take 'type' parameter",
                            "    - ASoC: qcom: sdw: fix memory leak for sdw_stream_runtime",
                            "    - vfio/pci: Disable qword access to the PCI ROM bar",
                            "    - iomap: allocate s_dio_done_wq for async reads as well",
                            "    - mptcp: ensure context reset on disconnect()",
                            "    - Upstream stable to v6.6.120, v6.12.62, v6.12.63, v6.12.64, v6.12.65",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2024-36347",
                            "    - x86/microcode/AMD: Fix Entrysign revision check for Zen5/Strix Halo",
                            "    - x86/microcode/AMD: Select which microcode patch to load",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-40164",
                            "    - usbnet: Fix using smp_processor_id() in preemptible code warnings",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-40325",
                            "    - md/raid10: wait barrier before returning discard request with REQ_NOWAIT",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68206",
                            "    - netfilter: nft_ct: add seqadj extension for natted connections",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71068",
                            "    - svcrdma: bound check rq_pages index in inline path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71135",
                            "    - md/raid5: fix possible null-pointer dereferences in",
                            "      raid5_store_group_thread_cnt()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-38234",
                            "    - sched/rt: Fix race in push_rt_task",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68811",
                            "    - svcrdma: use rc_pageoff for memcpy byte offset",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68810",
                            "    - KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71109",
                            "    - MIPS: ftrace: Fix memory corruption when kernel is located beyond 32",
                            "      bits",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68770",
                            "    - bnxt_en: Fix XDP_TX path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71072",
                            "    - shmem: fix recovery on rename failures",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68374",
                            "    - md: fix rcu protection in md_wakeup_thread",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68378",
                            "    - bpf: Fix stackmap overflow check in __bpf_get_stackid()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2024-57795",
                            "    - RDMA/rxe: Remove the direct link to net_device",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-38022",
                            "    - RDMA/core: Fix \"KASAN: slab-use-after-free Read in ib_register_device\"",
                            "      problem",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71140",
                            "    - media: mediatek: vcodec: Use spinlock for context list protection lock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71105",
                            "    - f2fs: use global inline_xattr_slab instead of per-sb slab cache",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68772",
                            "    - f2fs: fix to avoid updating compression context during writeback",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-22111",
                            "    - net: Remove RTNL dance for SIOCBRADDIF and SIOCBRDELIF.",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-22022",
                            "    - usb: xhci: Apply the link chain quirk on NEC isoc endpoints",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71141",
                            "    - drm/tilcdc: Fix removal actions in case of failed probe",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71127",
                            "    - wifi: mac80211: Discard Beacon frames to non-broadcast address",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71088",
                            "    - mptcp: fallback earlier on simult connection",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71065",
                            "    - f2fs: fix to avoid potential deadlock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68345",
                            "    - ALSA: hda: cs35l41: Fix NULL pointer dereference in",
                            "      cs35l41_hda_read_acpi()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68344",
                            "    - ALSA: wavefront: Fix integer overflow in sample size validation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71077",
                            "    - tpm: Cap the number of PCR banks",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71130",
                            "    - drm/i915/gem: Zero-initialize the eb.vma array in i915_gem_do_execbuffer",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71138",
                            "    - drm/msm/dpu: Add missing NULL pointer check for pingpong interface",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71083",
                            "    - drm/ttm: Avoid NULL pointer deref for evicted BOs",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71079",
                            "    - net: nfc: fix deadlock between nfc_unregister_device and",
                            "      rfkill_fop_write",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71129",
                            "    - LoongArch: BPF: Sign extend kfunc call arguments",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71093",
                            "    - e1000: fix OOB in e1000_tbi_should_accept()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71084",
                            "    - RDMA/cm: Fix leaking the multicast GID table reference",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71096",
                            "    - RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71136",
                            "    - media: adv7842: Avoid possible out-of-bounds array accesses in",
                            "      adv7842_cp_log_status()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71143",
                            "    - clk: samsung: exynos-clkout: Assign .num before accessing .hws",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71078",
                            "    - powerpc/64s/slb: Fix SLB multihit issue during SLB preload",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71089",
                            "    - iommu: disable SVA when CONFIG_X86 is set",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71081",
                            "    - ASoC: stm32: sai: fix OF node leak on probe",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71153",
                            "    - ksmbd: Fix memory leak in get_file_all_info()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71133",
                            "    - RDMA/irdma: avoid invalid read in irdma_net_event",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71086",
                            "    - net: rose: fix invalid array index in rose_kill_by_device()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71097",
                            "    - ipv4: Fix reference count leak when using error routes with nexthop",
                            "      objects",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71085",
                            "    - ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71095",
                            "    - net: stmmac: fix the crash issue for zero copy XDP_TX action",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71137",
                            "    - octeontx2-pf: fix \"UBSAN: shift-out-of-bounds error\"",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71101",
                            "    - platform/x86: hp-bioscfg: Fix out-of-bounds array access in ACPI package",
                            "      parsing",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71094",
                            "    - net: usb: asix: validate PHY address before use",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71132",
                            "    - smc91x: fix broken irq-context in PREEMPT_RT",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71154",
                            "    - net: usb: rtl8150: fix memory leak on usb_submit_urb() failure",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71091",
                            "    - team: fix check for port enabled in",
                            "      team_queue_override_port_prio_changed()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71098",
                            "    - ip6_gre: make ip6gre_header() robust",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71082",
                            "    - Bluetooth: btusb: revert use of devm_kzalloc in btusb",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71131",
                            "    - crypto: seqiv - Do not use req->iv after crypto_aead_encrypt",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71087",
                            "    - iavf: fix off-by-one issues in iavf_config_rss_reg()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71071",
                            "    - iommu/mediatek: fix use-after-free on probe deferral",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71111",
                            "    - hwmon: (w83791d) Convert macros to functions to avoid TOCTOU",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71113",
                            "    - crypto: af_alg - zero initialize memory allocated via sock_kmalloc",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71149",
                            "    - io_uring/poll: correctly handle io_poll_add() return value on update",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68778",
                            "    - btrfs: don't log conflicting inode if it's a dir moved in the current",
                            "      transaction",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71119",
                            "    - powerpc/kexec: Enable SMT before waking offline CPUs",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71120",
                            "    - SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in",
                            "      gss_read_proxy_verf",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71148",
                            "    - net/handshake: restore destructor on submit failure",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68788",
                            "    - fsnotify: do not generate ACCESS/MODIFY events on child for special",
                            "      files",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71125",
                            "    - tracing: Do not register unsupported perf events",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71104",
                            "    - KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV",
                            "      timer",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71116",
                            "    - libceph: make decode_pool() more resilient against corrupted osdmaps",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71121",
                            "    - parisc: Do not reprogram affinitiy on ASP chip",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71102",
                            "    - scs: fix a wrong parameter in __scs_magic",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68804",
                            "    - platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68771",
                            "    - ocfs2: fix kernel BUG in ocfs2_find_victim_chain",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68808",
                            "    - media: vidtv: initialize local pointers upon transfer of memory",
                            "      ownership",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68769",
                            "    - f2fs: fix return value of f2fs_recover_fsync_data()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71069",
                            "    - f2fs: invalidate dentry cache on failed whiteout creation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68796",
                            "    - f2fs: fix to avoid updating zero-sized extent in extent cache",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71107",
                            "    - f2fs: ensure node page reads complete before f2fs_put_super() finishes",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68782",
                            "    - scsi: target: Reset t_task_cdb pointer in error case",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71075",
                            "    - scsi: aic94xx: fix use-after-free in device removal path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68818",
                            "    - scsi: Revert \"scsi: qla2xxx: Perform lockless command completion in",
                            "      abort path\"",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68797",
                            "    - char: applicom: fix NULL pointer dereference in ac_ioctl",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68819",
                            "    - media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71126",
                            "    - mptcp: avoid deadlock on fallback while reinjecting",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68820",
                            "    - ext4: xattr: fix null pointer deref in ext4_raw_inode()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68814",
                            "    - io_uring: fix filename leak in __io_openat_prep()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71147",
                            "    - KEYS: trusted: Fix a memory leak in tpm2_load_cmd",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71151",
                            "    - cifs: Fix memory and information leak in smb3_reconfigure()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71108",
                            "    - usb: typec: ucsi: Handle incorrect num_connectors capability",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71114",
                            "    - via_wdt: fix critical boot hang due to unnamed resource allocation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68783",
                            "    - ALSA: usb-mixer: us16x08: validate meter packet indices",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68776",
                            "    - net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68773",
                            "    - spi: fsl-cpm: Check length parity before switching to 16 bit mode",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68777",
                            "    - Input: ti_am335x_tsc - fix off-by-one error in wire_order validation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68806",
                            "    - ksmbd: fix buffer validation by including null terminator size in EA",
                            "      length",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71150",
                            "    - ksmbd: Fix refcount leak when invalid session is found on session lookup",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68786",
                            "    - ksmbd: skip lock-range check on equal size to avoid size==0 underflow",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68789",
                            "    - hwmon: (ibmpex) fix use-after-free in high/low store",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71112",
                            "    - net: hns3: add VLAN id validation before using",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71064",
                            "    - net: hns3: using the num_tqps in the vf driver to apply for resources",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68775",
                            "    - net/handshake: duplicate handshake cancellations leak socket",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68816",
                            "    - net/mlx5: fw_tracer, Validate format string parameters",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68795",
                            "    - ethtool: Avoid overflowing userspace buffer on stats query",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71122",
                            "    - iommufd/selftest: Check for overflow in IOMMU_TEST_OP_ADD_RESERVED",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68815",
                            "    - net/sched: ets: Remove drr class from the active list if it changes to",
                            "      strict",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68799",
                            "    - caif: fix integer underflow in cffrml_receive()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68813",
                            "    - ipvs: fix ipv4 null-ptr-deref in route error path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68785",
                            "    - net: openvswitch: fix middle attribute validation in push_nsh() action",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68800",
                            "    - mlxsw: spectrum_mr: Fix use-after-free when updating multicast route",
                            "      stats",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68801",
                            "    - mlxsw: spectrum_router: Fix neighbour use-after-free",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71066",
                            "    - net/sched: ets: Always remove class from active list before deleting in",
                            "      ets_qdisc_change",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68787",
                            "    - netrom: Fix memory leak in nr_sendmsg()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68809",
                            "    - ksmbd: vfs: fix race on m_flags in vfs_cache",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68817",
                            "    - ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68767",
                            "    - hfsplus: Verify inode mode when loading from disk",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68774",
                            "    - hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71067",
                            "    - ntfs: set dummy blocksize to read boot_block when mounting",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71118",
                            "    - ACPICA: Avoid walking the Namespace if start_node is NULL",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68780",
                            "    - sched/deadline: only set free_cpus for online runqueues",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68798",
                            "    - perf/x86/amd: Check event before enable to avoid GPF",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68794",
                            "    - iomap: adjust read range correctly for non-block-aligned positions",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68346",
                            "    - ALSA: dice: fix buffer overflow in detect_stream_formats()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68766",
                            "    - irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68756",
                            "    - block: Use RCU in blk_mq_[un]quiesce_tagset() instead of",
                            "      set->tag_list_lock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68753",
                            "    - ALSA: firewire-motu: add bounds check in put_user loop for DSP events",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68347",
                            "    - ALSA: firewire-motu: fix buffer overflow in hwdep read for DSP events",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68764",
                            "    - NFS: Automounted filesystems should inherit ro,noexec,nodev,sync flags",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68349",
                            "    - NFSv4/pNFS: Clear NFS_INO_LAYOUTCOMMIT in",
                            "      pnfs_mark_layout_stateid_invalid",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68325",
                            "    - net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68354",
                            "    - regulator: core: Protect regulator_supply_alias_list with",
                            "      regulator_list_mutex",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68758",
                            "    - backlight: led-bl: Add devlink to supplier LEDs",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68765",
                            "    - mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68763",
                            "    - crypto: starfive - Correctly handle return of sg_nents_for_len",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68740",
                            "    - ima: Handle error code returned by ima_filter_rule_match()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68362",
                            "    - wifi: rtl818x: rtl8187: Fix potential buffer underflow in",
                            "      rtl8187_rx_cb()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68741",
                            "    - scsi: qla2xxx: Fix improper freeing of purex item",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68742",
                            "    - bpf: Fix invalid prog->stats access when update_effective_progs fails",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68759",
                            "    - wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68363",
                            "    - bpf: Check skb->transport_header is set in bpf_skb_check_mtu",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68744",
                            "    - bpf: Free special fields when update [lru_,]percpu_hash maps",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68364",
                            "    - ocfs2: relax BUG() to ocfs2_error() in __ocfs2_move_extent()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68366",
                            "    - nbd: defer config unlock in nbd_genl_connect",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68367",
                            "    - macintosh/mac_hid: fix race condition in mac_hid_toggle_emumouse",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68755",
                            "    - staging: most: remove broken i2c driver",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68371",
                            "    - scsi: smartpqi: Fix device resources accessed after device removal",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68372",
                            "    - nbd: defer config put in recv_work",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68746",
                            "    - spi: tegra210-quad: Fix timeout handling",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68379",
                            "    - RDMA/rxe: Fix null deref on srq->rq.queue after resize failure",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68380",
                            "    - wifi: ath11k: fix peer HE MCS assignment",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68724",
                            "    - crypto: asymmetric_keys - prevent overflow in asymmetric_key_generate_id",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68727",
                            "    - ntfs3: Fix uninit buffer allocated by __getname()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68728",
                            "    - ntfs3: fix uninit memory after failed mi_read in mi_format_new",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68757",
                            "    - drm/vgem-fence: Fix potential deadlock on release",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68732",
                            "    - gpu: host1x: Fix race in syncpt alloc/free",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68733",
                            "    - smack: fix bug: unprivileged task can create labels",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68254",
                            "    - staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68255",
                            "    - staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68256",
                            "    - staging: rtl8723bs: fix out-of-bounds read in rtw_get_ie() parser",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68257",
                            "    - comedi: check device's attached status in compat ioctls",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68258",
                            "    - comedi: multiq3: sanitize config options in multiq3_attach()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68332",
                            "    - comedi: c6xdigio: Fix invalid PNP driver unregistration",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68265",
                            "    - nvme: fix admin request_queue lifetime",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68266",
                            "    - bfs: Reconstruct file type when loading from disk",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68259",
                            "    - KVM: SVM: Don't skip unrelated instruction if INT3/INTO is replaced",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68335",
                            "    - comedi: pcl818: fix null-ptr-deref in pcl818_ai_cancel()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68261",
                            "    - ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68336",
                            "    - locking/spinlock/debug: Fix data-race in do_raw_write_lock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68263",
                            "    - ksmbd: ipc: fix use-after-free in ipc_msg_send_request",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68264",
                            "    - ext4: refresh inline data size before write operations",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68337",
                            "    - jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system",
                            "      corrupted",
                            "  * CVE-2026-23111",
                            "    - netfilter: nf_tables: fix inverted genmask check in",
                            "      nft_map_catchall_activate()",
                            "  * CVE-2026-23209",
                            "    - macvlan: fix error recovery in macvlan_common_newlink()",
                            "  * CVE-2026-23074",
                            "    - net/sched: Enforce that teql can only be used as root qdisc",
                            "  * CVE-2026-23060",
                            "    - crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN",
                            "      spec",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-110.110~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2143477,
                            2144887,
                            2144730,
                            2143478,
                            2142235,
                            2143033,
                            2142337,
                            2141276,
                            2139322,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Thu, 26 Mar 2026 16:40:51 +0100"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23074",
                                "url": "https://ubuntu.com/security/CVE-2026-23074",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23060",
                                "url": "https://ubuntu.com/security/CVE-2026-23060",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23111",
                                "url": "https://ubuntu.com/security/CVE-2026-23111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-107.107~22.04.1 -proposed tracker (LP: #2144266)",
                            "",
                            "  [ Ubuntu: 6.8.0-107.107 ]",
                            "",
                            "  * noble/linux: 6.8.0-107.107 -proposed tracker (LP: #2144267)",
                            "  * CVE-2026-23074",
                            "    - net/sched: Enforce that teql can only be used as root qdisc",
                            "  * CVE-2026-23060",
                            "    - crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN",
                            "      spec",
                            "  * CVE-2026-23111",
                            "    - netfilter: nf_tables: fix inverted genmask check in",
                            "      nft_map_catchall_activate()",
                            "",
                            "  [ Ubuntu: 6.8.0-106.106 ]",
                            "",
                            "  * 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-riscv-6.8",
                        "version": "6.8.0-107.107~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2144266,
                            2144267
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Wed, 18 Mar 2026 15:14:52 +0100"
                    }
                ],
                "notes": "linux-image-6.8.0-117-generic version '6.8.0-117.117~22.04.1' (source package linux-riscv-6.8 version '6.8.0-117.117~22.04.1') was added. linux-image-6.8.0-117-generic version '6.8.0-117.117~22.04.1' has the same source package name, linux-riscv-6.8, as removed package linux-headers-6.8.0-106-generic. As such we can use the source package version of the removed package, '6.8.0-106.106~22.04.1', 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-6.8.0-117-generic",
                "from_version": {
                    "source_package_name": "linux-riscv-6.8",
                    "source_package_version": "6.8.0-106.106~22.04.1",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux-riscv-6.8",
                    "source_package_version": "6.8.0-117.117~22.04.1",
                    "version": "6.8.0-117.117~22.04.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-31419",
                        "url": "https://ubuntu.com/security/CVE-2026-31419",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: bonding: fix use-after-free in bond_xmit_broadcast()  bond_xmit_broadcast() reuses the original skb for the last slave (determined by bond_is_last_slave()) and clones it for others. Concurrent slave enslave/release can mutate the slave list during RCU-protected iteration, changing which slave is \"last\" mid-loop. This causes the original skb to be double-consumed (double-freed).  Replace the racy bond_is_last_slave() check with a simple index comparison (i + 1 == slaves_count) against the pre-snapshot slave count taken via READ_ONCE() before the loop.  This preserves the zero-copy optimization for the last slave while making the \"last\" determination stable against concurrent list mutations.  The UAF can trigger the following crash:  ================================================================== BUG: KASAN: slab-use-after-free in skb_clone Read of size 8 at addr ffff888100ef8d40 by task exploit/147  CPU: 1 UID: 0 PID: 147 Comm: exploit Not tainted 7.0.0-rc3+ #4 PREEMPTLAZY Call Trace:  <TASK>  dump_stack_lvl (lib/dump_stack.c:123)  print_report (mm/kasan/report.c:379 mm/kasan/report.c:482)  kasan_report (mm/kasan/report.c:597)  skb_clone (include/linux/skbuff.h:1724 include/linux/skbuff.h:1792 include/linux/skbuff.h:3396 net/core/skbuff.c:2108)  bond_xmit_broadcast (drivers/net/bonding/bond_main.c:5334)  bond_start_xmit (drivers/net/bonding/bond_main.c:5567 drivers/net/bonding/bond_main.c:5593)  dev_hard_start_xmit (include/linux/netdevice.h:5325 include/linux/netdevice.h:5334 net/core/dev.c:3871 net/core/dev.c:3887)  __dev_queue_xmit (include/linux/netdevice.h:3601 net/core/dev.c:4838)  ip6_finish_output2 (include/net/neighbour.h:540 include/net/neighbour.h:554 net/ipv6/ip6_output.c:136)  ip6_finish_output (net/ipv6/ip6_output.c:208 net/ipv6/ip6_output.c:219)  ip6_output (net/ipv6/ip6_output.c:250)  ip6_send_skb (net/ipv6/ip6_output.c:1985)  udp_v6_send_skb (net/ipv6/udp.c:1442)  udpv6_sendmsg (net/ipv6/udp.c:1733)  __sys_sendto (net/socket.c:730 net/socket.c:742 net/socket.c:2206)  __x64_sys_sendto (net/socket.c:2209)  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)  </TASK>  Allocated by task 147:  Freed by task 147:  The buggy address belongs to the object at ffff888100ef8c80  which belongs to the cache skbuff_head_cache of size 224 The buggy address is located 192 bytes inside of  freed 224-byte region [ffff888100ef8c80, ffff888100ef8d60)  Memory state around the buggy address:  ffff888100ef8c00: fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc  ffff888100ef8c80: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff888100ef8d00: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc                                                     ^  ffff888100ef8d80: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb  ffff888100ef8e00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31431",
                        "url": "https://ubuntu.com/security/CVE-2026-31431",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: algif_aead - Revert to operating out-of-place  This mostly reverts commit 72548b093ee3 except for the copying of the associated data.  There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings.  Get rid of all the complexity added for in-place operation and just copy the AD directly.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-04-22 09:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31533",
                        "url": "https://ubuntu.com/security/CVE-2026-31533",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption  The -EBUSY handling in tls_do_encryption(), introduced by commit 859054147318 (\"net: tls: handle backlogging of crypto requests\"), has a use-after-free due to double cleanup of encrypt_pending and the scatterlist entry.  When crypto_aead_encrypt() returns -EBUSY, the request is enqueued to the cryptd backlog and the async callback tls_encrypt_done() will be invoked upon completion. That callback unconditionally restores the scatterlist entry (sge->offset, sge->length) and decrements ctx->encrypt_pending. However, if tls_encrypt_async_wait() returns an error, the synchronous error path in tls_do_encryption() performs the same cleanup again, double-decrementing encrypt_pending and double-restoring the scatterlist.  The double-decrement corrupts the encrypt_pending sentinel (initialized to 1), making tls_encrypt_async_wait() permanently skip the wait for pending async callbacks. A subsequent sendmsg can then free the tls_rec via bpf_exec_tx_verdict() while a cryptd callback is still pending, resulting in a use-after-free when the callback fires on the freed record.  Fix this by skipping the synchronous cleanup when the -EBUSY async wait returns an error, since the callback has already handled encrypt_pending and sge restoration.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-23 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31504",
                        "url": "https://ubuntu.com/security/CVE-2026-31504",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix fanout UAF in packet_release() via NETDEV_UP race  `packet_release()` has a race window where `NETDEV_UP` can re-register a socket into a fanout group's `arr[]` array. The re-registration is not cleaned up by `fanout_release()`, leaving a dangling pointer in the fanout array. `packet_release()` does NOT zero `po->num` in its `bind_lock` section. After releasing `bind_lock`, `po->num` is still non-zero and `po->ifindex` still matches the bound device. A concurrent `packet_notifier(NETDEV_UP)` that already found the socket in `sklist` can re-register the hook. For fanout sockets, this re-registration calls `__fanout_link(sk, po)` which adds the socket back into `f->arr[]` and increments `f->num_members`, but does NOT increment `f->sk_ref`.  The fix sets `po->num` to zero in `packet_release` while `bind_lock` is held to prevent NETDEV_UP from linking, preventing the race window.  This bug was found following an additional audit with Claude Code based on CVE-2025-38617.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-22 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23214",
                        "url": "https://ubuntu.com/security/CVE-2026-23214",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: reject new transactions if the fs is fully read-only  [BUG] There is a bug report where a heavily fuzzed fs is mounted with all rescue mount options, which leads to the following warnings during unmount:    BTRFS: Transaction aborted (error -22)   Modules linked in:   CPU: 0 UID: 0 PID: 9758 Comm: repro.out Not tainted   6.19.0-rc5-00002-gb71e635feefc #7 PREEMPT(full)   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014   RIP: 0010:find_free_extent_update_loop fs/btrfs/extent-tree.c:4208 [inline]   RIP: 0010:find_free_extent+0x52f0/0x5d20 fs/btrfs/extent-tree.c:4611   Call Trace:    <TASK>    btrfs_reserve_extent+0x2cd/0x790 fs/btrfs/extent-tree.c:4705    btrfs_alloc_tree_block+0x1e1/0x10e0 fs/btrfs/extent-tree.c:5157    btrfs_force_cow_block+0x578/0x2410 fs/btrfs/ctree.c:517    btrfs_cow_block+0x3c4/0xa80 fs/btrfs/ctree.c:708    btrfs_search_slot+0xcad/0x2b50 fs/btrfs/ctree.c:2130    btrfs_truncate_inode_items+0x45d/0x2350 fs/btrfs/inode-item.c:499    btrfs_evict_inode+0x923/0xe70 fs/btrfs/inode.c:5628    evict+0x5f4/0xae0 fs/inode.c:837    __dentry_kill+0x209/0x660 fs/dcache.c:670    finish_dput+0xc9/0x480 fs/dcache.c:879    shrink_dcache_for_umount+0xa0/0x170 fs/dcache.c:1661    generic_shutdown_super+0x67/0x2c0 fs/super.c:621    kill_anon_super+0x3b/0x70 fs/super.c:1289    btrfs_kill_super+0x41/0x50 fs/btrfs/super.c:2127    deactivate_locked_super+0xbc/0x130 fs/super.c:474    cleanup_mnt+0x425/0x4c0 fs/namespace.c:1318    task_work_run+0x1d4/0x260 kernel/task_work.c:233    exit_task_work include/linux/task_work.h:40 [inline]    do_exit+0x694/0x22f0 kernel/exit.c:971    do_group_exit+0x21c/0x2d0 kernel/exit.c:1112    __do_sys_exit_group kernel/exit.c:1123 [inline]    __se_sys_exit_group kernel/exit.c:1121 [inline]    __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1121    x64_sys_call+0x2210/0x2210 arch/x86/include/generated/asm/syscalls_64.h:232    do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]    do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94    entry_SYSCALL_64_after_hwframe+0x77/0x7f   RIP: 0033:0x44f639   Code: Unable to access opcode bytes at 0x44f60f.   RSP: 002b:00007ffc15c4e088 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7   RAX: ffffffffffffffda RBX: 00000000004c32f0 RCX: 000000000044f639   RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001   RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 0000000000000000   R10: 0000000000000000 R11: 0000000000000246 R12: 00000000004c32f0   R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001    </TASK>  Since rescue mount options will mark the full fs read-only, there should be no new transaction triggered.  But during unmount we will evict all inodes, which can trigger a new transaction, and triggers warnings on a heavily corrupted fs.  [CAUSE] Btrfs allows new transaction even on a read-only fs, this is to allow log replay happen even on read-only mounts, just like what ext4/xfs do.  However with rescue mount options, the fs is fully read-only and cannot be remounted read-write, thus in that case we should also reject any new transactions.  [FIX] If we find the fs has rescue mount options, we should treat the fs as error, so that no new transaction can be started.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23213",
                        "url": "https://ubuntu.com/security/CVE-2026-23213",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/pm: Disable MMIO access during SMU Mode 1 reset  During Mode 1 reset, the ASIC undergoes a reset cycle and becomes temporarily inaccessible via PCIe. Any attempt to access MMIO registers during this window (e.g., from interrupt handlers or other driver threads) can result in uncompleted PCIe transactions, leading to NMI panics or system hangs.  To prevent this, set the `no_hw_access` flag to true immediately after triggering the reset. This signals other driver components to skip register accesses while the device is offline.  A memory barrier `smp_mb()` is added to ensure the flag update is globally visible to all cores before the driver enters the sleep/wait state.  (cherry picked from commit 7edb503fe4b6d67f47d8bb0dfafb8e699bb0f8a4)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71225",
                        "url": "https://ubuntu.com/security/CVE-2025-71225",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: suspend array while updating raid_disks via sysfs  In raid1_reshape(), freeze_array() is called before modifying the r1bio memory pool (conf->r1bio_pool) and conf->raid_disks, and unfreeze_array() is called after the update is completed.  However, freeze_array() only waits until nr_sync_pending and (nr_pending - nr_queued) of all buckets reaches zero. When an I/O error occurs, nr_queued is increased and the corresponding r1bio is queued to either retry_list or bio_end_io_list. As a result, freeze_array() may unblock before these r1bios are released.  This can lead to a situation where conf->raid_disks and the mempool have already been updated while queued r1bios, allocated with the old raid_disks value, are later released. Consequently, free_r1bio() may access memory out of bounds in put_all_bios() and release r1bios of the wrong size to the new mempool, potentially causing issues with the mempool as well.  Since only normal I/O might increase nr_queued while an I/O error occurs, suspending the array avoids this issue.  Note: Updating raid_disks via ioctl SET_ARRAY_INFO already suspends the array. Therefore, we suspend the array when updating raid_disks via sysfs to avoid this issue too.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68823",
                        "url": "https://ubuntu.com/security/CVE-2025-68823",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ublk: fix deadlock when reading partition table  When one process(such as udev) opens ublk block device (e.g., to read the partition table via bdev_open()), a deadlock[1] can occur:  1. bdev_open() grabs disk->open_mutex 2. The process issues read I/O to ublk backend to read partition table 3. In __ublk_complete_rq(), blk_update_request() or blk_mq_end_request()    runs bio->bi_end_io() callbacks 4. If this triggers fput() on file descriptor of ublk block device, the    work may be deferred to current task's task work (see fput() implementation) 5. This eventually calls blkdev_release() from the same context 6. blkdev_release() tries to grab disk->open_mutex again 7. Deadlock: same task waiting for a mutex it already holds  The fix is to run blk_update_request() and blk_mq_end_request() with bottom halves disabled. This forces blkdev_release() to run in kernel work-queue context instead of current task work context, and allows ublk server to make forward progress, and avoids the deadlock.  [axboe: rewrite comment in ublk]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23191",
                        "url": "https://ubuntu.com/security/CVE-2026-23191",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: aloop: Fix racy access at PCM trigger  The PCM trigger callback of aloop driver tries to check the PCM state and stop the stream of the tied substream in the corresponding cable. Since both check and stop operations are performed outside the cable lock, this may result in UAF when a program attempts to trigger frequently while opening/closing the tied stream, as spotted by fuzzers.  For addressing the UAF, this patch changes two things: - It covers the most of code in loopback_check_format() with   cable->lock spinlock, and add the proper NULL checks.  This avoids   already some racy accesses. - In addition, now we try to check the state of the capture PCM stream   that may be stopped in this function, which was the major pain point   leading to UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23215",
                        "url": "https://ubuntu.com/security/CVE-2026-23215",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/vmware: Fix hypercall clobbers  Fedora QA reported the following panic:    BUG: unable to handle page fault for address: 0000000040003e54   #PF: supervisor write access in kernel mode   #PF: error_code(0x0002) - not-present page   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20251119-3.fc43 11/19/2025   RIP: 0010:vmware_hypercall4.constprop.0+0x52/0x90   ..   Call Trace:    vmmouse_report_events+0x13e/0x1b0    psmouse_handle_byte+0x15/0x60    ps2_interrupt+0x8a/0xd0    ...  because the QEMU VMware mouse emulation is buggy, and clears the top 32 bits of %rdi that the kernel kept a pointer in.  The QEMU vmmouse driver saves and restores the register state in a \"uint32_t data[6];\" and as a result restores the state with the high bits all cleared.  RDI originally contained the value of a valid kernel stack address (0xff5eeb3240003e54).  After the vmware hypercall it now contains 0x40003e54, and we get a page fault as a result when it is dereferenced.  The proper fix would be in QEMU, but this works around the issue in the kernel to keep old setups working, when old kernels had not happened to keep any state in %rdi over the hypercall.  In theory this same issue exists for all the hypercalls in the vmmouse driver; in practice it has only been seen with vmware_hypercall3() and vmware_hypercall4().  For now, just mark RDI/RSI as clobbered for those two calls.  This should have a minimal effect on code generation overall as it should be rare for the compiler to want to make RDI/RSI live across hypercalls.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23182",
                        "url": "https://ubuntu.com/security/CVE-2026-23182",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra: Fix a memory leak in tegra_slink_probe()  In tegra_slink_probe(), when platform_get_irq() fails, it directly returns from the function with an error code, which causes a memory leak.  Replace it with a goto label to ensure proper cleanup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23190",
                        "url": "https://ubuntu.com/security/CVE-2026-23190",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: amd: fix memory leak in acp3x pdm dma ops",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23254",
                        "url": "https://ubuntu.com/security/CVE-2026-23254",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: gro: fix outer network offset  The udp GRO complete stage assumes that all the packets inserted the RX have the `encapsulation` flag zeroed. Such assumption is not true, as a few H/W NICs can set such flag when H/W offloading the checksum for an UDP encapsulated traffic, the tun driver can inject GSO packets with UDP encapsulation and the problematic layout can also be created via a veth based setup.  Due to the above, in the problematic scenarios, udp4_gro_complete() uses the wrong network offset (inner instead of outer) to compute the outer UDP header pseudo checksum, leading to csum validation errors later on in packet processing.  Address the issue always clearing the encapsulation flag at GRO completion time. Such flag will be set again as needed for encapsulated packets by udp_gro_complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23180",
                        "url": "https://ubuntu.com/security/CVE-2026-23180",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: add bounds check for if_id in IRQ handler  The IRQ handler extracts if_id from the upper 16 bits of the hardware status register and uses it to index into ethsw->ports[] without validation. Since if_id can be any 16-bit value (0-65535) but the ports array is only allocated with sw_attr.num_ifs elements, this can lead to an out-of-bounds read potentially.  Add a bounds check before accessing the array, consistent with the existing validation in dpaa2_switch_rx().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23256",
                        "url": "https://ubuntu.com/security/CVE-2026-23256",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in VF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Compile tested only. Issue found using code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23257",
                        "url": "https://ubuntu.com/security/CVE-2026-23257",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in PF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Also, decrement i in the devlink_alloc failure path to point to the last successfully allocated index.  Compile tested only. Issue found using code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23258",
                        "url": "https://ubuntu.com/security/CVE-2026-23258",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Initialize netdev pointer before queue setup  In setup_nic_devices(), the netdev is allocated using alloc_etherdev_mq(). However, the pointer to this structure is stored in oct->props[i].netdev only after the calls to netif_set_real_num_rx_queues() and netif_set_real_num_tx_queues().  If either of these functions fails, setup_nic_devices() returns an error without freeing the allocated netdev. Since oct->props[i].netdev is still NULL at this point, the cleanup function liquidio_destroy_nic_device() will fail to find and free the netdev, resulting in a memory leak.  Fix this by initializing oct->props[i].netdev before calling the queue setup functions. This ensures that the netdev is properly accessible for cleanup in case of errors.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23206",
                        "url": "https://ubuntu.com/security/CVE-2026-23206",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: prevent ZERO_SIZE_PTR dereference when num_ifs is zero  The driver allocates arrays for ports, FDBs, and filter blocks using kcalloc() with ethsw->sw_attr.num_ifs as the element count. When the device reports zero interfaces (either due to hardware configuration or firmware issues), kcalloc(0, ...) returns ZERO_SIZE_PTR (0x10) instead of NULL.  Later in dpaa2_switch_probe(), the NAPI initialization unconditionally accesses ethsw->ports[0]->netdev, which attempts to dereference ZERO_SIZE_PTR (address 0x10), resulting in a kernel panic.  Add a check to ensure num_ifs is greater than zero after retrieving device attributes. This prevents the zero-sized allocations and subsequent invalid pointer dereference.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23204",
                        "url": "https://ubuntu.com/security/CVE-2026-23204",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: cls_u32: use skb_header_pointer_careful()  skb_header_pointer() does not fully validate negative @offset values.  Use skb_header_pointer_careful() instead.  GangMin Kim provided a report and a repro fooling u32_classify():  BUG: KASAN: slab-out-of-bounds in u32_classify+0x1180/0x11b0 net/sched/cls_u32.c:221",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23205",
                        "url": "https://ubuntu.com/security/CVE-2026-23205",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/client: fix memory leak in smb2_open_file()  Reproducer:    1. server: directories are exported read-only   2. client: mount -t cifs //${server_ip}/export /mnt   3. client: dd if=/dev/zero of=/mnt/file bs=512 count=1000 oflag=direct   4. client: umount /mnt   5. client: sleep 1   6. client: modprobe -r cifs  The error message is as follows:   =============================================================================   BUG cifs_small_rq (Not tainted): Objects remaining on __kmem_cache_shutdown()  -----------------------------------------------------------------------------    Object 0x00000000d47521be @offset=14336   ...   WARNING: mm/slub.c:1251 at __kmem_cache_shutdown+0x34e/0x440, CPU#0: modprobe/1577   ...   Call Trace:    <TASK>    kmem_cache_destroy+0x94/0x190    cifs_destroy_request_bufs+0x3e/0x50 [cifs]    cleanup_module+0x4e/0x540 [cifs]    __se_sys_delete_module+0x278/0x400    __x64_sys_delete_module+0x5f/0x70    x64_sys_call+0x2299/0x2ff0    do_syscall_64+0x89/0x350    entry_SYSCALL_64_after_hwframe+0x76/0x7e   ...   kmem_cache_destroy cifs_small_rq: Slab cache still has objects when called from cifs_destroy_request_bufs+0x3e/0x50 [cifs]   WARNING: mm/slab_common.c:532 at kmem_cache_destroy+0x16b/0x190, CPU#0: modprobe/1577",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23176",
                        "url": "https://ubuntu.com/security/CVE-2026-23176",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: toshiba_haps: Fix memory leaks in add/remove routines  toshiba_haps_add() leaks the haps object allocated by it if it returns an error after allocating that object successfully.  toshiba_haps_remove() does not free the object pointed to by toshiba_haps before clearing that pointer, so it becomes unreachable allocated memory.  Address these memory leaks by using devm_kzalloc() for allocating the memory in question.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23216",
                        "url": "https://ubuntu.com/security/CVE-2026-23216",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_conn_usage_count()  In iscsit_dec_conn_usage_count(), the function calls complete() while holding the conn->conn_usage_lock. As soon as complete() is invoked, the waiter (such as iscsit_close_connection()) may wake up and proceed to free the iscsit_conn structure.  If the waiter frees the memory before the current thread reaches spin_unlock_bh(), it results in a KASAN slab-use-after-free as the function attempts to release a lock within the already-freed connection structure.  Fix this by releasing the spinlock before calling complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23193",
                        "url": "https://ubuntu.com/security/CVE-2026-23193",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_session_usage_count()  In iscsit_dec_session_usage_count(), the function calls complete() while holding the sess->session_usage_lock. Similar to the connection usage count logic, the waiter signaled by complete() (e.g., in the session release path) may wake up and free the iscsit_session structure immediately.  This creates a race condition where the current thread may attempt to execute spin_unlock_bh() on a session structure that has already been deallocated, resulting in a KASAN slab-use-after-free.  To resolve this, release the session_usage_lock before calling complete() to ensure all dereferences of the sess pointer are finished before the waiter is allowed to proceed with deallocation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23260",
                        "url": "https://ubuntu.com/security/CVE-2026-23260",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: maple: free entry on mas_store_gfp() failure  regcache_maple_write() allocates a new block ('entry') to merge adjacent ranges and then stores it with mas_store_gfp(). When mas_store_gfp() fails, the new 'entry' remains allocated and is never freed, leaking memory.  Free 'entry' on the failure path; on success continue freeing the replaced neighbor blocks ('lower', 'upper').",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23179",
                        "url": "https://ubuntu.com/security/CVE-2026-23179",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: fixup hang in nvmet_tcp_listen_data_ready()  When the socket is closed while in TCP_LISTEN a callback is run to flush all outstanding packets, which in turns calls nvmet_tcp_listen_data_ready() with the sk_callback_lock held. So we need to check if we are in TCP_LISTEN before attempting to get the sk_callback_lock() to avoid a deadlock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23261",
                        "url": "https://ubuntu.com/security/CVE-2026-23261",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: release admin tagset if init fails  nvme_fabrics creates an NVMe/FC controller in following path:      nvmf_dev_write()       -> nvmf_create_ctrl()         -> nvme_fc_create_ctrl()           -> nvme_fc_init_ctrl()  nvme_fc_init_ctrl() allocates the admin blk-mq resources right after nvme_add_ctrl() succeeds.  If any of the subsequent steps fail (changing the controller state, scheduling connect work, etc.), we jump to the fail_ctrl path, which tears down the controller references but never frees the admin queue/tag set.  The leaked blk-mq allocations match the kmemleak report seen during blktests nvme/fc.  Check ctrl->ctrl.admin_tagset in the fail_ctrl path and call nvme_remove_admin_tag_set() when it is set so that all admin queue allocations are reclaimed whenever controller setup aborts.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23178",
                        "url": "https://ubuntu.com/security/CVE-2026-23178",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()  `i2c_hid_xfer` is used to read `recv_len + sizeof(__le16)` bytes of data into `ihid->rawbuf`.  The former can come from the userspace in the hidraw driver and is only bounded by HID_MAX_BUFFER_SIZE(16384) by default (unless we also set `max_buffer_size` field of `struct hid_ll_driver` which we do not).  The latter has size determined at runtime by the maximum size of different report types you could receive on any particular device and can be a much smaller value.  Fix this by truncating `recv_len` to `ihid->bufsize - sizeof(__le16)`.  The impact is low since access to hidraw devices requires root.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71268",
                        "url": "https://ubuntu.com/security/CVE-2025-71268",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix reservation leak in some error paths when inserting inline extent  If we fail to allocate a path or join a transaction, we return from __cow_file_range_inline() without freeing the reserved qgroup data, resulting in a leak. Fix this by ensuring we call btrfs_qgroup_free_data() in such cases.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71270",
                        "url": "https://ubuntu.com/security/CVE-2025-71270",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: Enable exception fixup for specific ADE subcode  This patch allows the LoongArch BPF JIT to handle recoverable memory access errors generated by BPF_PROBE_MEM* instructions.  When a BPF program performs memory access operations, the instructions it executes may trigger ADEM exceptions. The kernel’s built-in BPF exception table mechanism (EX_TYPE_BPF) will generate corresponding exception fixup entries in the JIT compilation phase; however, the architecture-specific trap handling function needs to proactively call the common fixup routine to achieve exception recovery.  do_ade(): fix EX_TYPE_BPF memory access exceptions for BPF programs, ensure safe execution.  Relevant test cases: illegal address access tests in module_attach and subprogs_extable of selftests/bpf.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71220",
                        "url": "https://ubuntu.com/security/CVE-2025-71220",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/server: call ksmbd_session_rpc_close() on error path in create_smb2_pipe()  When ksmbd_iov_pin_rsp() fails, we should call ksmbd_session_rpc_close().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71222",
                        "url": "https://ubuntu.com/security/CVE-2025-71222",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: wlcore: ensure skb headroom before skb_push  This avoids occasional skb_under_panic Oops from wl1271_tx_work. In this case, headroom is less than needed (typically 110 - 94 = 16 bytes).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71224",
                        "url": "https://ubuntu.com/security/CVE-2025-71224",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: ocb: skip rx_no_sta when interface is not joined  ieee80211_ocb_rx_no_sta() assumes a valid channel context, which is only present after JOIN_OCB.  RX may run before JOIN_OCB is executed, in which case the OCB interface is not operational. Skip RX peer handling when the interface is not joined to avoid warnings in the RX path.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23262",
                        "url": "https://ubuntu.com/security/CVE-2026-23262",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gve: Fix stats report corruption on queue count change  The driver and the NIC share a region in memory for stats reporting. The NIC calculates its offset into this region based on the total size of the stats region and the size of the NIC's stats.  When the number of queues is changed, the driver's stats region is resized. If the queue count is increased, the NIC can write past the end of the allocated stats region, causing memory corruption. If the queue count is decreased, there is a gap between the driver and NIC stats, leading to incorrect stats reporting.  This change fixes the issue by allocating stats region with maximum size, and the offset calculation for NIC stats is changed to match with the calculation of the NIC.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38201",
                        "url": "https://ubuntu.com/security/CVE-2025-38201",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX  Otherwise, it is possible to hit WARN_ON_ONCE in __kvmalloc_node_noprof() when resizing hashtable because __GFP_NOWARN is unset.  Similar to:    b541ba7d1f5a (\"netfilter: conntrack: clamp maximum hashtable size to INT_MAX\")",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-07-04 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23198",
                        "url": "https://ubuntu.com/security/CVE-2026-23198",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Don't clobber irqfd routing type when deassigning irqfd  When deassigning a KVM_IRQFD, don't clobber the irqfd's copy of the IRQ's routing entry as doing so breaks kvm_arch_irq_bypass_del_producer() on x86 and arm64, which explicitly look for KVM_IRQ_ROUTING_MSI.  Instead, to handle a concurrent routing update, verify that the irqfd is still active before consuming the routing information.  As evidenced by the x86 and arm64 bugs, and another bug in kvm_arch_update_irqfd_routing() (see below), clobbering the entry type without notifying arch code is surprising and error prone.  As a bonus, checking that the irqfd is active provides a convenient location for documenting _why_ KVM must not consume the routing entry for an irqfd that is in the process of being deassigned: once the irqfd is deleted from the list (which happens *before* the eventfd is detached), it will no longer receive updates via kvm_irq_routing_update(), and so KVM could deliver an event using stale routing information (relative to KVM_SET_GSI_ROUTING returning to userspace).  As an even better bonus, explicitly checking for the irqfd being active fixes a similar bug to the one the clobbering is trying to prevent: if an irqfd is deactivated, and then its routing is changed, kvm_irq_routing_update() won't invoke kvm_arch_update_irqfd_routing() (because the irqfd isn't in the list).  And so if the irqfd is in bypass mode, IRQs will continue to be posted using the old routing information.  As for kvm_arch_irq_bypass_del_producer(), clobbering the routing type results in KVM incorrectly keeping the IRQ in bypass mode, which is especially problematic on AMD as KVM tracks IRQs that are being posted to a vCPU in a list whose lifetime is tied to the irqfd.  Without the help of KASAN to detect use-after-free, the most common sympton on AMD is a NULL pointer deref in amd_iommu_update_ga() due to the memory for irqfd structure being re-allocated and zeroed, resulting in irqfd->irq_bypass_data being NULL when read by avic_update_iommu_vcpu_affinity():    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 40cf2b9067 P4D 40cf2b9067 PUD 408362a067 PMD 0   Oops: Oops: 0000 [#1] SMP   CPU: 6 UID: 0 PID: 40383 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--5dddc257e6b2-irqfd #31 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:amd_iommu_update_ga+0x19/0xe0   Call Trace:    <TASK>    avic_update_iommu_vcpu_affinity+0x3d/0x90 [kvm_amd]    __avic_vcpu_load+0xf4/0x130 [kvm_amd]    kvm_arch_vcpu_load+0x89/0x210 [kvm]    vcpu_load+0x30/0x40 [kvm]    kvm_arch_vcpu_ioctl_run+0x45/0x620 [kvm]    kvm_vcpu_ioctl+0x571/0x6a0 [kvm]    __se_sys_ioctl+0x6d/0xb0    do_syscall_64+0x6f/0x9d0    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x46893b     </TASK>   ---[ end trace 0000000000000000 ]---  If AVIC is inhibited when the irfd is deassigned, the bug will manifest as list corruption, e.g. on the next irqfd assignment.    list_add corruption. next->prev should be prev (ffff8d474d5cd588),                        but was 0000000000000000. (next=ffff8d8658f86530).   ------------[ cut here ]------------   kernel BUG at lib/list_debug.c:31!   Oops: invalid opcode: 0000 [#1] SMP   CPU: 128 UID: 0 PID: 80818 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--f19dc4d680ba-irqfd #28 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:__list_add_valid_or_report+0x97/0xc0   Call Trace:    <TASK>    avic_pi_update_irte+0x28e/0x2b0 [kvm_amd]    kvm_pi_update_irte+0xbf/0x190 [kvm]    kvm_arch_irq_bypass_add_producer+0x72/0x90 [kvm]    irq_bypass_register_consumer+0xcd/0x170 [irqbypa ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23264",
                        "url": "https://ubuntu.com/security/CVE-2026-23264",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Revert \"drm/amd: Check if ASPM is enabled from PCIe subsystem\"  This reverts commit 7294863a6f01248d72b61d38478978d638641bee.  This commit was erroneously applied again after commit 0ab5d711ec74 (\"drm/amd: Refactor `amdgpu_aspm` to be evaluated per device\") removed it, leading to very hard to debug crashes, when used with a system with two AMD GPUs of which only one supports ASPM.  (cherry picked from commit 97a9689300eb2b393ba5efc17c8e5db835917080)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23187",
                        "url": "https://ubuntu.com/security/CVE-2026-23187",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: fix out-of-range access of bc->domains  Fix out-of-range access of bc->domains in imx8m_blk_ctrl_remove().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23148",
                        "url": "https://ubuntu.com/security/CVE-2026-23148",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference  There is a race condition in nvmet_bio_done() that can cause a NULL pointer dereference in blk_cgroup_bio_start():  1. nvmet_bio_done() is called when a bio completes 2. nvmet_req_complete() is called, which invokes req->ops->queue_response(req) 3. The queue_response callback can re-queue and re-submit the same request 4. The re-submission reuses the same inline_bio from nvmet_req 5. Meanwhile, nvmet_req_bio_put() (called after nvmet_req_complete)    invokes bio_uninit() for inline_bio, which sets bio->bi_blkg to NULL 6. The re-submitted bio enters submit_bio_noacct_nocheck() 7. blk_cgroup_bio_start() dereferences bio->bi_blkg, causing a crash:    BUG: kernel NULL pointer dereference, address: 0000000000000028   #PF: supervisor read access in kernel mode   RIP: 0010:blk_cgroup_bio_start+0x10/0xd0   Call Trace:    submit_bio_noacct_nocheck+0x44/0x250    nvmet_bdev_execute_rw+0x254/0x370 [nvmet]    process_one_work+0x193/0x3c0    worker_thread+0x281/0x3a0  Fix this by reordering nvmet_bio_done() to call nvmet_req_bio_put() BEFORE nvmet_req_complete(). This ensures the bio is cleaned up before the request can be re-submitted, preventing the race condition.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23166",
                        "url": "https://ubuntu.com/security/CVE-2026-23166",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ice: Fix NULL pointer dereference in ice_vsi_set_napi_queues  Add NULL pointer checks in ice_vsi_set_napi_queues() to prevent crashes during resume from suspend when rings[q_idx]->q_vector is NULL.  Tested adaptor: 60:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller E810-XXV for SFP [8086:159b] (rev 02)         Subsystem: Intel Corporation Ethernet Network Adapter E810-XXV-2 [8086:4003]  SR-IOV state: both disabled and enabled can reproduce this issue.  kernel version: v6.18  Reproduce steps: Boot up and execute suspend like systemctl suspend or rtcwake.  Log: <1>[  231.443607] BUG: kernel NULL pointer dereference, address: 0000000000000040 <1>[  231.444052] #PF: supervisor read access in kernel mode <1>[  231.444484] #PF: error_code(0x0000) - not-present page <6>[  231.444913] PGD 0 P4D 0 <4>[  231.445342] Oops: Oops: 0000 [#1] SMP NOPTI <4>[  231.446635] RIP: 0010:netif_queue_set_napi+0xa/0x170 <4>[  231.447067] Code: 31 f6 31 ff c3 cc cc cc cc 0f 1f 80 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 48 85 c9 74 0b <48> 83 79 30 00 0f 84 39 01 00 00 55 41 89 d1 49 89 f8 89 f2 48 89 <4>[  231.447513] RSP: 0018:ffffcc780fc078c0 EFLAGS: 00010202 <4>[  231.447961] RAX: ffff8b848ca30400 RBX: ffff8b848caf2028 RCX: 0000000000000010 <4>[  231.448443] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8b848dbd4000 <4>[  231.448896] RBP: ffffcc780fc078e8 R08: 0000000000000000 R09: 0000000000000000 <4>[  231.449345] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001 <4>[  231.449817] R13: ffff8b848dbd4000 R14: ffff8b84833390c8 R15: 0000000000000000 <4>[  231.450265] FS:  00007c7b29e9d740(0000) GS:ffff8b8c068e2000(0000) knlGS:0000000000000000 <4>[  231.450715] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 <4>[  231.451179] CR2: 0000000000000040 CR3: 000000030626f004 CR4: 0000000000f72ef0 <4>[  231.451629] PKRU: 55555554 <4>[  231.452076] Call Trace: <4>[  231.452549]  <TASK> <4>[  231.452996]  ? ice_vsi_set_napi_queues+0x4d/0x110 [ice] <4>[  231.453482]  ice_resume+0xfd/0x220 [ice] <4>[  231.453977]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.454425]  pci_pm_resume+0x8c/0x140 <4>[  231.454872]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.455347]  dpm_run_callback+0x5f/0x160 <4>[  231.455796]  ? dpm_wait_for_superior+0x107/0x170 <4>[  231.456244]  device_resume+0x177/0x270 <4>[  231.456708]  dpm_resume+0x209/0x2f0 <4>[  231.457151]  dpm_resume_end+0x15/0x30 <4>[  231.457596]  suspend_devices_and_enter+0x1da/0x2b0 <4>[  231.458054]  enter_state+0x10e/0x570  Add defensive checks for both the ring pointer and its q_vector before dereferencing, allowing the system to resume successfully even when q_vectors are unmapped.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23151",
                        "url": "https://ubuntu.com/security/CVE-2026-23151",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: MGMT: Fix memory leak in set_ssp_complete  Fix memory leak in set_ssp_complete() where mgmt_pending_cmd structures are not freed after being removed from the pending list.  Commit 302a1f674c00 (\"Bluetooth: MGMT: Fix possible UAFs\") replaced mgmt_pending_foreach() calls with individual command handling but missed adding mgmt_pending_free() calls in both error and success paths of set_ssp_complete(). Other completion functions like set_le_complete() were fixed correctly in the same commit.  This causes a memory leak of the mgmt_pending_cmd structure and its associated parameter data for each SSP command that completes.  Add the missing mgmt_pending_free(cmd) calls in both code paths to fix the memory leak. Also fix the same issue in set_advertising_complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23163",
                        "url": "https://ubuntu.com/security/CVE-2026-23163",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: fix NULL pointer dereference in amdgpu_gmc_filter_faults_remove  On APUs such as Raven and Renoir (GC 9.1.0, 9.2.2, 9.3.0), the ih1 and ih2 interrupt ring buffers are not initialized. This is by design, as these secondary IH rings are only available on discrete GPUs. See vega10_ih_sw_init() which explicitly skips ih1/ih2 initialization when AMD_IS_APU is set.  However, amdgpu_gmc_filter_faults_remove() unconditionally uses ih1 to get the timestamp of the last interrupt entry. When retry faults are enabled on APUs (noretry=0), this function is called from the SVM page fault recovery path, resulting in a NULL pointer dereference when amdgpu_ih_decode_iv_ts_helper() attempts to access ih->ring[].  The crash manifests as:    BUG: kernel NULL pointer dereference, address: 0000000000000004   RIP: 0010:amdgpu_ih_decode_iv_ts_helper+0x22/0x40 [amdgpu]   Call Trace:    amdgpu_gmc_filter_faults_remove+0x60/0x130 [amdgpu]    svm_range_restore_pages+0xae5/0x11c0 [amdgpu]    amdgpu_vm_handle_fault+0xc8/0x340 [amdgpu]    gmc_v9_0_process_interrupt+0x191/0x220 [amdgpu]    amdgpu_irq_dispatch+0xed/0x2c0 [amdgpu]    amdgpu_ih_process+0x84/0x100 [amdgpu]  This issue was exposed by commit 1446226d32a4 (\"drm/amdgpu: Remove GC HW IP 9.3.0 from noretry=1\") which changed the default for Renoir APU from noretry=1 to noretry=0, enabling retry fault handling and thus exercising the buggy code path.  Fix this by adding a check for ih1.ring_size before attempting to use it. Also restore the soft_ih support from commit dd299441654f (\"drm/amdgpu: Rework retry fault removal\").  This is needed if the hardware doesn't support secondary HW IH rings.  v2: additional updates (Alex)  (cherry picked from commit 6ce8d536c80aa1f059e82184f0d1994436b1d526)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23159",
                        "url": "https://ubuntu.com/security/CVE-2026-23159",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf: sched: Fix perf crash with new is_user_task() helper  In order to do a user space stacktrace the current task needs to be a user task that has executed in user space. It use to be possible to test if a task is a user task or not by simply checking the task_struct mm field. If it was non NULL, it was a user task and if not it was a kernel task.  But things have changed over time, and some kernel tasks now have their own mm field.  An idea was made to instead test PF_KTHREAD and two functions were used to wrap this check in case it became more complex to test if a task was a user task or not[1]. But this was rejected and the C code simply checked the PF_KTHREAD directly.  It was later found that not all kernel threads set PF_KTHREAD. The io-uring helpers instead set PF_USER_WORKER and this needed to be added as well.  But checking the flags is still not enough. There's a very small window when a task exits that it frees its mm field and it is set back to NULL. If perf were to trigger at this moment, the flags test would say its a user space task but when perf would read the mm field it would crash with at NULL pointer dereference.  Now there are flags that can be used to test if a task is exiting, but they are set in areas that perf may still want to profile the user space task (to see where it exited). The only real test is to check both the flags and the mm field.  Instead of making this modification in every location, create a new is_user_task() helper function that does all the tests needed to know if it is safe to read the user space memory or not.  [1] https://lore.kernel.org/all/20250425204120.639530125@goodmis.org/",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-58096",
                        "url": "https://ubuntu.com/security/CVE-2024-58096",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode  ath11k_hal_srng_* should be used with srng->lock to protect srng data.  For ath11k_dp_rx_mon_dest_process() and ath11k_dp_full_mon_process_rx(), they use ath11k_hal_srng_* for many times but never call srng->lock.  So when running (full) monitor mode, warning will occur: RIP: 0010:ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k] Call Trace:  ? ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k]  ath11k_dp_rx_process_mon_status+0xc45/0x1190 [ath11k]  ? idr_alloc_u32+0x97/0xd0  ath11k_dp_rx_process_mon_rings+0x32a/0x550 [ath11k]  ath11k_dp_service_srng+0x289/0x5a0 [ath11k]  ath11k_pcic_ext_grp_napi_poll+0x30/0xd0 [ath11k]  __napi_poll+0x30/0x1f0  net_rx_action+0x198/0x320  __do_softirq+0xdd/0x319  So add srng->lock for them to avoid such warnings.  Inorder to fetch the srng->lock, should change srng's definition from 'void' to 'struct hal_srng'. And initialize them elsewhere to prevent one line of code from being too long. This is consistent with other ring process functions, such as ath11k_dp_process_rx().  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40039",
                        "url": "https://ubuntu.com/security/CVE-2025-40039",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix race condition in RPC handle list access  The 'sess->rpc_handle_list' XArray manages RPC handles within a ksmbd session. Access to this list is intended to be protected by 'sess->rpc_lock' (an rw_semaphore). However, the locking implementation was flawed, leading to potential race conditions.  In ksmbd_session_rpc_open(), the code incorrectly acquired only a read lock before calling xa_store() and xa_erase(). Since these operations modify the XArray structure, a write lock is required to ensure exclusive access and prevent data corruption from concurrent modifications.  Furthermore, ksmbd_session_rpc_method() accessed the list using xa_load() without holding any lock at all. This could lead to reading inconsistent data or a potential use-after-free if an entry is concurrently removed and the pointer is dereferenced.  Fix these issues by: 1. Using down_write() and up_write() in ksmbd_session_rpc_open()    to ensure exclusive access during XArray modification, and ensuring    the lock is correctly released on error paths. 2. Adding down_read() and up_read() in ksmbd_session_rpc_method()    to safely protect the lookup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-28 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23093",
                        "url": "https://ubuntu.com/security/CVE-2026-23093",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: smbd: fix dma_unmap_sg() nents  The dma_unmap_sg() functions should be called with the same nents as the dma_map_sg(), not the value the map function returned.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23102",
                        "url": "https://ubuntu.com/security/CVE-2026-23102",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Fix restoration of SVE context  When SME is supported, Restoring SVE signal context can go wrong in a few ways, including placing the task into an invalid state where the kernel may read from out-of-bounds memory (and may potentially take a fatal fault) and/or may kill the task with a SIGKILL.  (1) Restoring a context with SVE_SIG_FLAG_SM set can place the task into     an invalid state where SVCR.SM is set (and sve_state is non-NULL)     but TIF_SME is clear, consequently resuting in out-of-bounds memory     reads and/or killing the task with SIGKILL.      This can only occur in unusual (but legitimate) cases where the SVE     signal context has either been modified by userspace or was saved in     the context of another task (e.g. as with CRIU), as otherwise the     presence of an SVE signal context with SVE_SIG_FLAG_SM implies that     TIF_SME is already set.      While in this state, task_fpsimd_load() will NOT configure SMCR_ELx     (leaving some arbitrary value configured in hardware) before     restoring SVCR and attempting to restore the streaming mode SVE     registers from memory via sve_load_state(). As the value of     SMCR_ELx.LEN may be larger than the task's streaming SVE vector     length, this may read memory outside of the task's allocated     sve_state, reading unrelated data and/or triggering a fault.      While this can result in secrets being loaded into streaming SVE     registers, these values are never exposed. As TIF_SME is clear,     fpsimd_bind_task_to_cpu() will configure CPACR_ELx.SMEN to trap EL0     accesses to streaming mode SVE registers, so these cannot be     accessed directly at EL0. As fpsimd_save_user_state() verifies the     live vector length before saving (S)SVE state to memory, no secret     values can be saved back to memory (and hence cannot be observed via     ptrace, signals, etc).      When the live vector length doesn't match the expected vector length     for the task, fpsimd_save_user_state() will send a fatal SIGKILL     signal to the task. Hence the task may be killed after executing     userspace for some period of time.  (2) Restoring a context with SVE_SIG_FLAG_SM clear does not clear the     task's SVCR.SM. If SVCR.SM was set prior to restoring the context,     then the task will be left in streaming mode unexpectedly, and some     register state will be combined inconsistently, though the task will     be left in legitimate state from the kernel's PoV.      This can only occur in unusual (but legitimate) cases where ptrace     has been used to set SVCR.SM after entry to the sigreturn syscall,     as syscall entry clears SVCR.SM.      In these cases, the the provided SVE register data will be loaded     into the task's sve_state using the non-streaming SVE vector length     and the FPSIMD registers will be merged into this using the     streaming SVE vector length.  Fix (1) by setting TIF_SME when setting SVCR.SM. This also requires ensuring that the task's sme_state has been allocated, but as this could contain live ZA state, it should not be zeroed. Fix (2) by clearing SVCR.SM when restoring a SVE signal context with SVE_SIG_FLAG_SM clear.  For consistency, I've pulled the manipulation of SVCR, TIF_SVE, TIF_SME, and fp_type earlier, immediately after the allocation of sve_state/sme_state, before the restore of the actual register state. This makes it easier to ensure that these are always modified consistently, even if a fault is taken while reading the register data from the signal context. I do not expect any software to depend on the exact state restored when a fault is taken while reading the context.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23170",
                        "url": "https://ubuntu.com/security/CVE-2026-23170",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/imx/tve: fix probe device leak  Make sure to drop the reference taken to the DDC device during probe on probe failure (e.g. probe deferral) and on driver unbind.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23168",
                        "url": "https://ubuntu.com/security/CVE-2026-23168",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  flex_proportions: make fprop_new_period() hardirq safe  Bernd has reported a lockdep splat from flexible proportions code that is essentially complaining about the following race:  <timer fires> run_timer_softirq - we are in softirq context   call_timer_fn     writeout_period       fprop_new_period         write_seqcount_begin(&p->sequence);          <hardirq is raised>         ...         blk_mq_end_request() \t  blk_update_request() \t    ext4_end_bio() \t      folio_end_writeback() \t\t__wb_writeout_add() \t\t  __fprop_add_percpu_max() \t\t    if (unlikely(max_frac < FPROP_FRAC_BASE)) { \t\t      fprop_fraction_percpu() \t\t\tseq = read_seqcount_begin(&p->sequence); \t\t\t  - sees odd sequence so loops indefinitely  Note that a deadlock like this is only possible if the bdi has configured maximum fraction of writeout throughput which is very rare in general but frequent for example for FUSE bdis.  To fix this problem we have to make sure write section of the sequence counter is irqsafe.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23156",
                        "url": "https://ubuntu.com/security/CVE-2026-23156",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  efivarfs: fix error propagation in efivar_entry_get()  efivar_entry_get() always returns success even if the underlying __efivar_entry_get() fails, masking errors.  This may result in uninitialized heap memory being copied to userspace in the efivarfs_file_read() path.  Fix it by returning the error from __efivar_entry_get().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23167",
                        "url": "https://ubuntu.com/security/CVE-2026-23167",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: nci: Fix race between rfkill and nci_unregister_device().  syzbot reported the splat below [0] without a repro.  It indicates that struct nci_dev.cmd_wq had been destroyed before nci_close_device() was called via rfkill.  nci_dev.cmd_wq is only destroyed in nci_unregister_device(), which (I think) was called from virtual_ncidev_close() when syzbot close()d an fd of virtual_ncidev.  The problem is that nci_unregister_device() destroys nci_dev.cmd_wq first and then calls nfc_unregister_device(), which removes the device from rfkill by rfkill_unregister().  So, the device is still visible via rfkill even after nci_dev.cmd_wq is destroyed.  Let's unregister the device from rfkill first in nci_unregister_device().  Note that we cannot call nfc_unregister_device() before nci_close_device() because    1) nfc_unregister_device() calls device_del() which frees      all memory allocated by devm_kzalloc() and linked to      ndev->conn_info_list    2) nci_rx_work() could try to queue nci_conn_info to      ndev->conn_info_list which could be leaked  Thus, nfc_unregister_device() is split into two functions so we can remove rfkill interfaces only before nci_close_device().  [0]: DEBUG_LOCKS_WARN_ON(1) WARNING: kernel/locking/lockdep.c:238 at hlock_class kernel/locking/lockdep.c:238 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at check_wait_context kernel/locking/lockdep.c:4854 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at __lock_acquire+0x39d/0x2cf0 kernel/locking/lockdep.c:5187, CPU#0: syz.0.8675/6349 Modules linked in: CPU: 0 UID: 0 PID: 6349 Comm: syz.0.8675 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/13/2026 RIP: 0010:hlock_class kernel/locking/lockdep.c:238 [inline] RIP: 0010:check_wait_context kernel/locking/lockdep.c:4854 [inline] RIP: 0010:__lock_acquire+0x3a4/0x2cf0 kernel/locking/lockdep.c:5187 Code: 18 00 4c 8b 74 24 08 75 27 90 e8 17 f2 fc 02 85 c0 74 1c 83 3d 50 e0 4e 0e 00 75 13 48 8d 3d 43 f7 51 0e 48 c7 c6 8b 3a de 8d <67> 48 0f b9 3a 90 31 c0 0f b6 98 c4 00 00 00 41 8b 45 20 25 ff 1f RSP: 0018:ffffc9000c767680 EFLAGS: 00010046 RAX: 0000000000000001 RBX: 0000000000040000 RCX: 0000000000080000 RDX: ffffc90013080000 RSI: ffffffff8dde3a8b RDI: ffffffff8ff24ca0 RBP: 0000000000000003 R08: ffffffff8fef35a3 R09: 1ffffffff1fde6b4 R10: dffffc0000000000 R11: fffffbfff1fde6b5 R12: 00000000000012a2 R13: ffff888030338ba8 R14: ffff888030338000 R15: ffff888030338b30 FS:  00007fa5995f66c0(0000) GS:ffff8881256f8000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f7e72f842d0 CR3: 00000000485a0000 CR4: 00000000003526f0 Call Trace:  <TASK>  lock_acquire+0x106/0x330 kernel/locking/lockdep.c:5868  touch_wq_lockdep_map+0xcb/0x180 kernel/workqueue.c:3940  __flush_workqueue+0x14b/0x14f0 kernel/workqueue.c:3982  nci_close_device+0x302/0x630 net/nfc/nci/core.c:567  nci_dev_down+0x3b/0x50 net/nfc/nci/core.c:639  nfc_dev_down+0x152/0x290 net/nfc/core.c:161  nfc_rfkill_set_block+0x2d/0x100 net/nfc/core.c:179  rfkill_set_block+0x1d2/0x440 net/rfkill/core.c:346  rfkill_fop_write+0x461/0x5a0 net/rfkill/core.c:1301  vfs_write+0x29a/0xb90 fs/read_write.c:684  ksys_write+0x150/0x270 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xe2/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa59b39acb9 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fa5995f6028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fa59b615fa0 RCX: 00007fa59b39acb9 RDX: 0000000000000008 RSI: 0000200000000080 RDI: 0000000000000007 RBP: 00007fa59b408bf7 R08: ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23173",
                        "url": "https://ubuntu.com/security/CVE-2026-23173",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: TC, delete flows only for existing peers  When deleting TC steering flows, iterate only over actual devcom peers instead of assuming all possible ports exist. This avoids touching non-existent peers and ensures cleanup is limited to devices the driver is currently connected to.   BUG: kernel NULL pointer dereference, address: 0000000000000008  #PF: supervisor write access in kernel mode  #PF: error_code(0x0002) - not-present page  PGD 133c8a067 P4D 0  Oops: Oops: 0002 [#1] SMP  CPU: 19 UID: 0 PID: 2169 Comm: tc Not tainted 6.18.0+ #156 NONE  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:mlx5e_tc_del_fdb_peers_flow+0xbe/0x200 [mlx5_core]  Code: 00 00 a8 08 74 a8 49 8b 46 18 f6 c4 02 74 9f 4c 8d bf a0 12 00 00 4c 89 ff e8 0e e7 96 e1 49 8b 44 24 08 49 8b 0c 24 4c 89 ff <48> 89 41 08 48 89 08 49 89 2c 24 49 89 5c 24 08 e8 7d ce 96 e1 49  RSP: 0018:ff11000143867528 EFLAGS: 00010246  RAX: 0000000000000000 RBX: dead000000000122 RCX: 0000000000000000  RDX: ff11000143691580 RSI: ff110001026e5000 RDI: ff11000106f3d2a0  RBP: dead000000000100 R08: 00000000000003fd R09: 0000000000000002  R10: ff11000101c75690 R11: ff1100085faea178 R12: ff11000115f0ae78  R13: 0000000000000000 R14: ff11000115f0a800 R15: ff11000106f3d2a0  FS:  00007f35236bf740(0000) GS:ff110008dc809000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000008 CR3: 0000000157a01001 CR4: 0000000000373eb0  Call Trace:   <TASK>   mlx5e_tc_del_flow+0x46/0x270 [mlx5_core]   mlx5e_flow_put+0x25/0x50 [mlx5_core]   mlx5e_delete_flower+0x2a6/0x3e0 [mlx5_core]   tc_setup_cb_reoffload+0x20/0x80   fl_reoffload+0x26f/0x2f0 [cls_flower]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   tcf_block_playback_offloads+0x9e/0x1c0   tcf_block_unbind+0x7b/0xd0   tcf_block_setup+0x186/0x1d0   tcf_block_offload_cmd.isra.0+0xef/0x130   tcf_block_offload_unbind+0x43/0x70   __tcf_block_put+0x85/0x160   ingress_destroy+0x32/0x110 [sch_ingress]   __qdisc_destroy+0x44/0x100   qdisc_graft+0x22b/0x610   tc_get_qdisc+0x183/0x4d0   rtnetlink_rcv_msg+0x2d7/0x3d0   ? rtnl_calcit.isra.0+0x100/0x100   netlink_rcv_skb+0x53/0x100   netlink_unicast+0x249/0x320   ? __alloc_skb+0x102/0x1f0   netlink_sendmsg+0x1e3/0x420   __sock_sendmsg+0x38/0x60   ____sys_sendmsg+0x1ef/0x230   ? copy_msghdr_from_user+0x6c/0xa0   ___sys_sendmsg+0x7f/0xc0   ? ___sys_recvmsg+0x8a/0xc0   ? __sys_sendto+0x119/0x180   __sys_sendmsg+0x61/0xb0   do_syscall_64+0x55/0x640   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7f35238bb764  Code: 15 b9 86 0c 00 f7 d8 64 89 02 b8 ff ff ff ff eb bf 0f 1f 44 00 00 f3 0f 1e fa 80 3d e5 08 0d 00 00 74 13 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 4c c3 0f 1f 00 55 48 89 e5 48 83 ec 20 89 55  RSP: 002b:00007ffed4c35638 EFLAGS: 00000202 ORIG_RAX: 000000000000002e  RAX: ffffffffffffffda RBX: 000055a2efcc75e0 RCX: 00007f35238bb764  RDX: 0000000000000000 RSI: 00007ffed4c356a0 RDI: 0000000000000003  RBP: 00007ffed4c35710 R08: 0000000000000010 R09: 00007f3523984b20  R10: 0000000000000004 R11: 0000000000000202 R12: 00007ffed4c35790  R13: 000000006947df8f R14: 000055a2efcc75e0 R15: 00007ffed4c35780",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23150",
                        "url": "https://ubuntu.com/security/CVE-2026-23150",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: llcp: Fix memleak in nfc_llcp_send_ui_frame().  syzbot reported various memory leaks related to NFC, struct nfc_llcp_sock, sk_buff, nfc_dev, etc. [0]  The leading log hinted that nfc_llcp_send_ui_frame() failed to allocate skb due to sock_error(sk) being -ENXIO.  ENXIO is set by nfc_llcp_socket_release() when struct nfc_llcp_local is destroyed by local_cleanup().  The problem is that there is no synchronisation between nfc_llcp_send_ui_frame() and local_cleanup(), and skb could be put into local->tx_queue after it was purged in local_cleanup():    CPU1                          CPU2   ----                          ----   nfc_llcp_send_ui_frame()      local_cleanup()   |- do {                       '      |- pdu = nfc_alloc_send_skb(..., &err)      |                          .      |                          |- nfc_llcp_socket_release(local, false, ENXIO);      |                          |- skb_queue_purge(&local->tx_queue);     |      |                          '                                         |      |- skb_queue_tail(&local->tx_queue, pdu);                            |     ...                                                                   |      |- pdu = nfc_alloc_send_skb(..., &err)                               |                                       ^._________________________________.'  local_cleanup() is called for struct nfc_llcp_local only after nfc_llcp_remove_local() unlinks it from llcp_devices.  If we hold local->tx_queue.lock then, we can synchronise the thread and nfc_llcp_send_ui_frame().  Let's do that and check list_empty(&local->list) before queuing skb to local->tx_queue in nfc_llcp_send_ui_frame().  [0]: [   56.074943][ T6096] llcp: nfc_llcp_send_ui_frame: Could not allocate PDU (error=-6) [   64.318868][ T5813] kmemleak: 6 new suspected memory leaks (see /sys/kernel/debug/kmemleak) BUG: memory leak unreferenced object 0xffff8881272f6800 (size 1024):   comm \"syz.0.17\", pid 6096, jiffies 4294942766   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     27 00 03 40 00 00 00 00 00 00 00 00 00 00 00 00  '..@............   backtrace (crc da58d84d):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     __do_kmalloc_node mm/slub.c:5645 [inline]     __kmalloc_noprof+0x3e3/0x6b0 mm/slub.c:5658     kmalloc_noprof include/linux/slab.h:961 [inline]     sk_prot_alloc+0x11a/0x1b0 net/core/sock.c:2239     sk_alloc+0x36/0x360 net/core/sock.c:2295     nfc_llcp_sock_alloc+0x37/0x130 net/nfc/llcp_sock.c:979     llcp_sock_create+0x71/0xd0 net/nfc/llcp_sock.c:1044     nfc_sock_create+0xc9/0xf0 net/nfc/af_nfc.c:31     __sock_create+0x1a9/0x340 net/socket.c:1605     sock_create net/socket.c:1663 [inline]     __sys_socket_create net/socket.c:1700 [inline]     __sys_socket+0xb9/0x1a0 net/socket.c:1747     __do_sys_socket net/socket.c:1761 [inline]     __se_sys_socket net/socket.c:1759 [inline]     __x64_sys_socket+0x1b/0x30 net/socket.c:1759     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  BUG: memory leak unreferenced object 0xffff88810fbd9800 (size 240):   comm \"syz.0.17\", pid 6096, jiffies 4294942850   hex dump (first 32 bytes):     68 f0 ff 08 81 88 ff ff 68 f0 ff 08 81 88 ff ff  h.......h.......     00 00 00 00 00 00 00 00 00 68 2f 27 81 88 ff ff  .........h/'....   backtrace (crc 6cc652b1):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5336     __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/sk ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23164",
                        "url": "https://ubuntu.com/security/CVE-2026-23164",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  rocker: fix memory leak in rocker_world_port_post_fini()  In rocker_world_port_pre_init(), rocker_port->wpriv is allocated with kzalloc(wops->port_priv_size, GFP_KERNEL). However, in rocker_world_port_post_fini(), the memory is only freed when wops->port_post_fini callback is set:      if (!wops->port_post_fini)         return;     wops->port_post_fini(rocker_port);     kfree(rocker_port->wpriv);  Since rocker_ofdpa_ops does not implement port_post_fini callback (it is NULL), the wpriv memory allocated for each port is never freed when ports are removed. This leads to a memory leak of sizeof(struct ofdpa_port) bytes per port on every device removal.  Fix this by always calling kfree(rocker_port->wpriv) regardless of whether the port_post_fini callback exists.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23172",
                        "url": "https://ubuntu.com/security/CVE-2026-23172",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: wwan: t7xx: fix potential skb->frags overflow in RX path  When receiving data in the DPMAIF RX path, the t7xx_dpmaif_set_frag_to_skb() function adds page fragments to an skb without checking if the number of fragments has exceeded MAX_SKB_FRAGS. This could lead to a buffer overflow in skb_shinfo(skb)->frags[] array, corrupting adjacent memory and potentially causing kernel crashes or other undefined behavior.  This issue was identified through static code analysis by comparing with a similar vulnerability fixed in the mt76 driver commit b102f0c522cf (\"mt76: fix array overflow on receiving too many fragments for a packet\").  The vulnerability could be triggered if the modem firmware sends packets with excessive fragments. While under normal protocol conditions (MTU 3080 bytes, BAT buffer 3584 bytes), a single packet should not require additional fragments, the kernel should not blindly trust firmware behavior. Malicious, buggy, or compromised firmware could potentially craft packets with more fragments than the kernel expects.  Fix this by adding a bounds check before calling skb_add_rx_frag() to ensure nr_frags does not exceed MAX_SKB_FRAGS.  The check must be performed before unmapping to avoid a page leak and double DMA unmap during device teardown.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23212",
                        "url": "https://ubuntu.com/security/CVE-2026-23212",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: annotate data-races around slave->last_rx  slave->last_rx and slave->target_last_arp_rx[...] can be read and written locklessly. Add READ_ONCE() and WRITE_ONCE() annotations.  syzbot reported:  BUG: KCSAN: data-race in bond_rcv_validate / bond_rcv_validate  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 1:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410 ...  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 0:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410   br_netif_receive_skb net/bridge/br_input.c:30 [inline]   NF_HOOK include/linux/netfilter.h:318 [inline] ...  value changed: 0x0000000100005365 -> 0x0000000100005366",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23160",
                        "url": "https://ubuntu.com/security/CVE-2026-23160",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeon_ep: Fix memory leak in octep_device_setup()  In octep_device_setup(), if octep_ctrl_net_init() fails, the function returns directly without unmapping the mapped resources and freeing the allocated configuration memory.  Fix this by jumping to the unsupported_dev label, which performs the necessary cleanup. This aligns with the error handling logic of other paths in this function.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23146",
                        "url": "https://ubuntu.com/security/CVE-2026-23146",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work  hci_uart_set_proto() sets HCI_UART_PROTO_INIT before calling hci_uart_register_dev(), which calls proto->open() to initialize hu->priv. However, if a TTY write wakeup occurs during this window, hci_uart_tx_wakeup() may schedule write_work before hu->priv is initialized, leading to a NULL pointer dereference in hci_uart_write_work() when proto->dequeue() accesses hu->priv.  The race condition is:    CPU0                              CPU1   ----                              ----   hci_uart_set_proto()     set_bit(HCI_UART_PROTO_INIT)     hci_uart_register_dev()                                     tty write wakeup                                       hci_uart_tty_wakeup()                                         hci_uart_tx_wakeup()                                           schedule_work(&hu->write_work)       proto->open(hu)         // initializes hu->priv                                     hci_uart_write_work()                                       hci_uart_dequeue()                                         proto->dequeue(hu)                                           // accesses hu->priv (NULL!)  Fix this by moving set_bit(HCI_UART_PROTO_INIT) after proto->open() succeeds, ensuring hu->priv is initialized before any work can be scheduled.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23394",
                        "url": "https://ubuntu.com/security/CVE-2026-23394",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  af_unix: Give up GC if MSG_PEEK intervened.  Igor Ushakov reported that GC purged the receive queue of an alive socket due to a race with MSG_PEEK with a nice repro.  This is the exact same issue previously fixed by commit cbcf01128d0a (\"af_unix: fix garbage collect vs MSG_PEEK\").  After GC was replaced with the current algorithm, the cited commit removed the locking dance in unix_peek_fds() and reintroduced the same issue.  The problem is that MSG_PEEK bumps a file refcount without interacting with GC.  Consider an SCC containing sk-A and sk-B, where sk-A is close()d but can be recv()ed via sk-B.  The bad thing happens if sk-A is recv()ed with MSG_PEEK from sk-B and sk-B is close()d while GC is checking unix_vertex_dead() for sk-A and sk-B.    GC thread                    User thread   ---------                    -----------   unix_vertex_dead(sk-A)   -> true   <------.                     \\                      `------   recv(sk-B, MSG_PEEK)               invalidate !!    -> sk-A's file refcount : 1 -> 2                                 close(sk-B)                                -> sk-B's file refcount : 2 -> 1   unix_vertex_dead(sk-B)   -> true  Initially, sk-A's file refcount is 1 by the inflight fd in sk-B recvq.  GC thinks sk-A is dead because the file refcount is the same as the number of its inflight fds.  However, sk-A's file refcount is bumped silently by MSG_PEEK, which invalidates the previous evaluation.  At this moment, sk-B's file refcount is 2; one by the open fd, and one by the inflight fd in sk-A.  The subsequent close() releases one refcount by the former.  Finally, GC incorrectly concludes that both sk-A and sk-B are dead.  One option is to restore the locking dance in unix_peek_fds(), but we can resolve this more elegantly thanks to the new algorithm.  The point is that the issue does not occur without the subsequent close() and we actually do not need to synchronise MSG_PEEK with the dead SCC detection.  When the issue occurs, close() and GC touch the same file refcount. If GC sees the refcount being decremented by close(), it can just give up garbage-collecting the SCC.  Therefore, we only need to signal the race during MSG_PEEK with a proper memory barrier to make it visible to the GC.  Let's use seqcount_t to notify GC when MSG_PEEK occurs and let it defer the SCC to the next run.  This way no locking is needed on the MSG_PEEK side, and we can avoid imposing a penalty on every MSG_PEEK unnecessarily.  Note that we can retry within unix_scc_dead() if MSG_PEEK is detected, but we do not do so to avoid hung task splat from abusive MSG_PEEK calls.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-25 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38591",
                        "url": "https://ubuntu.com/security/CVE-2025-38591",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Reject narrower access to pointer ctx fields  The following BPF program, simplified from a syzkaller repro, causes a kernel warning:      r0 = *(u8 *)(r1 + 169);     exit;  With pointer field sk being at offset 168 in __sk_buff. This access is detected as a narrower read in bpf_skb_is_valid_access because it doesn't match offsetof(struct __sk_buff, sk). It is therefore allowed and later proceeds to bpf_convert_ctx_access. Note that for the \"is_narrower_load\" case in the convert_ctx_accesses(), the insn->off is aligned, so the cnt may not be 0 because it matches the offsetof(struct __sk_buff, sk) in the bpf_convert_ctx_access. However, the target_size stays 0 and the verifier errors with a kernel warning:      verifier bug: error during ctx access conversion(1)  This patch fixes that to return a proper \"invalid bpf_context access off=X size=Y\" error on the load instruction.  The same issue affects multiple other fields in context structures that allow narrow access. Some other non-affected fields (for sk_msg, sk_lookup, and sockopt) were also changed to use bpf_ctx_range_ptr for consistency.  Note this syzkaller crash was reported in the \"Closes\" link below, which used to be about a different bug, fixed in commit fce7bd8e385a (\"bpf/verifier: Handle BPF_LOAD_ACQ instructions in insn_def_regno()\"). Because syzbot somehow confused the two bugs, the new crash and repro didn't get reported to the mailing list.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-08-19 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23035",
                        "url": "https://ubuntu.com/security/CVE-2026-23035",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Pass netdev to mlx5e_destroy_netdev instead of priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails.  Pass netdev to mlx5e_destroy_netdev() to guarantee it will work on a valid netdev.  On mlx5e_remove: Check validity of priv->profile, before attempting to cleanup any resources that might be not there.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000370 PGD 0 P4D 0 Oops: Oops: 0000 [#1] SMP NOPTI CPU: 15 UID: 0 PID: 520 Comm: devlink Not tainted 6.18.0-rc5+ #115 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_dcbnl_dscp_app+0x23/0x100 RSP: 0018:ffffc9000083f8b8 EFLAGS: 00010286 RAX: ffff8881126fc380 RBX: ffff8881015ac400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8881035109c0 RBP: ffff8881035109c0 R08: ffff888101e3e838 R09: ffff888100264e10 R10: ffffc9000083f898 R11: ffffc9000083f8a0 R12: ffff888101b921a0 R13: ffff888101b921a0 R14: ffff8881015ac9a0 R15: ffff8881015ac400 FS:  00007f789a3c8740(0000) GS:ffff88856aa59000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000370 CR3: 000000010b6c0001 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_remove+0x57/0x110  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22996",
                        "url": "https://ubuntu.com/security/CVE-2026-22996",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Don't store mlx5e_priv in mlx5e_dev devlink priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails, mlx5e_priv in mlx5e_dev devlink private is used to reference the netdev and mdev associated with that struct. Instead, store netdev directly into mlx5e_dev and get mdev from the containing mlx5_adev aux device structure.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000520  #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: 3 UID: 0 PID: 521 Comm: devlink Not tainted 6.18.0-rc5+ #117 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_remove+0x68/0x130 RSP: 0018:ffffc900034838f0 EFLAGS: 00010246 RAX: ffff88810283c380 RBX: ffff888101874400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffff888102d789c0 R08: ffff8881007137f0 R09: ffff888100264e10 R10: ffffc90003483898 R11: ffffc900034838a0 R12: ffff888100d261a0 R13: ffff888100d261a0 R14: ffff8881018749a0 R15: ffff888101874400 FS:  00007f8565fea740(0000) GS:ffff88856a759000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000520 CR3: 000000010b11a004 CR4: 0000000000370ef0 Call Trace:  <TASK>  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23000",
                        "url": "https://ubuntu.com/security/CVE-2026-23000",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Fix crash on profile change rollback failure  mlx5e_netdev_change_profile can fail to attach a new profile and can fail to rollback to old profile, in such case, we could end up with a dangling netdev with a fully reset netdev_priv. A retry to change profile, e.g. another attempt to call mlx5e_netdev_change_profile via switchdev mode change, will crash trying to access the now NULL priv->mdev.  This fix allows mlx5e_netdev_change_profile() to handle previous failures and an empty priv, by not assuming priv is valid.  Pass netdev and mdev to all flows requiring mlx5e_netdev_change_profile() and avoid passing priv. In mlx5e_netdev_change_profile() check if current priv is valid, and if not, just attach the new profile without trying to access the old one.  This fixes the following oops, when enabling switchdev mode for the 2nd time after first time failure:   ## Enabling switchdev mode first time:  mlx5_core 0012:03:00.1: E-Switch: Supported tc chains and prios offload workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12                                                                         ^^^^^^^^ mlx5_core 0000:00:03.0: E-Switch: Disable: mode(LEGACY), nvfs(0), necvfs(0), active vports(0)   ## retry: Enabling switchdev mode 2nd time:  mlx5_core 0000:00:03.0: E-Switch: Supported tc chains and prios offload BUG: kernel NULL pointer dereference, address: 0000000000000038  #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: 520 Comm: devlink Not tainted 6.18.0-rc4+ #91 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_detach_netdev+0x3c/0x90 Code: 50 00 00 f0 80 4f 78 02 48 8b bf e8 07 00 00 48 85 ff 74 16 48 8b 73 78 48 d1 ee 83 e6 01 83 f6 01 40 0f b6 f6 e8 c4 42 00 00 <48> 8b 45 38 48 85 c0 74 08 48 89 df e8 cc 47 40 1e 48 8b bb f0 07 RSP: 0018:ffffc90000673890 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff8881036a89c0 RCX: 0000000000000000 RDX: ffff888113f63800 RSI: ffffffff822fe720 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000002dcd R09: 0000000000000000 R10: ffffc900006738e8 R11: 00000000ffffffff R12: 0000000000000000 R13: 0000000000000000 R14: ffff8881036a89c0 R15: 0000000000000000 FS:  00007fdfb8384740(0000) GS:ffff88856a9d6000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000038 CR3: 0000000112ae0005 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_netdev_change_profile+0x45/0xb0  mlx5e_vport_rep_load+0x27b/0x2d0  mlx5_esw_offloads_rep_load+0x72/0xf0  esw_offloads_enable+0x5d0/0x970  mlx5_eswitch_enable_locked+0x349/0x430  ? is_mp_supported+0x57/0xb0  mlx5_devlink_eswitch_mode_set+0x26b/0x430  devlink_nl_eswitch_set_doit+0x6f/0xf0  genl_family_rcv_msg_doit+0xe8/0x140  genl_rcv_msg+0x18b/0x290  ? __pfx_devlink_nl_pre_doit+0x10/0x10  ? __pfx_devlink_nl_eswitch_set_doit+0x10/0x10  ? __pfx_devlink_nl_post_doit+0x10/0x10  ? __pfx_genl_rcv_msg+0x10/0x10  netlink_rcv_skb+0x52/0x100  genl_rcv+0x28/0x40  netlink_unicast+0x282/0x3e0  ? __alloc_skb+0xd6/0x190  netlink_sendmsg+0x1f7/0x430  __sys_sendto+0x213/0x220  ? __sys_recvmsg+0x6a/0xd0  __x64_sys_sendto+0x24/0x30  do_syscall_64+0x50/0x1f0  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fdfb8495047",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23053",
                        "url": "https://ubuntu.com/security/CVE-2026-23053",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Fix a deadlock involving nfs_release_folio()  Wang Zhaolong reports a deadlock involving NFSv4.1 state recovery waiting on kthreadd, which is attempting to reclaim memory by calling nfs_release_folio(). The latter cannot make progress due to state recovery being needed.  It seems that the only safe thing to do here is to kick off a writeback of the folio, without waiting for completion, or else kicking off an asynchronous commit.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23050",
                        "url": "https://ubuntu.com/security/CVE-2026-23050",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pNFS: Fix a deadlock when returning a delegation during open()  Ben Coddington reports seeing a hang in the following stack trace:   0 [ffffd0b50e1774e0] __schedule at ffffffff9ca05415   1 [ffffd0b50e177548] schedule at ffffffff9ca05717   2 [ffffd0b50e177558] bit_wait at ffffffff9ca061e1   3 [ffffd0b50e177568] __wait_on_bit at ffffffff9ca05cfb   4 [ffffd0b50e1775c8] out_of_line_wait_on_bit at ffffffff9ca05ea5   5 [ffffd0b50e177618] pnfs_roc at ffffffffc154207b [nfsv4]   6 [ffffd0b50e1776b8] _nfs4_proc_delegreturn at ffffffffc1506586 [nfsv4]   7 [ffffd0b50e177788] nfs4_proc_delegreturn at ffffffffc1507480 [nfsv4]   8 [ffffd0b50e1777f8] nfs_do_return_delegation at ffffffffc1523e41 [nfsv4]   9 [ffffd0b50e177838] nfs_inode_set_delegation at ffffffffc1524a75 [nfsv4]  10 [ffffd0b50e177888] nfs4_process_delegation at ffffffffc14f41dd [nfsv4]  11 [ffffd0b50e1778a0] _nfs4_opendata_to_nfs4_state at ffffffffc1503edf [nfsv4]  12 [ffffd0b50e1778c0] _nfs4_open_and_get_state at ffffffffc1504e56 [nfsv4]  13 [ffffd0b50e177978] _nfs4_do_open at ffffffffc15051b8 [nfsv4]  14 [ffffd0b50e1779f8] nfs4_do_open at ffffffffc150559c [nfsv4]  15 [ffffd0b50e177a80] nfs4_atomic_open at ffffffffc15057fb [nfsv4]  16 [ffffd0b50e177ad0] nfs4_file_open at ffffffffc15219be [nfsv4]  17 [ffffd0b50e177b78] do_dentry_open at ffffffff9c09e6ea  18 [ffffd0b50e177ba8] vfs_open at ffffffff9c0a082e  19 [ffffd0b50e177bd0] dentry_open at ffffffff9c0a0935  The issue is that the delegreturn is being asked to wait for a layout return that cannot complete because a state recovery was initiated. The state recovery cannot complete until the open() finishes processing the delegations it was given.  The solution is to propagate the existing flags that indicate a non-blocking call to the function pnfs_roc(), so that it knows not to wait in this situation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23005",
                        "url": "https://ubuntu.com/security/CVE-2026-23005",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1  When loading guest XSAVE state via KVM_SET_XSAVE, and when updating XFD in response to a guest WRMSR, clear XFD-disabled features in the saved (or to be restored) XSTATE_BV to ensure KVM doesn't attempt to load state for features that are disabled via the guest's XFD.  Because the kernel executes XRSTOR with the guest's XFD, saving XSTATE_BV[i]=1 with XFD[i]=1 will cause XRSTOR to #NM and panic the kernel.  E.g. if fpu_update_guest_xfd() sets XFD without clearing XSTATE_BV:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#29: amx_test/848   Modules linked in: kvm_intel kvm irqbypass   CPU: 29 UID: 1000 PID: 848 Comm: amx_test Not tainted 6.19.0-rc2-ffa07f7fd437-x86_amx_nm_xfd_non_init-vm #171 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    switch_fpu_return+0x4a/0xb0    kvm_arch_vcpu_ioctl_run+0x1245/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  This can happen if the guest executes WRMSR(MSR_IA32_XFD) to set XFD[18] = 1, and a host IRQ triggers kernel_fpu_begin() prior to the vmexit handler's call to fpu_update_guest_xfd().  and if userspace stuffs XSTATE_BV[i]=1 via KVM_SET_XSAVE:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#14: amx_test/867   Modules linked in: kvm_intel kvm irqbypass   CPU: 14 UID: 1000 PID: 867 Comm: amx_test Not tainted 6.19.0-rc2-2dace9faccd6-x86_amx_nm_xfd_non_init-vm #168 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    fpu_swap_kvm_fpstate+0x6b/0x120    kvm_load_guest_fpu+0x30/0x80 [kvm]    kvm_arch_vcpu_ioctl_run+0x85/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  The new behavior is consistent with the AMX architecture.  Per Intel's SDM, XSAVE saves XSTATE_BV as '0' for components that are disabled via XFD (and non-compacted XSAVE saves the initial configuration of the state component):    If XSAVE, XSAVEC, XSAVEOPT, or XSAVES is saving the state component i,   the instruction does not generate #NM when XCR0[i] = IA32_XFD[i] = 1;   instead, it operates as if XINUSE[i] = 0 (and the state component was   in its initial state): it saves bit i of XSTATE_BV field of the XSAVE   header as 0; in addition, XSAVE saves the initial configuration of the   state component (the other instructions do not save state component i).  Alternatively, KVM could always do XRSTOR with XFD=0, e.g. by using a constant XFD based on the set of enabled features when XSAVEing for a struct fpu_guest.  However, having XSTATE_BV[i]=1 for XFD-disabled features can only happen in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, because fpu_swap_kvm_fpstate()'s call to save_fpregs_to_fpstate() saves the outgoing FPU state with the current XFD; and that is (on all but the first WRMSR to XFD) the guest XFD.  Therefore, XFD can only go out of sync with XSTATE_BV in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, and it we can consider it (de facto) part of KVM ABI that KVM_GET_XSAVE returns XSTATE_BV[i]=0 for XFD-disabled features.  [Move clea ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-58097",
                        "url": "https://ubuntu.com/security/CVE-2024-58097",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix RCU stall while reaping monitor destination ring  While processing the monitor destination ring, MSDUs are reaped from the link descriptor based on the corresponding buf_id.  However, sometimes the driver cannot obtain a valid buffer corresponding to the buf_id received from the hardware. This causes an infinite loop in the destination processing, resulting in a kernel crash.  kernel log: ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed  Fix this by skipping the problematic buf_id and reaping the next entry, replacing the break with the next MSDU processing.  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68365",
                        "url": "https://ubuntu.com/security/CVE-2025-68365",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/ntfs3: Initialize allocated memory before use  KMSAN reports: Multiple uninitialized values detected:  - KMSAN: uninit-value in ntfs_read_hdr (3) - KMSAN: uninit-value in bcmp (3)  Memory is allocated by __getname(), which is a wrapper for kmem_cache_alloc(). This memory is used before being properly cleared. Change kmem_cache_alloc() to kmem_cache_zalloc() to properly allocate and clear memory before use.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-37926",
                        "url": "https://ubuntu.com/security/CVE-2025-37926",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_session_rpc_open  A UAF issue can occur due to a race condition between ksmbd_session_rpc_open() and __session_rpc_close(). Add rpc_lock to the session to protect it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-05-20 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23030",
                        "url": "https://ubuntu.com/security/CVE-2026-23030",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: rockchip: inno-usb2: Fix a double free bug in rockchip_usb2phy_probe()  The for_each_available_child_of_node() calls of_node_put() to release child_np in each success loop. After breaking from the loop with the child_np has been released, the code will jump to the put_child label and will call the of_node_put() again if the devm_request_threaded_irq() fails. These cause a double free bug.  Fix by returning directly to avoid the duplicate of_node_put().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23025",
                        "url": "https://ubuntu.com/security/CVE-2026-23025",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/page_alloc: prevent pcp corruption with SMP=n  The kernel test robot has reported:   BUG: spinlock trylock failure on UP on CPU#0, kcompactd0/28   lock: 0xffff888807e35ef0, .magic: dead4ead, .owner: kcompactd0/28, .owner_cpu: 0  CPU: 0 UID: 0 PID: 28 Comm: kcompactd0 Not tainted 6.18.0-rc5-00127-ga06157804399 #1 PREEMPT 8cc09ef94dcec767faa911515ce9e609c45db470  Call Trace:   <IRQ>   __dump_stack (lib/dump_stack.c:95)   dump_stack_lvl (lib/dump_stack.c:123)   dump_stack (lib/dump_stack.c:130)   spin_dump (kernel/locking/spinlock_debug.c:71)   do_raw_spin_trylock (kernel/locking/spinlock_debug.c:?)   _raw_spin_trylock (include/linux/spinlock_api_smp.h:89 kernel/locking/spinlock.c:138)   __free_frozen_pages (mm/page_alloc.c:2973)   ___free_pages (mm/page_alloc.c:5295)   __free_pages (mm/page_alloc.c:5334)   tlb_remove_table_rcu (include/linux/mm.h:? include/linux/mm.h:3122 include/asm-generic/tlb.h:220 mm/mmu_gather.c:227 mm/mmu_gather.c:290)   ? __cfi_tlb_remove_table_rcu (mm/mmu_gather.c:289)   ? rcu_core (kernel/rcu/tree.c:?)   rcu_core (include/linux/rcupdate.h:341 kernel/rcu/tree.c:2607 kernel/rcu/tree.c:2861)   rcu_core_si (kernel/rcu/tree.c:2879)   handle_softirqs (arch/x86/include/asm/jump_label.h:36 include/trace/events/irq.h:142 kernel/softirq.c:623)   __irq_exit_rcu (arch/x86/include/asm/jump_label.h:36 kernel/softirq.c:725)   irq_exit_rcu (kernel/softirq.c:741)   sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1052)   </IRQ>   <TASK>  RIP: 0010:_raw_spin_unlock_irqrestore (arch/x86/include/asm/preempt.h:95 include/linux/spinlock_api_smp.h:152 kernel/locking/spinlock.c:194)   free_pcppages_bulk (mm/page_alloc.c:1494)   drain_pages_zone (include/linux/spinlock.h:391 mm/page_alloc.c:2632)   __drain_all_pages (mm/page_alloc.c:2731)   drain_all_pages (mm/page_alloc.c:2747)   kcompactd (mm/compaction.c:3115)   kthread (kernel/kthread.c:465)   ? __cfi_kcompactd (mm/compaction.c:3166)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork (arch/x86/kernel/process.c:164)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork_asm (arch/x86/entry/entry_64.S:255)   </TASK>  Matthew has analyzed the report and identified that in drain_page_zone() we are in a section protected by spin_lock(&pcp->lock) and then get an interrupt that attempts spin_trylock() on the same lock.  The code is designed to work this way without disabling IRQs and occasionally fail the trylock with a fallback.  However, the SMP=n spinlock implementation assumes spin_trylock() will always succeed, and thus it's normally a no-op.  Here the enabled lock debugging catches the problem, but otherwise it could cause a corruption of the pcp structure.  The problem has been introduced by commit 574907741599 (\"mm/page_alloc: leave IRQs enabled for per-cpu page allocations\").  The pcp locking scheme recognizes the need for disabling IRQs to prevent nesting spin_trylock() sections on SMP=n, but the need to prevent the nesting in spin_lock() has not been recognized.  Fix it by introducing local wrappers that change the spin_lock() to spin_lock_iqsave() with SMP=n and use them in all places that do spin_lock(&pcp->lock).  [vbabka@suse.cz: add pcp_ prefix to the spin_lock_irqsave wrappers, per Steven]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71186",
                        "url": "https://ubuntu.com/security/CVE-2025-71186",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: stm32: dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23078",
                        "url": "https://ubuntu.com/security/CVE-2026-23078",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: scarlett2: Fix buffer overflow in config retrieval  The scarlett2_usb_get_config() function has a logic error in the endianness conversion code that can cause buffer overflows when count > 1.  The code checks `if (size == 2)` where `size` is the total buffer size in bytes, then loops `count` times treating each element as u16 (2 bytes). This causes the loop to access `count * 2` bytes when the buffer only has `size` bytes allocated.  Fix by checking the element size (config_item->size) instead of the total buffer size. This ensures the endianness conversion matches the actual element type.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23142",
                        "url": "https://ubuntu.com/security/CVE-2026-23142",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs-scheme: cleanup access_pattern subdirs on scheme dir setup failure  When a DAMOS-scheme DAMON sysfs directory setup fails after setup of access_pattern/ directory, subdirectories of access_pattern/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23075",
                        "url": "https://ubuntu.com/security/CVE-2026-23075",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: esd_usb: esd_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In esd_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback esd_usb_read_bulk_callback(), the URBs are processed and resubmitted. In esd_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in esd_usb_close().  Fix the memory leak by anchoring the URB in the esd_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68725",
                        "url": "https://ubuntu.com/security/CVE-2025-68725",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Do not let BPF test infra emit invalid GSO types to stack  Yinhao et al. reported that their fuzzer tool was able to trigger a skb_warn_bad_offload() from netif_skb_features() -> gso_features_check(). When a BPF program - triggered via BPF test infra - pushes the packet to the loopback device via bpf_clone_redirect() then mentioned offload warning can be seen. GSO-related features are then rightfully disabled.  We get into this situation due to convert___skb_to_skb() setting gso_segs and gso_size but not gso_type. Technically, it makes sense that this warning triggers since the GSO properties are malformed due to the gso_type. Potentially, the gso_type could be marked non-trustworthy through setting it at least to SKB_GSO_DODGY without any other specific assumptions, but that also feels wrong given we should not go further into the GSO engine in the first place.  The checks were added in 121d57af308d (\"gso: validate gso_type in GSO handlers\") because there were malicious (syzbot) senders that combine a protocol with a non-matching gso_type. If we would want to drop such packets, gso_features_check() currently only returns feature flags via netif_skb_features(), so one location for potentially dropping such skbs could be validate_xmit_unreadable_skb(), but then otoh it would be an additional check in the fast-path for a very corner case. Given bpf_clone_redirect() is the only place where BPF test infra could emit such packets, lets reject them right there.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23097",
                        "url": "https://ubuntu.com/security/CVE-2026-23097",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  migrate: correct lock ordering for hugetlb file folios  Syzbot has found a deadlock (analyzed by Lance Yang):  1) Task (5749): Holds folio_lock, then tries to acquire i_mmap_rwsem(read lock). 2) Task (5754): Holds i_mmap_rwsem(write lock), then tries to acquire folio_lock.  migrate_pages()   -> migrate_hugetlbs()     -> unmap_and_move_huge_page()     <- Takes folio_lock!       -> remove_migration_ptes()         -> __rmap_walk_file()           -> i_mmap_lock_read()       <- Waits for i_mmap_rwsem(read lock)!  hugetlbfs_fallocate()   -> hugetlbfs_punch_hole()           <- Takes i_mmap_rwsem(write lock)!     -> hugetlbfs_zero_partial_page()      -> filemap_lock_hugetlb_folio()       -> filemap_lock_folio()         -> __filemap_get_folio        <- Waits for folio_lock!  The migration path is the one taking locks in the wrong order according to the documentation at the top of mm/rmap.c.  So expand the scope of the existing i_mmap_lock to cover the calls to remove_migration_ptes() too.  This is (mostly) how it used to be after commit c0d0381ade79.  That was removed by 336bf30eb765 for both file & anon hugetlb pages when it should only have been removed for anon hugetlb pages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23108",
                        "url": "https://ubuntu.com/security/CVE-2026-23108",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: usb_8dev: usb_8dev_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In usb_8dev_open() -> usb_8dev_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback usb_8dev_read_bulk_callback(), the URBs are processed and resubmitted. In usb_8dev_close() -> unlink_all_urbs() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the usb_8dev_read_bulk_callback() to the priv->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23080",
                        "url": "https://ubuntu.com/security/CVE-2026-23080",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: mcba_usb: mcba_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In mcba_usb_probe() -> mcba_usb_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback mcba_usb_read_bulk_callback(), the URBs are processed and resubmitted. In mcba_usb_close() -> mcba_urb_unlink() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the mcba_usb_read_bulk_callback()to the priv->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23061",
                        "url": "https://ubuntu.com/security/CVE-2026-23061",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In kvaser_usb_set_{,data_}bittiming() -> kvaser_usb_setup_rx_urbs(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback kvaser_usb_read_bulk_callback(), the URBs are processed and resubmitted. In kvaser_usb_remove_interfaces() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the kvaser_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23058",
                        "url": "https://ubuntu.com/security/CVE-2026-23058",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In ems_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback ems_usb_read_bulk_callback(), the URBs are processed and resubmitted. In ems_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in ems_usb_close().  Fix the memory leak by anchoring the URB in the ems_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23085",
                        "url": "https://ubuntu.com/security/CVE-2026-23085",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/gic-v3-its: Avoid truncating memory addresses  On 32-bit machines with CONFIG_ARM_LPAE, it is possible for lowmem allocations to be backed by addresses physical memory above the 32-bit address limit, as found while experimenting with larger VMSPLIT configurations.  This caused the qemu virt model to crash in the GICv3 driver, which allocates the 'itt' object using GFP_KERNEL. Since all memory below the 4GB physical address limit is in ZONE_DMA in this configuration, kmalloc() defaults to higher addresses for ZONE_NORMAL, and the ITS driver stores the physical address in a 32-bit 'unsigned long' variable.  Change the itt_addr variable to the correct phys_addr_t type instead, along with all other variables in this driver that hold a physical address.  The gicv5 driver correctly uses u64 variables, while all other irqchip drivers don't call virt_to_phys or similar interfaces. It's expected that other device drivers have similar issues, but fixing this one is sufficient for booting a virtio based guest.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23116",
                        "url": "https://ubuntu.com/security/CVE-2026-23116",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu  For i.MX8MQ platform, the ADB in the VPUMIX domain has no separate reset and clock enable bits, but is ungated and reset together with the VPUs. So we can't reset G1 or G2 separately, it may led to the system hang. Remove rst_mask and clk_mask of imx8mq_vpu_blk_ctl_domain_data. Let imx8mq_vpu_power_notifier() do really vpu reset.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23098",
                        "url": "https://ubuntu.com/security/CVE-2026-23098",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: fix double-free in nr_route_frame()  In nr_route_frame(), old_skb is immediately freed without checking if nr_neigh->ax25 pointer is NULL. Therefore, if nr_neigh->ax25 is NULL, the caller function will free old_skb again, causing a double-free bug.  Therefore, to prevent this, we need to modify it to check whether nr_neigh->ax25 is NULL before freeing old_skb.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23063",
                        "url": "https://ubuntu.com/security/CVE-2026-23063",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: ensure safe queue release with state management  Directly calling `put_queue` carries risks since it cannot guarantee that resources of `uacce_queue` have been fully released beforehand. So adding a `stop_queue` operation for the UACCE_CMD_PUT_Q command and leaving the `put_queue` operation to the final resource release ensures safety.  Queue states are defined as follows: - UACCE_Q_ZOMBIE: Initial state - UACCE_Q_INIT: After opening `uacce` - UACCE_Q_STARTED: After `start` is issued via `ioctl`  When executing `poweroff -f` in virt while accelerator are still working, `uacce_fops_release` and `uacce_remove` may execute concurrently. This can cause `uacce_put_queue` within `uacce_fops_release` to access a NULL `ops` pointer. Therefore, add state checks to prevent accessing freed pointers.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23056",
                        "url": "https://ubuntu.com/security/CVE-2026-23056",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: implement mremap in uacce_vm_ops to return -EPERM  The current uacce_vm_ops does not support the mremap operation of vm_operations_struct. Implement .mremap to return -EPERM to remind users.  The reason we need to explicitly disable mremap is that when the driver does not implement .mremap, it uses the default mremap method. This could lead to a risk scenario:  An application might first mmap address p1, then mremap to p2, followed by munmap(p1), and finally munmap(p2). Since the default mremap copies the original vma's vm_private_data (i.e., q) to the new vma, both munmap operations would trigger vma_close, causing q->qfr to be freed twice(qfr will be set to null here, so repeated release is ok).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23094",
                        "url": "https://ubuntu.com/security/CVE-2026-23094",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix isolate sysfs check condition  uacce supports the device isolation feature. If the driver implements the isolate_err_threshold_read and isolate_err_threshold_write callback functions, uacce will create sysfs files now. Users can read and configure the isolation policy through sysfs. Currently, sysfs files are created as long as either isolate_err_threshold_read or isolate_err_threshold_write callback functions are present.  However, accessing a non-existent callback function may cause the system to crash. Therefore, intercept the creation of sysfs if neither read nor write exists; create sysfs if either is supported, but intercept unsupported operations at the call site.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23096",
                        "url": "https://ubuntu.com/security/CVE-2026-23096",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix cdev handling in the cleanup path  When cdev_device_add fails, it internally releases the cdev memory, and if cdev_device_del is then executed, it will cause a hang error. To fix it, we check the return value of cdev_device_add() and clear uacce->cdev to avoid calling cdev_device_del in the uacce_remove.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23091",
                        "url": "https://ubuntu.com/security/CVE-2026-23091",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  intel_th: fix device leak on output open()  Make sure to drop the reference taken when looking up the th device during output device open() on errors and on close().  Note that a recent commit fixed the leak in a couple of open() error paths but not all of them, and the reference is still leaking on successful open().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23088",
                        "url": "https://ubuntu.com/security/CVE-2026-23088",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Fix crash on synthetic stacktrace field usage  When creating a synthetic event based on an existing synthetic event that had a stacktrace field and the new synthetic event used that field a kernel crash occurred:   ~# cd /sys/kernel/tracing  ~# echo 's:stack unsigned long stack[];' > dynamic_events  ~# echo 'hist:keys=prev_pid:s0=common_stacktrace if prev_state & 3' >> events/sched/sched_switch/trigger  ~# echo 'hist:keys=next_pid:s1=$s0:onmatch(sched.sched_switch).trace(stack,$s1)' >> events/sched/sched_switch/trigger  The above creates a synthetic event that takes a stacktrace when a task schedules out in a non-running state and passes that stacktrace to the sched_switch event when that task schedules back in. It triggers the \"stack\" synthetic event that has a stacktrace as its field (called \"stack\").   ~# echo 's:syscall_stack s64 id; unsigned long stack[];' >> dynamic_events  ~# echo 'hist:keys=common_pid:s2=stack' >> events/synthetic/stack/trigger  ~# echo 'hist:keys=common_pid:s3=$s2,i0=id:onmatch(synthetic.stack).trace(syscall_stack,$i0,$s3)' >> events/raw_syscalls/sys_exit/trigger  The above makes another synthetic event called \"syscall_stack\" that attaches the first synthetic event (stack) to the sys_exit trace event and records the stacktrace from the stack event with the id of the system call that is exiting.  When enabling this event (or using it in a historgram):   ~# echo 1 > events/synthetic/syscall_stack/enable  Produces a kernel crash!   BUG: unable to handle page fault for address: 0000000000400010  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP PTI  CPU: 6 UID: 0 PID: 1257 Comm: bash Not tainted 6.16.3+deb14-amd64 #1 PREEMPT(lazy)  Debian 6.16.3-1  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:trace_event_raw_event_synth+0x90/0x380  Code: c5 00 00 00 00 85 d2 0f 84 e1 00 00 00 31 db eb 34 0f 1f 00 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 <49> 8b 04 24 48 83 c3 01 8d 0c c5 08 00 00 00 01 cd 41 3b 5d 40 0f  RSP: 0018:ffffd2670388f958 EFLAGS: 00010202  RAX: ffff8ba1065cc100 RBX: 0000000000000000 RCX: 0000000000000000  RDX: 0000000000000001 RSI: fffff266ffda7b90 RDI: ffffd2670388f9b0  RBP: 0000000000000010 R08: ffff8ba104e76000 R09: ffffd2670388fa50  R10: ffff8ba102dd42e0 R11: ffffffff9a908970 R12: 0000000000400010  R13: ffff8ba10a246400 R14: ffff8ba10a710220 R15: fffff266ffda7b90  FS:  00007fa3bc63f740(0000) GS:ffff8ba2e0f48000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000400010 CR3: 0000000107f9e003 CR4: 0000000000172ef0  Call Trace:   <TASK>   ? __tracing_map_insert+0x208/0x3a0   action_trace+0x67/0x70   event_hist_trigger+0x633/0x6d0   event_triggers_call+0x82/0x130   trace_event_buffer_commit+0x19d/0x250   trace_event_raw_event_sys_exit+0x62/0xb0   syscall_exit_work+0x9d/0x140   do_syscall_64+0x20a/0x2f0   ? trace_event_raw_event_sched_switch+0x12b/0x170   ? save_fpregs_to_fpstate+0x3e/0x90   ? _raw_spin_unlock+0xe/0x30   ? finish_task_switch.isra.0+0x97/0x2c0   ? __rseq_handle_notify_resume+0xad/0x4c0   ? __schedule+0x4b8/0xd00   ? restore_fpregs_from_fpstate+0x3c/0x90   ? switch_fpu_return+0x5b/0xe0   ? do_syscall_64+0x1ef/0x2f0   ? do_fault+0x2e9/0x540   ? __handle_mm_fault+0x7d1/0xf70   ? count_memcg_events+0x167/0x1d0   ? handle_mm_fault+0x1d7/0x2e0   ? do_user_addr_fault+0x2c3/0x7f0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  The reason is that the stacktrace field is not labeled as such, and is treated as a normal field and not as a dynamic event that it is.  In trace_event_raw_event_synth() the event is field is still treated as a dynamic array, but the retrieval of the data is considered a normal field, and the reference is just the meta data:  // Meta data is retrieved instead of a dynamic array ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23090",
                        "url": "https://ubuntu.com/security/CVE-2026-23090",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  slimbus: core: fix device reference leak on report present  Slimbus devices can be allocated dynamically upon reception of report-present messages.  Make sure to drop the reference taken when looking up already registered devices.  Note that this requires taking an extra reference in case the device has not yet been registered and has to be allocated.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23128",
                        "url": "https://ubuntu.com/security/CVE-2026-23128",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64: Set __nocfi on swsusp_arch_resume()  A DABT is reported[1] on an android based system when resume from hiberate. This happens because swsusp_arch_suspend_exit() is marked with SYM_CODE_*() and does not have a CFI hash, but swsusp_arch_resume() will attempt to verify the CFI hash when calling a copy of swsusp_arch_suspend_exit().  Given that there's an existing requirement that the entrypoint to swsusp_arch_suspend_exit() is the first byte of the .hibernate_exit.text section, we cannot fix this by marking swsusp_arch_suspend_exit() with SYM_FUNC_*(). The simplest fix for now is to disable the CFI check in swsusp_arch_resume().  Mark swsusp_arch_resume() as __nocfi to disable the CFI check.  [1] [   22.991934][    T1] Unable to handle kernel paging request at virtual address 0000000109170ffc [   22.991934][    T1] Mem abort info: [   22.991934][    T1]   ESR = 0x0000000096000007 [   22.991934][    T1]   EC = 0x25: DABT (current EL), IL = 32 bits [   22.991934][    T1]   SET = 0, FnV = 0 [   22.991934][    T1]   EA = 0, S1PTW = 0 [   22.991934][    T1]   FSC = 0x07: level 3 translation fault [   22.991934][    T1] Data abort info: [   22.991934][    T1]   ISV = 0, ISS = 0x00000007, ISS2 = 0x00000000 [   22.991934][    T1]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [   22.991934][    T1]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [   22.991934][    T1] [0000000109170ffc] user address but active_mm is swapper [   22.991934][    T1] Internal error: Oops: 0000000096000007 [#1] PREEMPT SMP [   22.991934][    T1] Dumping ftrace buffer: [   22.991934][    T1]    (ftrace buffer empty) [   22.991934][    T1] Modules linked in: [   22.991934][    T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.6.98-android15-8-g0b1d2aee7fc3-dirty-4k #1 688c7060a825a3ac418fe53881730b355915a419 [   22.991934][    T1] Hardware name: Unisoc UMS9360-base Board (DT) [   22.991934][    T1] pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [   22.991934][    T1] pc : swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1] lr : swsusp_arch_resume+0x294/0x344 [   22.991934][    T1] sp : ffffffc08006b960 [   22.991934][    T1] x29: ffffffc08006b9c0 x28: 0000000000000000 x27: 0000000000000000 [   22.991934][    T1] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000820 [   22.991934][    T1] x23: ffffffd0817e3000 x22: ffffffd0817e3000 x21: 0000000000000000 [   22.991934][    T1] x20: ffffff8089171000 x19: ffffffd08252c8c8 x18: ffffffc080061058 [   22.991934][    T1] x17: 00000000529c6ef0 x16: 00000000529c6ef0 x15: 0000000000000004 [   22.991934][    T1] x14: ffffff8178c88000 x13: 0000000000000006 x12: 0000000000000000 [   22.991934][    T1] x11: 0000000000000015 x10: 0000000000000001 x9 : ffffffd082533000 [   22.991934][    T1] x8 : 0000000109171000 x7 : 205b5d3433393139 x6 : 392e32322020205b [   22.991934][    T1] x5 : 000000010916f000 x4 : 000000008164b000 x3 : ffffff808a4e0530 [   22.991934][    T1] x2 : ffffffd08058e784 x1 : 0000000082326000 x0 : 000000010a283000 [   22.991934][    T1] Call trace: [   22.991934][    T1]  swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1]  hibernation_restore+0x158/0x18c [   22.991934][    T1]  load_image_and_restore+0xb0/0xec [   22.991934][    T1]  software_resume+0xf4/0x19c [   22.991934][    T1]  software_resume_initcall+0x34/0x78 [   22.991934][    T1]  do_one_initcall+0xe8/0x370 [   22.991934][    T1]  do_initcall_level+0xc8/0x19c [   22.991934][    T1]  do_initcalls+0x70/0xc0 [   22.991934][    T1]  do_basic_setup+0x1c/0x28 [   22.991934][    T1]  kernel_init_freeable+0xe0/0x148 [   22.991934][    T1]  kernel_init+0x20/0x1a8 [   22.991934][    T1]  ret_from_fork+0x10/0x20 [   22.991934][    T1] Code: a9400a61 f94013e0 f9438923 f9400a64 (b85fc110)  [catalin.marinas@arm.com: commit log updated by Mark Rutland]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23107",
                        "url": "https://ubuntu.com/security/CVE-2026-23107",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Allocate SSVE storage when restoring ZA  The code to restore a ZA context doesn't attempt to allocate the task's sve_state before setting TIF_SME. Consequently, restoring a ZA context can place a task into an invalid state where TIF_SME is set but the task's sve_state is NULL.  In legitimate but uncommon cases where the ZA signal context was NOT created by the kernel in the context of the same task (e.g. if the task is saved/restored with something like CRIU), we have no guarantee that sve_state had been allocated previously. In these cases, userspace can enter streaming mode without trapping while sve_state is NULL, causing a later NULL pointer dereference when the kernel attempts to store the register state:  | # ./sigreturn-za | Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 | Mem abort info: |   ESR = 0x0000000096000046 |   EC = 0x25: DABT (current EL), IL = 32 bits |   SET = 0, FnV = 0 |   EA = 0, S1PTW = 0 |   FSC = 0x06: level 2 translation fault | Data abort info: |   ISV = 0, ISS = 0x00000046, ISS2 = 0x00000000 |   CM = 0, WnR = 1, TnD = 0, TagAccess = 0 |   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 | user pgtable: 4k pages, 52-bit VAs, pgdp=0000000101f47c00 | [0000000000000000] pgd=08000001021d8403, p4d=0800000102274403, pud=0800000102275403, pmd=0000000000000000 | Internal error: Oops: 0000000096000046 [#1]  SMP | Modules linked in: | CPU: 0 UID: 0 PID: 153 Comm: sigreturn-za Not tainted 6.19.0-rc1 #1 PREEMPT | Hardware name: linux,dummy-virt (DT) | pstate: 214000c9 (nzCv daIF +PAN -UAO -TCO +DIT -SSBS BTYPE=--) | pc : sve_save_state+0x4/0xf0 | lr : fpsimd_save_user_state+0xb0/0x1c0 | sp : ffff80008070bcc0 | x29: ffff80008070bcc0 x28: fff00000c1ca4c40 x27: 63cfa172fb5cf658 | x26: fff00000c1ca5228 x25: 0000000000000000 x24: 0000000000000000 | x23: 0000000000000000 x22: fff00000c1ca4c40 x21: fff00000c1ca4c40 | x20: 0000000000000020 x19: fff00000ff6900f0 x18: 0000000000000000 | x17: fff05e8e0311f000 x16: 0000000000000000 x15: 028fca8f3bdaf21c | x14: 0000000000000212 x13: fff00000c0209f10 x12: 0000000000000020 | x11: 0000000000200b20 x10: 0000000000000000 x9 : fff00000ff69dcc0 | x8 : 00000000000003f2 x7 : 0000000000000001 x6 : fff00000c1ca5b48 | x5 : fff05e8e0311f000 x4 : 0000000008000000 x3 : 0000000000000000 | x2 : 0000000000000001 x1 : fff00000c1ca5970 x0 : 0000000000000440 | Call trace: |  sve_save_state+0x4/0xf0 (P) |  fpsimd_thread_switch+0x48/0x198 |  __switch_to+0x20/0x1c0 |  __schedule+0x36c/0xce0 |  schedule+0x34/0x11c |  exit_to_user_mode_loop+0x124/0x188 |  el0_interrupt+0xc8/0xd8 |  __el0_irq_handler_common+0x18/0x24 |  el0t_64_irq_handler+0x10/0x1c |  el0t_64_irq+0x198/0x19c | Code: 54000040 d51b4408 d65f03c0 d503245f (e5bb5800) | ---[ end trace 0000000000000000 ]---  Fix this by having restore_za_context() ensure that the task's sve_state is allocated, matching what we do when taking an SME trap. Any live SVE/SSVE state (which is restored earlier from a separate signal context) must be preserved, and hence this is not zeroed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23073",
                        "url": "https://ubuntu.com/security/CVE-2026-23073",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rsi: Fix memory corruption due to not set vif driver data size  The struct ieee80211_vif contains trailing space for vif driver data, when struct ieee80211_vif is allocated, the total memory size that is allocated is sizeof(struct ieee80211_vif) + size of vif driver data. The size of vif driver data is set by each WiFi driver as needed.  The RSI911x driver does not set vif driver data size, no trailing space for vif driver data is therefore allocated past struct ieee80211_vif . The RSI911x driver does however use the vif driver data to store its vif driver data structure \"struct vif_priv\". An access to vif->drv_priv leads to access out of struct ieee80211_vif bounds and corruption of some memory.  In case of the failure observed locally, rsi_mac80211_add_interface() would write struct vif_priv *vif_info = (struct vif_priv *)vif->drv_priv; vif_info->vap_id = vap_idx. This write corrupts struct fq_tin member struct list_head new_flows . The flow = list_first_entry(head, struct fq_flow, flowchain); in fq_tin_reset() then reports non-NULL bogus address, which when accessed causes a crash.  The trigger is very simple, boot the machine with init=/bin/sh , mount devtmpfs, sysfs, procfs, and then do \"ip link set wlan0 up\", \"sleep 1\", \"ip link set wlan0 down\" and the crash occurs.  Fix this by setting the correct size of vif driver data, which is the size of \"struct vif_priv\", so that memory is allocated and the driver can store its driver data in it, instead of corrupting memory around it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23135",
                        "url": "https://ubuntu.com/security/CVE-2026-23135",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath12k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23133",
                        "url": "https://ubuntu.com/security/CVE-2026-23133",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath10k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71200",
                        "url": "https://ubuntu.com/security/CVE-2025-71200",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: sdhci-of-dwcmshc: Prevent illegal clock reduction in HS200/HS400 mode  When operating in HS200 or HS400 timing modes, reducing the clock frequency below 52MHz will lead to link broken as the Rockchip DWC MSHC controller requires maintaining a minimum clock of 52MHz in these modes.  Add a check to prevent illegal clock reduction through debugfs:  root@debian:/# echo 50000000 > /sys/kernel/debug/mmc0/clock root@debian:/# [   30.090146] mmc0: running CQE recovery mmc0: cqhci: Failed to halt mmc0: cqhci: spurious TCN for tag 0 WARNING: drivers/mmc/host/cqhci-core.c:797 at cqhci_irq+0x254/0x818, CPU#1: kworker/1:0H/24 Modules linked in: CPU: 1 UID: 0 PID: 24 Comm: kworker/1:0H Not tainted 6.19.0-rc1-00001-g09db0998649d-dirty #204 PREEMPT Hardware name: Rockchip RK3588 EVB1 V10 Board (DT) Workqueue: kblockd blk_mq_run_work_fn pstate: 604000c9 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : cqhci_irq+0x254/0x818 lr : cqhci_irq+0x254/0x818 ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23089",
                        "url": "https://ubuntu.com/security/CVE-2026-23089",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix use-after-free in snd_usb_mixer_free()  When snd_usb_create_mixer() fails, snd_usb_mixer_free() frees mixer->id_elems but the controls already added to the card still reference the freed memory. Later when snd_card_register() runs, the OSS mixer layer calls their callbacks and hits a use-after-free read.  Call trace:   get_ctl_value+0x63f/0x820 sound/usb/mixer.c:411   get_min_max_with_quirks.isra.0+0x240/0x1f40 sound/usb/mixer.c:1241   mixer_ctl_feature_info+0x26b/0x490 sound/usb/mixer.c:1381   snd_mixer_oss_build_test+0x174/0x3a0 sound/core/oss/mixer_oss.c:887   ...   snd_card_register+0x4ed/0x6d0 sound/core/init.c:923   usb_audio_probe+0x5ef/0x2a90 sound/usb/card.c:1025  Fix by calling snd_ctl_remove() for all mixer controls before freeing id_elems. We save the next pointer first because snd_ctl_remove() frees the current element.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23076",
                        "url": "https://ubuntu.com/security/CVE-2026-23076",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ctxfi: Fix potential OOB access in audio mixer handling  In the audio mixer handling code of ctxfi driver, the conf field is used as a kind of loop index, and it's referred in the index callbacks (amixer_index() and sum_index()).  As spotted recently by fuzzers, the current code causes OOB access at those functions. | UBSAN: array-index-out-of-bounds in /build/reproducible-path/linux-6.17.8/sound/pci/ctxfi/ctamixer.c:347:48 | index 8 is out of range for type 'unsigned char [8]'  After the analysis, the cause was found to be the lack of the proper (re-)initialization of conj field.  This patch addresses those OOB accesses by adding the proper initializations of the loop indices.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71199",
                        "url": "https://ubuntu.com/security/CVE-2025-71199",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc driver  at91_adc_interrupt can call at91_adc_touch_data_handler function to start the work by schedule_work(&st->touch_st.workq).  If we remove the module which will call at91_adc_remove to make cleanup, it will free indio_dev through iio_device_unregister but quite a bit later. While the work mentioned above will be used. The sequence of operations that may lead to a UAF bug is as follows:  CPU0                                      CPU1                                       | at91_adc_workq_handler at91_adc_remove                      | iio_device_unregister(indio_dev)     | //free indio_dev a bit later         |                                      | iio_push_to_buffers(indio_dev)                                      | //use indio_dev  Fix it by ensuring that the work is canceled before proceeding with the cleanup in at91_adc_remove.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23101",
                        "url": "https://ubuntu.com/security/CVE-2026-23101",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  leds: led-class: Only Add LED to leds_list when it is fully ready  Before this change the LED was added to leds_list before led_init_core() gets called adding it the list before led_classdev.set_brightness_work gets initialized.  This leaves a window where led_trigger_register() of a LED's default trigger will call led_trigger_set() which calls led_set_brightness() which in turn will end up queueing the *uninitialized* led_classdev.set_brightness_work.  This race gets hit by the lenovo-thinkpad-t14s EC driver which registers 2 LEDs with a default trigger provided by snd_ctl_led.ko in quick succession. The first led_classdev_register() causes an async modprobe of snd_ctl_led to run and that async modprobe manages to exactly hit the window where the second LED is on the leds_list without led_init_core() being called for it, resulting in:   ------------[ cut here ]------------  WARNING: CPU: 11 PID: 5608 at kernel/workqueue.c:4234 __flush_work+0x344/0x390  Hardware name: LENOVO 21N2S01F0B/21N2S01F0B, BIOS N42ET93W (2.23 ) 09/01/2025  ...  Call trace:   __flush_work+0x344/0x390 (P)   flush_work+0x2c/0x50   led_trigger_set+0x1c8/0x340   led_trigger_register+0x17c/0x1c0   led_trigger_register_simple+0x84/0xe8   snd_ctl_led_init+0x40/0xf88 [snd_ctl_led]   do_one_initcall+0x5c/0x318   do_init_module+0x9c/0x2b8   load_module+0x7e0/0x998  Close the race window by moving the adding of the LED to leds_list to after the led_init_core() call.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23064",
                        "url": "https://ubuntu.com/security/CVE-2026-23064",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: act_ife: avoid possible NULL deref  tcf_ife_encode() must make sure ife_encode() does not return NULL.  syzbot reported:  Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]  RIP: 0010:ife_tlv_meta_encode+0x41/0xa0 net/ife/ife.c:166 CPU: 3 UID: 0 PID: 8990 Comm: syz.0.696 Not tainted syzkaller #0 PREEMPT(full) Call Trace:  <TASK>   ife_encode_meta_u32+0x153/0x180 net/sched/act_ife.c:101   tcf_ife_encode net/sched/act_ife.c:841 [inline]   tcf_ife_act+0x1022/0x1de0 net/sched/act_ife.c:877   tc_act include/net/tc_wrapper.h:130 [inline]   tcf_action_exec+0x1c0/0xa20 net/sched/act_api.c:1152   tcf_exts_exec include/net/pkt_cls.h:349 [inline]   mall_classify+0x1a0/0x2a0 net/sched/cls_matchall.c:42   tc_classify include/net/tc_wrapper.h:197 [inline]   __tcf_classify net/sched/cls_api.c:1764 [inline]   tcf_classify+0x7f2/0x1380 net/sched/cls_api.c:1860   multiq_classify net/sched/sch_multiq.c:39 [inline]   multiq_enqueue+0xe0/0x510 net/sched/sch_multiq.c:66   dev_qdisc_enqueue+0x45/0x250 net/core/dev.c:4147   __dev_xmit_skb net/core/dev.c:4262 [inline]   __dev_queue_xmit+0x2998/0x46c0 net/core/dev.c:4798",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23086",
                        "url": "https://ubuntu.com/security/CVE-2026-23086",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: cap TX credit to local buffer size  The virtio transports derives its TX credit directly from peer_buf_alloc, which is set from the remote endpoint's SO_VM_SOCKETS_BUFFER_SIZE value.  On the host side this means that the amount of data we are willing to queue for a connection is scaled by a guest-chosen buffer size, rather than the host's own vsock configuration. A malicious guest can advertise a large buffer and read slowly, causing the host to allocate a correspondingly large amount of sk_buff memory. The same thing would happen in the guest with a malicious host, since virtio transports share the same code base.  Introduce a small helper, virtio_transport_tx_buf_size(), that returns min(peer_buf_alloc, buf_alloc), and use it wherever we consume peer_buf_alloc.  This ensures the effective TX window is bounded by both the peer's advertised buffer and our own buf_alloc (already clamped to buffer_max_size via SO_VM_SOCKETS_BUFFER_MAX_SIZE), so a remote peer cannot force the other to queue more data than allowed by its own vsock settings.  On an unpatched Ubuntu 22.04 host (~64 GiB RAM), running a PoC with 32 guest vsock connections advertising 2 GiB each and reading slowly drove Slab/SUnreclaim from ~0.5 GiB to ~57 GiB; the system only recovered after killing the QEMU process. That said, if QEMU memory is limited with cgroups, the maximum memory used will be limited.  With this patch applied:    Before:     MemFree:        ~61.6 GiB     Slab:           ~142 MiB     SUnreclaim:     ~117 MiB    After 32 high-credit connections:     MemFree:        ~61.5 GiB     Slab:           ~178 MiB     SUnreclaim:     ~152 MiB  Only ~35 MiB increase in Slab/SUnreclaim, no host OOM, and the guest remains responsive.  Compatibility with non-virtio transports:    - VMCI uses the AF_VSOCK buffer knobs to size its queue pairs per     socket based on the local vsk->buffer_* values; the remote side     cannot enlarge those queues beyond what the local endpoint     configured.    - Hyper-V's vsock transport uses fixed-size VMBus ring buffers and     an MTU bound; there is no peer-controlled credit field comparable     to peer_buf_alloc, and the remote endpoint cannot drive in-flight     kernel memory above those ring sizes.    - The loopback path reuses virtio_transport_common.c, so it     naturally follows the same semantics as the virtio transport.  This change is limited to virtio_transport_common.c and thus affects virtio-vsock, vhost-vsock, and loopback, bringing them in line with the \"remote window intersected with local policy\" behaviour that VMCI and Hyper-V already effectively have.  [Stefano: small adjustments after changing the previous patch] [Stefano: tweak the commit message]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23069",
                        "url": "https://ubuntu.com/security/CVE-2026-23069",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: fix potential underflow in virtio_transport_get_credit()  The credit calculation in virtio_transport_get_credit() uses unsigned arithmetic:    ret = vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt);  If the peer shrinks its advertised buffer (peer_buf_alloc) while bytes are in flight, the subtraction can underflow and produce a large positive value, potentially allowing more data to be queued than the peer can handle.  Reuse virtio_transport_has_space() which already handles this case and add a comment to make it clear why we are doing that.  [Stefano: use virtio_transport_has_space() instead of duplicating the code] [Stefano: tweak the commit message]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23119",
                        "url": "https://ubuntu.com/security/CVE-2026-23119",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: provide a net pointer to __skb_flow_dissect()  After 3cbf4ffba5ee (\"net: plumb network namespace into __skb_flow_dissect\") we have to provide a net pointer to __skb_flow_dissect(), either via skb->dev, skb->sk, or a user provided pointer.  In the following case, syzbot was able to cook a bare skb.  WARNING: net/core/flow_dissector.c:1131 at __skb_flow_dissect+0xb57/0x68b0 net/core/flow_dissector.c:1131, CPU#1: syz.2.1418/11053 Call Trace:  <TASK>   bond_flow_dissect drivers/net/bonding/bond_main.c:4093 [inline]   __bond_xmit_hash+0x2d7/0xba0 drivers/net/bonding/bond_main.c:4157   bond_xmit_hash_xdp drivers/net/bonding/bond_main.c:4208 [inline]   bond_xdp_xmit_3ad_xor_slave_get drivers/net/bonding/bond_main.c:5139 [inline]   bond_xdp_get_xmit_slave+0x1fd/0x710 drivers/net/bonding/bond_main.c:5515   xdp_master_redirect+0x13f/0x2c0 net/core/filter.c:4388   bpf_prog_run_xdp include/net/xdp.h:700 [inline]   bpf_test_run+0x6b2/0x7d0 net/bpf/test_run.c:421   bpf_prog_test_run_xdp+0x795/0x10e0 net/bpf/test_run.c:1390   bpf_prog_test_run+0x2c7/0x340 kernel/bpf/syscall.c:4703   __sys_bpf+0x562/0x860 kernel/bpf/syscall.c:6182   __do_sys_bpf kernel/bpf/syscall.c:6274 [inline]   __se_sys_bpf kernel/bpf/syscall.c:6272 [inline]   __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:6272   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xec/0xf80 arch/x86/entry/syscall_64.c:94",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23084",
                        "url": "https://ubuntu.com/security/CVE-2026-23084",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list  When the parameter pmac_id_valid argument of be_cmd_get_mac_from_list() is set to false, the driver may request the PMAC_ID from the firmware of the network card, and this function will store that PMAC_ID at the provided address pmac_id. This is the contract of this function.  However, there is a location within the driver where both pmac_id_valid == false and pmac_id == NULL are being passed. This could result in dereferencing a NULL pointer.  To resolve this issue, it is necessary to pass the address of a stub variable to the function.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23124",
                        "url": "https://ubuntu.com/security/CVE-2026-23124",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: annotate data-race in ndisc_router_discovery()  syzbot found that ndisc_router_discovery() could read and write in6_dev->ra_mtu without holding a lock [1]  This looks fine, IFLA_INET6_RA_MTU is best effort.  Add READ_ONCE()/WRITE_ONCE() to document the race.  Note that we might also reject illegal MTU values (mtu < IPV6_MIN_MTU || mtu > skb->dev->mtu) in a future patch.  [1] BUG: KCSAN: data-race in ndisc_router_discovery / ndisc_router_discovery  read to 0xffff888119809c20 of 4 bytes by task 25817 on cpu 1:   ndisc_router_discovery+0x151d/0x1c90 net/ipv6/ndisc.c:1558   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  write to 0xffff888119809c20 of 4 bytes by task 25816 on cpu 0:   ndisc_router_discovery+0x155a/0x1c90 net/ipv6/ndisc.c:1559   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  value changed: 0x00000000 -> 0xe5400659",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23121",
                        "url": "https://ubuntu.com/security/CVE-2026-23121",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mISDN: annotate data-race around dev->work  dev->work can re read locklessly in mISDN_read() and mISDN_poll(). Add READ_ONCE()/WRITE_ONCE() annotations.  BUG: KCSAN: data-race in mISDN_ioctl / mISDN_read  write to 0xffff88812d848280 of 4 bytes by task 10864 on cpu 1:   misdn_add_timer drivers/isdn/mISDN/timerdev.c:175 [inline]   mISDN_ioctl+0x2fb/0x550 drivers/isdn/mISDN/timerdev.c:233   vfs_ioctl fs/ioctl.c:51 [inline]   __do_sys_ioctl fs/ioctl.c:597 [inline]   __se_sys_ioctl+0xce/0x140 fs/ioctl.c:583   __x64_sys_ioctl+0x43/0x50 fs/ioctl.c:583   x64_sys_call+0x14b0/0x3000 arch/x86/include/generated/asm/syscalls_64.h:17   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88812d848280 of 4 bytes by task 10857 on cpu 0:   mISDN_read+0x1f2/0x470 drivers/isdn/mISDN/timerdev.c:112   do_loop_readv_writev fs/read_write.c:847 [inline]   vfs_readv+0x3fb/0x690 fs/read_write.c:1020   do_readv+0xe7/0x210 fs/read_write.c:1080   __do_sys_readv fs/read_write.c:1165 [inline]   __se_sys_readv fs/read_write.c:1162 [inline]   __x64_sys_readv+0x45/0x50 fs/read_write.c:1162   x64_sys_call+0x2831/0x3000 arch/x86/include/generated/asm/syscalls_64.h:20   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  value changed: 0x00000000 -> 0x00000001",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23126",
                        "url": "https://ubuntu.com/security/CVE-2026-23126",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netdevsim: fix a race issue related to the operation on bpf_bound_progs list  The netdevsim driver lacks a protection mechanism for operations on the bpf_bound_progs list. When the nsim_bpf_create_prog() performs list_add_tail, it is possible that nsim_bpf_destroy_prog() is simultaneously performs list_del. Concurrent operations on the list may lead to list corruption and trigger a kernel crash as follows:  [  417.290971] kernel BUG at lib/list_debug.c:62! [  417.290983] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI [  417.290992] CPU: 10 PID: 168 Comm: kworker/10:1 Kdump: loaded Not tainted 6.19.0-rc5 #1 [  417.291003] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [  417.291007] Workqueue: events bpf_prog_free_deferred [  417.291021] RIP: 0010:__list_del_entry_valid_or_report+0xa7/0xc0 [  417.291034] Code: a8 ff 0f 0b 48 89 fe 48 89 ca 48 c7 c7 48 a1 eb ae e8 ed fb a8 ff 0f 0b 48 89 fe 48 89 c2 48 c7 c7 80 a1 eb ae e8 d9 fb a8 ff <0f> 0b 48 89 d1 48 c7 c7 d0 a1 eb ae 48 89 f2 48 89 c6 e8 c2 fb a8 [  417.291040] RSP: 0018:ffffb16a40807df8 EFLAGS: 00010246 [  417.291046] RAX: 000000000000006d RBX: ffff8e589866f500 RCX: 0000000000000000 [  417.291051] RDX: 0000000000000000 RSI: ffff8e59f7b23180 RDI: ffff8e59f7b23180 [  417.291055] RBP: ffffb16a412c9000 R08: 0000000000000000 R09: 0000000000000003 [  417.291059] R10: ffffb16a40807c80 R11: ffffffffaf9edce8 R12: ffff8e594427ac20 [  417.291063] R13: ffff8e59f7b44780 R14: ffff8e58800b7a05 R15: 0000000000000000 [  417.291074] FS:  0000000000000000(0000) GS:ffff8e59f7b00000(0000) knlGS:0000000000000000 [  417.291079] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [  417.291083] CR2: 00007fc4083efe08 CR3: 00000001c3626006 CR4: 0000000000770ee0 [  417.291088] PKRU: 55555554 [  417.291091] Call Trace: [  417.291096]  <TASK> [  417.291103]  nsim_bpf_destroy_prog+0x31/0x80 [netdevsim] [  417.291154]  __bpf_prog_offload_destroy+0x2a/0x80 [  417.291163]  bpf_prog_dev_bound_destroy+0x6f/0xb0 [  417.291171]  bpf_prog_free_deferred+0x18e/0x1a0 [  417.291178]  process_one_work+0x18a/0x3a0 [  417.291188]  worker_thread+0x27b/0x3a0 [  417.291197]  ? __pfx_worker_thread+0x10/0x10 [  417.291207]  kthread+0xe5/0x120 [  417.291214]  ? __pfx_kthread+0x10/0x10 [  417.291221]  ret_from_fork+0x31/0x50 [  417.291230]  ? __pfx_kthread+0x10/0x10 [  417.291236]  ret_from_fork_asm+0x1a/0x30 [  417.291246]  </TASK>  Add a mutex lock, to prevent simultaneous addition and deletion operations on the list.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23059",
                        "url": "https://ubuntu.com/security/CVE-2026-23059",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Sanitize payload size to prevent member overflow  In qla27xx_copy_fpin_pkt() and qla27xx_copy_multiple_pkt(), the frame_size reported by firmware is used to calculate the copy length into item->iocb. However, the iocb member is defined as a fixed-size 64-byte array within struct purex_item.  If the reported frame_size exceeds 64 bytes, subsequent memcpy calls will overflow the iocb member boundary. While extra memory might be allocated, this cross-member write is unsafe and triggers warnings under CONFIG_FORTIFY_SOURCE.  Fix this by capping total_bytes to the size of the iocb member (64 bytes) before allocation and copying. This ensures all copies remain within the bounds of the destination structure member.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23110",
                        "url": "https://ubuntu.com/security/CVE-2026-23110",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: core: Wake up the error handler when final completions race against each other  The fragile ordering between marking commands completed or failed so that the error handler only wakes when the last running command completes or times out has race conditions. These race conditions can cause the SCSI layer to fail to wake the error handler, leaving I/O through the SCSI host stuck as the error state cannot advance.  First, there is an memory ordering issue within scsi_dec_host_busy(). The write which clears SCMD_STATE_INFLIGHT may be reordered with reads counting in scsi_host_busy(). While the local CPU will see its own write, reordering can allow other CPUs in scsi_dec_host_busy() or scsi_eh_inc_host_failed() to see a raised busy count, causing no CPU to see a host busy equal to the host_failed count.  This race condition can be prevented with a memory barrier on the error path to force the write to be visible before counting host busy commands.  Second, there is a general ordering issue with scsi_eh_inc_host_failed(). By counting busy commands before incrementing host_failed, it can race with a final command in scsi_dec_host_busy(), such that scsi_dec_host_busy() does not see host_failed incremented but scsi_eh_inc_host_failed() counts busy commands before SCMD_STATE_INFLIGHT is cleared by scsi_dec_host_busy(), resulting in neither waking the error handler task.  This needs the call to scsi_host_busy() to be moved after host_failed is incremented to close the race condition.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23071",
                        "url": "https://ubuntu.com/security/CVE-2026-23071",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: Fix race condition in hwspinlock irqsave routine  Previously, the address of the shared member '&map->spinlock_flags' was passed directly to 'hwspin_lock_timeout_irqsave'. This creates a race condition where multiple contexts contending for the lock could overwrite the shared flags variable, potentially corrupting the state for the current lock owner.  Fix this by using a local stack variable 'flags' to store the IRQ state temporarily.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23068",
                        "url": "https://ubuntu.com/security/CVE-2026-23068",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: spi-sprd-adi: Fix double free in probe error path  The driver currently uses spi_alloc_host() to allocate the controller but registers it using devm_spi_register_controller().  If devm_register_restart_handler() fails, the code jumps to the put_ctlr label and calls spi_controller_put(). However, since the controller was registered via a devm function, the device core will automatically call spi_controller_put() again when the probe fails. This results in a double-free of the spi_controller structure.  Fix this by switching to devm_spi_alloc_host() and removing the manual spi_controller_put() call.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23123",
                        "url": "https://ubuntu.com/security/CVE-2026-23123",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  interconnect: debugfs: initialize src_node and dst_node to empty strings  The debugfs_create_str() API assumes that the string pointer is either NULL or points to valid kmalloc() memory. Leaving the pointer uninitialized can cause problems.  Initialize src_node and dst_node to empty strings before creating the debugfs entries to guarantee that reads and writes are safe.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71198",
                        "url": "https://ubuntu.com/security/CVE-2025-71198",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event detection  The st_lsm6dsx_acc_channels array of struct iio_chan_spec has a non-NULL event_spec field, indicating support for IIO events. However, event detection is not supported for all sensors, and if userspace tries to configure accelerometer wakeup events on a sensor device that does not support them (e.g. LSM6DS0), st_lsm6dsx_write_event() dereferences a NULL pointer when trying to write to the wakeup register. Define an additional struct iio_chan_spec array whose members have a NULL event_spec field, and use this array instead of st_lsm6dsx_acc_channels for sensors without event detection capability.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23113",
                        "url": "https://ubuntu.com/security/CVE-2026-23113",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop  Currently this is checked before running the pending work. Normally this is quite fine, as work items either end up blocking (which will create a new worker for other items), or they complete fairly quickly. But syzbot reports an issue where io-wq takes seemingly forever to exit, and with a bit of debugging, this turns out to be because it queues a bunch of big (2GB - 4096b) reads with a /dev/msr* file. Since this file type doesn't support ->read_iter(), loop_rw_iter() ends up handling them. Each read returns 16MB of data read, which takes 20 (!!) seconds. With a bunch of these pending, processing the whole chain can take a long time. Easily longer than the syzbot uninterruptible sleep timeout of 140 seconds. This then triggers a complaint off the io-wq exit path:  INFO: task syz.4.135:6326 blocked for more than 143 seconds.       Not tainted syzkaller #0       Blocked by coredump. \"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\" disables this message. task:syz.4.135       state:D stack:26824 pid:6326  tgid:6324  ppid:5957  task_flags:0x400548 flags:0x00080000 Call Trace:  <TASK>  context_switch kernel/sched/core.c:5256 [inline]  __schedule+0x1139/0x6150 kernel/sched/core.c:6863  __schedule_loop kernel/sched/core.c:6945 [inline]  schedule+0xe7/0x3a0 kernel/sched/core.c:6960  schedule_timeout+0x257/0x290 kernel/time/sleep_timeout.c:75  do_wait_for_common kernel/sched/completion.c:100 [inline]  __wait_for_common+0x2fc/0x4e0 kernel/sched/completion.c:121  io_wq_exit_workers io_uring/io-wq.c:1328 [inline]  io_wq_put_and_exit+0x271/0x8a0 io_uring/io-wq.c:1356  io_uring_clean_tctx+0x10d/0x190 io_uring/tctx.c:203  io_uring_cancel_generic+0x69c/0x9a0 io_uring/cancel.c:651  io_uring_files_cancel include/linux/io_uring.h:19 [inline]  do_exit+0x2ce/0x2bd0 kernel/exit.c:911  do_group_exit+0xd3/0x2a0 kernel/exit.c:1112  get_signal+0x2671/0x26d0 kernel/signal.c:3034  arch_do_signal_or_restart+0x8f/0x7e0 arch/x86/kernel/signal.c:337  __exit_to_user_mode_loop kernel/entry/common.c:41 [inline]  exit_to_user_mode_loop+0x8c/0x540 kernel/entry/common.c:75  __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]  syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]  syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]  syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]  do_syscall_64+0x4ee/0xf80 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa02738f749 RSP: 002b:00007fa0281ae0e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca RAX: fffffffffffffe00 RBX: 00007fa0275e6098 RCX: 00007fa02738f749 RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007fa0275e6098 RBP: 00007fa0275e6090 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fa0275e6128 R14: 00007fff14e4fcb0 R15: 00007fff14e4fd98  There's really nothing wrong here, outside of processing these reads will take a LONG time. However, we can speed up the exit by checking the IO_WQ_BIT_EXIT inside the io_worker_handle_work() loop, as syzbot will exit the ring after queueing up all of these reads. Then once the first item is processed, io-wq will simply cancel the rest. That should avoid syzbot running into this complaint again.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23062",
                        "url": "https://ubuntu.com/security/CVE-2026-23062",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro  The GET_INSTANCE_ID macro that caused a kernel panic when accessing sysfs attributes:  1. Off-by-one error: The loop condition used '<=' instead of '<',    causing access beyond array bounds. Since array indices are 0-based    and go from 0 to instances_count-1, the loop should use '<'.  2. Missing NULL check: The code dereferenced attr_name_kobj->name    without checking if attr_name_kobj was NULL, causing a null pointer    dereference in min_length_show() and other attribute show functions.  The panic occurred when fwupd tried to read BIOS configuration attributes:    Oops: general protection fault [#1] SMP KASAN NOPTI   KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]   RIP: 0010:min_length_show+0xcf/0x1d0 [hp_bioscfg]  Add a NULL check for attr_name_kobj before dereferencing and corrects the loop boundary to match the pattern used elsewhere in the driver.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23131",
                        "url": "https://ubuntu.com/security/CVE-2026-23131",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kobject warnings for empty attribute names  The hp-bioscfg driver attempts to register kobjects with empty names when the HP BIOS returns attributes with empty name strings. This causes multiple kernel warnings:    kobject: (00000000135fb5e6): attempted to be registered with empty name!   WARNING: CPU: 14 PID: 3336 at lib/kobject.c:219 kobject_add_internal+0x2eb/0x310  Add validation in hp_init_bios_buffer_attribute() to check if the attribute name is empty after parsing it from the WMI buffer. If empty, log a debug message and skip registration of that attribute, allowing the module to continue processing other valid attributes.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23087",
                        "url": "https://ubuntu.com/security/CVE-2026-23087",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: xen: scsiback: Fix potential memory leak in scsiback_remove()  Memory allocated for struct vscsiblk_info in scsiback_probe() is not freed in scsiback_remove() leading to potential memory leaks on remove, as well as in the scsiback_probe() error paths. Fix that by freeing it in scsiback_remove().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71197",
                        "url": "https://ubuntu.com/security/CVE-2025-71197",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  w1: therm: Fix off-by-one buffer overflow in alarms_store  The sysfs buffer passed to alarms_store() is allocated with 'size + 1' bytes and a NUL terminator is appended. However, the 'size' argument does not account for this extra byte. The original code then allocated 'size' bytes and used strcpy() to copy 'buf', which always writes one byte past the allocated buffer since strcpy() copies until the NUL terminator at index 'size'.  Fix this by parsing the 'buf' parameter directly using simple_strtoll() without allocating any intermediate memory or string copying. This removes the overflow while simplifying the code.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23105",
                        "url": "https://ubuntu.com/security/CVE-2026-23105",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag  This is more of a preventive patch to make the code more consistent and to prevent possible exploits that employ child qlen manipulations on qfq. use cl_is_active instead of relying on the child qdisc's qlen to determine class activation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23103",
                        "url": "https://ubuntu.com/security/CVE-2026-23103",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvlan: Make the addrs_lock be per port  Make the addrs_lock be per port, not per ipvlan dev.  Initial code seems to be written in the assumption, that any address change must occur under RTNL. But it is not so for the case of IPv6. So  1) Introduce per-port addrs_lock.  2) It was needed to fix places where it was forgotten to take lock (ipvlan_open/ipvlan_close)  This appears to be a very minor problem though. Since it's highly unlikely that ipvlan_add_addr() will be called on 2 CPU simultaneously. But nevertheless, this could cause:  1) False-negative of ipvlan_addr_busy(): one interface iterated through all port->ipvlans + ipvlan->addrs under some ipvlan spinlock, and another added IP under its own lock. Though this is only possible for IPv6, since looks like only ipvlan_addr6_event() can be called without rtnl_lock.  2) Race since ipvlan_ht_addr_add(port) is called under different ipvlan->addrs_lock locks  This should not affect performance, since add/remove IP is a rare situation and spinlock is not taken on fast paths.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23120",
                        "url": "https://ubuntu.com/security/CVE-2026-23120",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  l2tp: avoid one data-race in l2tp_tunnel_del_work()  We should read sk->sk_socket only when dealing with kernel sockets.  syzbot reported the following data-race:  BUG: KCSAN: data-race in l2tp_tunnel_del_work / sk_common_release  write to 0xffff88811c182b20 of 8 bytes by task 5365 on cpu 0:   sk_set_socket include/net/sock.h:2092 [inline]   sock_orphan include/net/sock.h:2118 [inline]   sk_common_release+0xae/0x230 net/core/sock.c:4003   udp_lib_close+0x15/0x20 include/net/udp.h:325   inet_release+0xce/0xf0 net/ipv4/af_inet.c:437   __sock_release net/socket.c:662 [inline]   sock_close+0x6b/0x150 net/socket.c:1455   __fput+0x29b/0x650 fs/file_table.c:468   ____fput+0x1c/0x30 fs/file_table.c:496   task_work_run+0x131/0x1a0 kernel/task_work.c:233   resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]   __exit_to_user_mode_loop kernel/entry/common.c:44 [inline]   exit_to_user_mode_loop+0x1fe/0x740 kernel/entry/common.c:75   __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]   syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]   syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]   syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]   do_syscall_64+0x1e1/0x2b0 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88811c182b20 of 8 bytes by task 827 on cpu 1:   l2tp_tunnel_del_work+0x2f/0x1a0 net/l2tp/l2tp_core.c:1418   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0x4ce/0x9d0 kernel/workqueue.c:3340   worker_thread+0x582/0x770 kernel/workqueue.c:3421   kthread+0x489/0x510 kernel/kthread.c:463   ret_from_fork+0x149/0x290 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246  value changed: 0xffff88811b818000 -> 0x0000000000000000",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23083",
                        "url": "https://ubuntu.com/security/CVE-2026-23083",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fou: Don't allow 0 for FOU_ATTR_IPPROTO.  fou_udp_recv() has the same problem mentioned in the previous patch.  If FOU_ATTR_IPPROTO is set to 0, skb is not freed by fou_udp_recv() nor \"resubmit\"-ted in ip_protocol_deliver_rcu().  Let's forbid 0 for FOU_ATTR_IPPROTO.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23095",
                        "url": "https://ubuntu.com/security/CVE-2026-23095",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gue: Fix skb memleak with inner IP protocol 0.  syzbot reported skb memleak below. [0]  The repro generated a GUE packet with its inner protocol 0.  gue_udp_recv() returns -guehdr->proto_ctype for \"resubmit\" in ip_protocol_deliver_rcu(), but this only works with non-zero protocol number.  Let's drop such packets.  Note that 0 is a valid number (IPv6 Hop-by-Hop Option).  I think it is not practical to encap HOPOPT in GUE, so once someone starts to complain, we could pass down a resubmit flag pointer to distinguish two zeros from the upper layer:    * no error   * resubmit HOPOPT  [0] BUG: memory leak unreferenced object 0xffff888109695a00 (size 240):   comm \"syz.0.17\", pid 6088, jiffies 4294943096   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 40 c2 10 81 88 ff ff 00 00 00 00 00 00 00 00  .@..............   backtrace (crc a84b336f):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4958 [inline]     slab_alloc_node mm/slub.c:5263 [inline]     kmem_cache_alloc_noprof+0x3b4/0x590 mm/slub.c:5270     __build_skb+0x23/0x60 net/core/skbuff.c:474     build_skb+0x20/0x190 net/core/skbuff.c:490     __tun_build_skb drivers/net/tun.c:1541 [inline]     tun_build_skb+0x4a1/0xa40 drivers/net/tun.c:1636     tun_get_user+0xc12/0x2030 drivers/net/tun.c:1770     tun_chr_write_iter+0x71/0x120 drivers/net/tun.c:1999     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0xa7/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xf80 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23125",
                        "url": "https://ubuntu.com/security/CVE-2026-23125",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT  A null-ptr-deref was reported in the SCTP transmit path when SCTP-AUTH key initialization fails:    ==================================================================   KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]   CPU: 0 PID: 16 Comm: ksoftirqd/0 Tainted: G W 6.6.0 #2   RIP: 0010:sctp_packet_bundle_auth net/sctp/output.c:264 [inline]   RIP: 0010:sctp_packet_append_chunk+0xb36/0x1260 net/sctp/output.c:401   Call Trace:    sctp_packet_transmit_chunk+0x31/0x250 net/sctp/output.c:189   sctp_outq_flush_data+0xa29/0x26d0 net/sctp/outqueue.c:1111   sctp_outq_flush+0xc80/0x1240 net/sctp/outqueue.c:1217   sctp_cmd_interpreter.isra.0+0x19a5/0x62c0 net/sctp/sm_sideeffect.c:1787   sctp_side_effects net/sctp/sm_sideeffect.c:1198 [inline]   sctp_do_sm+0x1a3/0x670 net/sctp/sm_sideeffect.c:1169   sctp_assoc_bh_rcv+0x33e/0x640 net/sctp/associola.c:1052   sctp_inq_push+0x1dd/0x280 net/sctp/inqueue.c:88   sctp_rcv+0x11ae/0x3100 net/sctp/input.c:243   sctp6_rcv+0x3d/0x60 net/sctp/ipv6.c:1127  The issue is triggered when sctp_auth_asoc_init_active_key() fails in sctp_sf_do_5_1C_ack() while processing an INIT_ACK. In this case, the command sequence is currently:  - SCTP_CMD_PEER_INIT - SCTP_CMD_TIMER_STOP (T1_INIT) - SCTP_CMD_TIMER_START (T1_COOKIE) - SCTP_CMD_NEW_STATE (COOKIE_ECHOED) - SCTP_CMD_ASSOC_SHKEY - SCTP_CMD_GEN_COOKIE_ECHO  If SCTP_CMD_ASSOC_SHKEY fails, asoc->shkey remains NULL, while asoc->peer.auth_capable and asoc->peer.peer_chunks have already been set by SCTP_CMD_PEER_INIT. This allows a DATA chunk with auth = 1 and shkey = NULL to be queued by sctp_datamsg_from_user().  Since command interpretation stops on failure, no COOKIE_ECHO should been sent via SCTP_CMD_GEN_COOKIE_ECHO. However, the T1_COOKIE timer has already been started, and it may enqueue a COOKIE_ECHO into the outqueue later. As a result, the DATA chunk can be transmitted together with the COOKIE_ECHO in sctp_outq_flush_data(), leading to the observed issue.  Similar to the other places where it calls sctp_auth_asoc_init_active_key() right after sctp_process_init(), this patch moves the SCTP_CMD_ASSOC_SHKEY immediately after SCTP_CMD_PEER_INIT, before stopping T1_INIT and starting T1_COOKIE. This ensures that if shared key generation fails, authenticated DATA cannot be sent. It also allows the T1_INIT timer to retransmit INIT, giving the client another chance to process INIT_ACK and retry key setup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23099",
                        "url": "https://ubuntu.com/security/CVE-2026-23099",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: limit BOND_MODE_8023AD to Ethernet devices  BOND_MODE_8023AD makes sense for ARPHRD_ETHER only.  syzbot reported:   BUG: KASAN: global-out-of-bounds in __hw_addr_create net/core/dev_addr_lists.c:63 [inline]  BUG: KASAN: global-out-of-bounds in __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118 Read of size 16 at addr ffffffff8bf94040 by task syz.1.3580/19497  CPU: 1 UID: 0 PID: 19497 Comm: syz.1.3580 Tainted: G             L     syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>   dump_stack_lvl+0xe8/0x150 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  check_region_inline mm/kasan/generic.c:-1 [inline]   kasan_check_range+0x2b0/0x2c0 mm/kasan/generic.c:200   __asan_memcpy+0x29/0x70 mm/kasan/shadow.c:105   __hw_addr_create net/core/dev_addr_lists.c:63 [inline]   __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118   __dev_mc_add net/core/dev_addr_lists.c:868 [inline]   dev_mc_add+0xa1/0x120 net/core/dev_addr_lists.c:886   bond_enslave+0x2b8b/0x3ac0 drivers/net/bonding/bond_main.c:2180   do_set_master+0x533/0x6d0 net/core/rtnetlink.c:2963   do_setlink+0xcf0/0x41c0 net/core/rtnetlink.c:3165   rtnl_changelink net/core/rtnetlink.c:3776 [inline]   __rtnl_newlink net/core/rtnetlink.c:3935 [inline]   rtnl_newlink+0x161c/0x1c90 net/core/rtnetlink.c:4072   rtnetlink_rcv_msg+0x7cf/0xb70 net/core/rtnetlink.c:6958   netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2550   netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline]   netlink_unicast+0x82f/0x9e0 net/netlink/af_netlink.c:1344   netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1894   sock_sendmsg_nosec net/socket.c:727 [inline]   __sock_sendmsg+0x21c/0x270 net/socket.c:742   ____sys_sendmsg+0x505/0x820 net/socket.c:2592   ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2646   __sys_sendmsg+0x164/0x220 net/socket.c:2678   do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]   __do_fast_syscall_32+0x1dc/0x560 arch/x86/entry/syscall_32.c:307   do_fast_syscall_32+0x34/0x80 arch/x86/entry/syscall_32.c:332  entry_SYSENTER_compat_after_hwframe+0x84/0x8e  </TASK>  The buggy address belongs to the variable:  lacpdu_mcast_addr+0x0/0x40",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71194",
                        "url": "https://ubuntu.com/security/CVE-2025-71194",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix deadlock in wait_current_trans() due to ignored transaction type  When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans().  This can lead to a deadlock scenario involving two transactions and pending ordered extents:    1. Transaction A is in TRANS_STATE_COMMIT_DOING state    2. A worker processing an ordered extent calls start_transaction()      with TRANS_JOIN    3. join_transaction() returns -EBUSY because Transaction A is in      TRANS_STATE_COMMIT_DOING    4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes    5. A new Transaction B is created (TRANS_STATE_RUNNING)    6. The ordered extent from step 2 is added to Transaction B's      pending ordered extents    7. Transaction B immediately starts commit by another task and      enters TRANS_STATE_COMMIT_START    8. The worker finally reaches wait_current_trans(), sees Transaction B      in TRANS_STATE_COMMIT_START (a blocked state), and waits      unconditionally    9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START      according to btrfs_blocked_trans_types[]    10. Transaction B is waiting for pending ordered extents to complete    11. Deadlock: Transaction B waits for ordered extent, ordered extent       waits for Transaction B  This can be illustrated by the following call stacks:   CPU0                              CPU1                                     btrfs_finish_ordered_io()                                       start_transaction(TRANS_JOIN)                                         join_transaction()                                           # -EBUSY (Transaction A is                                           # TRANS_STATE_COMMIT_DOING)   # Transaction A completes   # Transaction B created   # ordered extent added to   # Transaction B's pending list   btrfs_commit_transaction()     # Transaction B enters     # TRANS_STATE_COMMIT_START     # waiting for pending ordered     # extents                                         wait_current_trans()                                           # waits for Transaction B                                           # (should not wait!)  Task bstore_kv_sync in btrfs_commit_transaction waiting for ordered extents:    __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   btrfs_commit_transaction+0xbf7/0xda0 [btrfs]   btrfs_sync_file+0x342/0x4d0 [btrfs]   __x64_sys_fdatasync+0x4b/0x80   do_syscall_64+0x33/0x40   entry_SYSCALL_64_after_hwframe+0x44/0xa9  Task kworker in wait_current_trans waiting for transaction commit:    Workqueue: btrfs-syno_nocow btrfs_work_helper [btrfs]   __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   wait_current_trans+0xb0/0x110 [btrfs]   start_transaction+0x346/0x5b0 [btrfs]   btrfs_finish_ordered_io.isra.0+0x49b/0x9c0 [btrfs]   btrfs_work_helper+0xe8/0x350 [btrfs]   process_one_work+0x1d3/0x3c0   worker_thread+0x4d/0x3e0   kthread+0x12d/0x150   ret_from_fork+0x1f/0x30  Fix this by passing the transaction type to wait_current_trans() and checking btrfs_blocked_trans_types[cur_trans->state] against the given type before deciding to wait. This ensures that transaction types which are allowed to join during certain blocked states will not unnecessarily wait and cause deadlocks.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71185",
                        "url": "https://ubuntu.com/security/CVE-2025-71185",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation  Make sure to drop the reference taken when looking up the crossbar platform device during am335x route allocation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23026",
                        "url": "https://ubuntu.com/security/CVE-2026-23026",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config()  Fix a memory leak in gpi_peripheral_config() where the original memory pointed to by gchan->config could be lost if krealloc() fails.  The issue occurs when: 1. gchan->config points to previously allocated memory 2. krealloc() fails and returns NULL 3. The function directly assigns NULL to gchan->config, losing the    reference to the original memory 4. The original memory becomes unreachable and cannot be freed  Fix this by using a temporary variable to hold the krealloc() result and only updating gchan->config when the allocation succeeds.  Found via static analysis and code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71188",
                        "url": "https://ubuntu.com/security/CVE-2025-71188",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: lpc18xx-dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71163",
                        "url": "https://ubuntu.com/security/CVE-2025-71163",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: idxd: fix device leaks on compat bind and unbind  Make sure to drop the reference taken when looking up the idxd device as part of the compat bind and unbind sysfs interface.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71189",
                        "url": "https://ubuntu.com/security/CVE-2025-71189",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: dw: dmamux: fix OF node leak on route allocation failure  Make sure to drop the reference taken to the DMA master OF node also on late route allocation failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71190",
                        "url": "https://ubuntu.com/security/CVE-2025-71190",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: bcm-sba-raid: fix device leak on probe  Make sure to drop the reference taken when looking up the mailbox device during probe on probe failures and on driver unbind.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71191",
                        "url": "https://ubuntu.com/security/CVE-2025-71191",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: at_hdmac: fix device leak on of_dma_xlate()  Make sure to drop the reference taken when looking up the DMA platform device during of_dma_xlate() when releasing channel resources.  Note that commit 3832b78b3ec2 (\"dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()\") fixed the leak in a couple of error paths but the reference is still leaking on successful allocation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23049",
                        "url": "https://ubuntu.com/security/CVE-2026-23049",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel  The connector type for the DataImage SCF0700C48GGU18 panel is missing and devm_drm_panel_bridge_add() requires connector type to be set. This leads to a warning and a backtrace in the kernel log and panel does not work: \" WARNING: CPU: 3 PID: 38 at drivers/gpu/drm/bridge/panel.c:379 devm_drm_of_get_bridge+0xac/0xb8 \" The warning is triggered by a check for valid connector type in devm_drm_panel_bridge_add(). If there is no valid connector type set for a panel, the warning is printed and panel is not added. Fill in the missing connector type to fix the warning and make the panel operational once again.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23144",
                        "url": "https://ubuntu.com/security/CVE-2026-23144",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure  When a context DAMON sysfs directory setup is failed after setup of attrs/ directory, subdirectories of attrs/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23145",
                        "url": "https://ubuntu.com/security/CVE-2026-23145",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref  The error branch for ext4_xattr_inode_update_ref forget to release the refcount for iloc.bh. Find this when review code.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22997",
                        "url": "https://ubuntu.com/security/CVE-2026-22997",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session upon receiving the second rts  Since j1939_session_deactivate_activate_next() in j1939_tp_rxtimer() is called only when the timer is enabled, we need to call j1939_session_deactivate_activate_next() if we cancelled the timer. Otherwise, refcount for j1939_session leaks, which will later appear as  | unregister_netdevice: waiting for vcan0 to become free. Usage count = 2.  problem.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23031",
                        "url": "https://ubuntu.com/security/CVE-2026-23031",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak  In gs_can_open(), the URBs for USB-in transfers are allocated, added to the parent->rx_submitted anchor and submitted. In the complete callback gs_usb_receive_bulk_callback(), the URB is processed and resubmitted. In gs_can_close() the URBs are freed by calling usb_kill_anchored_urbs(parent->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in gs_can_close().  Fix the memory leak by anchoring the URB in the gs_usb_receive_bulk_callback() to the parent->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23032",
                        "url": "https://ubuntu.com/security/CVE-2026-23032",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  null_blk: fix kmemleak by releasing references to fault configfs items  When CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is enabled, the null-blk driver sets up fault injection support by creating the timeout_inject, requeue_inject, and init_hctx_fault_inject configfs items as children of the top-level nullbX configfs group.  However, when the nullbX device is removed, the references taken to these fault-config configfs items are not released. As a result, kmemleak reports a memory leak, for example:  unreferenced object 0xc00000021ff25c40 (size 32):   comm \"mkdir\", pid 10665, jiffies 4322121578   hex dump (first 32 bytes):     69 6e 69 74 5f 68 63 74 78 5f 66 61 75 6c 74 5f  init_hctx_fault_     69 6e 6a 65 63 74 00 88 00 00 00 00 00 00 00 00  inject..........   backtrace (crc 1a018c86):     __kmalloc_node_track_caller_noprof+0x494/0xbd8     kvasprintf+0x74/0xf4     config_item_set_name+0xf0/0x104     config_group_init_type_name+0x48/0xfc     fault_config_init+0x48/0xf0     0xc0080000180559e4     configfs_mkdir+0x304/0x814     vfs_mkdir+0x49c/0x604     do_mkdirat+0x314/0x3d0     sys_mkdir+0xa0/0xd8     system_call_exception+0x1b0/0x4f0     system_call_vectored_common+0x15c/0x2ec  Fix this by explicitly releasing the references to the fault-config configfs items when dropping the reference to the top-level nullbX configfs group.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23033",
                        "url": "https://ubuntu.com/security/CVE-2026-23033",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: omap-dma: fix dma_pool resource leak in error paths  The dma_pool created by dma_pool_create() is not destroyed when dma_async_device_register() or of_dma_controller_register() fails, causing a resource leak in the probe error paths.  Add dma_pool_destroy() in both error paths to properly release the allocated dma_pool resource.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71196",
                        "url": "https://ubuntu.com/security/CVE-2025-71196",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: stm32-usphyc: Fix off by one in probe()  The \"index\" variable is used as an index into the usbphyc->phys[] array which has usbphyc->nphys elements.  So if it is equal to usbphyc->nphys then it is one element out of bounds.  The \"index\" comes from the device tree so it's data that we trust and it's unlikely to be wrong, however it's obviously still worth fixing the bug.  Change the > to >=.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71193",
                        "url": "https://ubuntu.com/security/CVE-2025-71193",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: qcom-qusb2: Fix NULL pointer dereference on early suspend  Enabling runtime PM before attaching the QPHY instance as driver data can lead to a NULL pointer dereference in runtime PM callbacks that expect valid driver data. There is a small window where the suspend callback may run after PM runtime enabling and before runtime forbid. This causes a sporadic crash during boot:  ``` Unable to handle kernel NULL pointer dereference at virtual address 00000000000000a1 [...] CPU: 0 UID: 0 PID: 11 Comm: kworker/0:1 Not tainted 6.16.7+ #116 PREEMPT Workqueue: pm pm_runtime_work pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : qusb2_phy_runtime_suspend+0x14/0x1e0 [phy_qcom_qusb2] lr : pm_generic_runtime_suspend+0x2c/0x44 [...] ```  Attach the QPHY instance as driver data before enabling runtime PM to prevent NULL pointer dereference in runtime PM callbacks.  Reorder pm_runtime_enable() and pm_runtime_forbid() to prevent a short window where an unnecessary runtime suspend can occur.  Use the devres-managed version to ensure PM runtime is symmetrically disabled during driver removal for proper cleanup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71162",
                        "url": "https://ubuntu.com/security/CVE-2025-71162",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: tegra-adma: Fix use-after-free  A use-after-free bug exists in the Tegra ADMA driver when audio streams are terminated, particularly during XRUN conditions. The issue occurs when the DMA buffer is freed by tegra_adma_terminate_all() before the vchan completion tasklet finishes accessing it.  The race condition follows this sequence:    1. DMA transfer completes, triggering an interrupt that schedules the      completion tasklet (tasklet has not executed yet)   2. Audio playback stops, calling tegra_adma_terminate_all() which      frees the DMA buffer memory via kfree()   3. The scheduled tasklet finally executes, calling vchan_complete()      which attempts to access the already-freed memory  Since tasklets can execute at any time after being scheduled, there is no guarantee that the buffer will remain valid when vchan_complete() runs.  Fix this by properly synchronizing the virtual channel completion:  - Calling vchan_terminate_vdesc() in tegra_adma_stop() to mark the    descriptors as terminated instead of freeing the descriptor.  - Add the callback tegra_adma_synchronize() that calls    vchan_synchronize() which kills any pending tasklets and frees any    terminated descriptors.  Crash logs: [  337.427523] BUG: KASAN: use-after-free in vchan_complete+0x124/0x3b0 [  337.427544] Read of size 8 at addr ffff000132055428 by task swapper/0/0  [  337.427562] Call trace: [  337.427564]  dump_backtrace+0x0/0x320 [  337.427571]  show_stack+0x20/0x30 [  337.427575]  dump_stack_lvl+0x68/0x84 [  337.427584]  print_address_description.constprop.0+0x74/0x2b8 [  337.427590]  kasan_report+0x1f4/0x210 [  337.427598]  __asan_load8+0xa0/0xd0 [  337.427603]  vchan_complete+0x124/0x3b0 [  337.427609]  tasklet_action_common.constprop.0+0x190/0x1d0 [  337.427617]  tasklet_action+0x30/0x40 [  337.427623]  __do_softirq+0x1a0/0x5c4 [  337.427628]  irq_exit+0x110/0x140 [  337.427633]  handle_domain_irq+0xa4/0xe0 [  337.427640]  gic_handle_irq+0x64/0x160 [  337.427644]  call_on_irq_stack+0x20/0x4c [  337.427649]  do_interrupt_handler+0x7c/0x90 [  337.427654]  el1_interrupt+0x30/0x80 [  337.427659]  el1h_64_irq_handler+0x18/0x30 [  337.427663]  el1h_64_irq+0x7c/0x80 [  337.427667]  cpuidle_enter_state+0xe4/0x540 [  337.427674]  cpuidle_enter+0x54/0x80 [  337.427679]  do_idle+0x2e0/0x380 [  337.427685]  cpu_startup_entry+0x2c/0x70 [  337.427690]  rest_init+0x114/0x130 [  337.427695]  arch_call_rest_init+0x18/0x24 [  337.427702]  start_kernel+0x380/0x3b4 [  337.427706]  __primary_switched+0xc0/0xc8",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71195",
                        "url": "https://ubuntu.com/security/CVE-2025-71195",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: xilinx: xdma: Fix regmap max_register  The max_register field is assigned the size of the register memory region instead of the offset of the last register. The result is that reading from the regmap via debugfs can cause a segmentation fault:  tail /sys/kernel/debug/regmap/xdma.1.auto/registers Unable to handle kernel paging request at virtual address ffff800082f70000 Mem abort info:   ESR = 0x0000000096000007   EC = 0x25: DABT (current EL), IL = 32 bits   SET = 0, FnV = 0   EA = 0, S1PTW = 0   FSC = 0x07: level 3 translation fault [...] Call trace:  regmap_mmio_read32le+0x10/0x30  _regmap_bus_reg_read+0x74/0xc0  _regmap_read+0x68/0x198  regmap_read+0x54/0x88  regmap_read_debugfs+0x140/0x380  regmap_map_read_file+0x30/0x48  full_proxy_read+0x68/0xc8  vfs_read+0xcc/0x310  ksys_read+0x7c/0x120  __arm64_sys_read+0x24/0x40  invoke_syscall.constprop.0+0x64/0x108  do_el0_svc+0xb0/0xd8  el0_svc+0x38/0x130  el0t_64_sync_handler+0x120/0x138  el0t_64_sync+0x194/0x198 Code: aa1e03e9 d503201f f9400000 8b214000 (b9400000) ---[ end trace 0000000000000000 ]--- note: tail[1217] exited with irqs disabled note: tail[1217] exited with preempt_count 1 Segmentation fault",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23006",
                        "url": "https://ubuntu.com/security/CVE-2026-23006",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: tlv320adcx140: fix null pointer  The \"snd_soc_component\" in \"adcx140_priv\" was only used once but never set. It was only used for reaching \"dev\" which is already present in \"adcx140_priv\".",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22999",
                        "url": "https://ubuntu.com/security/CVE-2026-22999",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: do not free existing class in qfq_change_class()  Fixes qfq_change_class() error case.  cl->qdisc and cl should only be freed if a new class and qdisc were allocated, or we risk various UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23010",
                        "url": "https://ubuntu.com/security/CVE-2026-23010",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix use-after-free in inet6_addr_del().  syzbot reported use-after-free of inet6_ifaddr in inet6_addr_del(). [0]  The cited commit accidentally moved ipv6_del_addr() for mngtmpaddr before reading its ifp->flags for temporary addresses in inet6_addr_del().  Let's move ipv6_del_addr() down to fix the UAF.  [0]: BUG: KASAN: slab-use-after-free in inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117 Read of size 4 at addr ffff88807b89c86c by task syz.3.1618/9593  CPU: 0 UID: 0 PID: 9593 Comm: syz.3.1618 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>  __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:378 [inline]  print_report+0xcd/0x630 mm/kasan/report.c:482  kasan_report+0xe0/0x110 mm/kasan/report.c:595  inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117  addrconf_del_ifaddr+0x11e/0x190 net/ipv6/addrconf.c:3181  inet6_ioctl+0x1e5/0x2b0 net/ipv6/af_inet6.c:582  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f164cf8f749 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f164de64038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007f164d1e5fa0 RCX: 00007f164cf8f749 RDX: 0000200000000000 RSI: 0000000000008936 RDI: 0000000000000003 RBP: 00007f164d013f91 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f164d1e6038 R14: 00007f164d1e5fa0 R15: 00007ffde15c8288  </TASK>  Allocated by task 9593:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  poison_kmalloc_redzone mm/kasan/common.c:397 [inline]  __kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:414  kmalloc_noprof include/linux/slab.h:957 [inline]  kzalloc_noprof include/linux/slab.h:1094 [inline]  ipv6_add_addr+0x4e3/0x2010 net/ipv6/addrconf.c:1120  inet6_addr_add+0x256/0x9b0 net/ipv6/addrconf.c:3050  addrconf_add_ifaddr+0x1fc/0x450 net/ipv6/addrconf.c:3160  inet6_ioctl+0x103/0x2b0 net/ipv6/af_inet6.c:580  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 6099:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  kasan_save_free_info+0x3b/0x60 mm/kasan/generic.c:584  poison_slab_object mm/kasan/common.c:252 [inline]  __kasan_slab_free+0x5f/0x80 mm/kasan/common.c:284  kasan_slab_free include/linux/kasan.h:234 [inline]  slab_free_hook mm/slub.c:2540 [inline]  slab_free_freelist_hook mm/slub.c:2569 [inline]  slab_free_bulk mm/slub.c:6696 [inline]  kmem_cache_free_bulk mm/slub.c:7383 [inline]  kmem_cache_free_bulk+0x2bf/0x680 mm/slub.c:7362  kfree_bulk include/linux/slab.h:830 [inline]  kvfree_rcu_bulk+0x1b7/0x1e0 mm/slab_common.c:1523  kvfree_rcu_drain_ready mm/slab_common.c:1728 [inline]  kfree_rcu_monitor+0x1d0/0x2f0 mm/slab_common.c:1801  process_one_work+0x9ba/0x1b20 kernel/workqueue.c:3257  process_scheduled_works kernel/workqu ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23054",
                        "url": "https://ubuntu.com/security/CVE-2026-23054",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hv_netvsc: reject RSS hash key programming without RX indirection table  RSS configuration requires a valid RX indirection table. When the device reports a single receive queue, rndis_filter_device_add() does not allocate an indirection table, accepting RSS hash key updates in this state leads to a hang.  Fix this by gating netvsc_set_rxfh() on ndc->rx_table_sz and return -EOPNOTSUPP when the table is absent. This aligns set_rxfh with the device capabilities and prevents incorrect behavior.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23011",
                        "url": "https://ubuntu.com/security/CVE-2026-23011",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: ip_gre: make ipgre_header() robust  Analog to commit db5b4e39c4e6 (\"ip6_gre: make ip6gre_header() robust\")  Over the years, syzbot found many ways to crash the kernel in ipgre_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 ipgre device.  [1] skbuff: skb_under_panic: text:ffffffff89ea3cb7 len:2030915468 put:2030915372 head:ffff888058b43000 data:ffff887fdfa6e194 tail:0x120 end:0x6c0 dev:team0  kernel BUG at net/core/skbuff.c:213 ! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 1 UID: 0 PID: 1322 Comm: kworker/1:9 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Workqueue: mld mld_ifc_work  RIP: 0010:skb_panic+0x157/0x160 net/core/skbuff.c:213 Call Trace:  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ipgre_header+0x67/0x290 net/ipv4/ip_gre.c:897   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   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   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0xad1/0x1770 kernel/workqueue.c:3340   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23001",
                        "url": "https://ubuntu.com/security/CVE-2026-23001",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix possible UAF in macvlan_forward_source()  Add RCU protection on (struct macvlan_source_entry)->vlan.  Whenever macvlan_hash_del_source() is called, we must clear entry->vlan pointer before RCU grace period starts.  This allows macvlan_forward_source() to skip over entries queued for freeing.  Note that macvlan_dev are already RCU protected, as they are embedded in a standard netdev (netdev_priv(ndev)).  https: //lore.kernel.org/netdev/695fb1e8.050a0220.1c677c.039f.GAE@google.com/T/#u",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23003",
                        "url": "https://ubuntu.com/security/CVE-2026-23003",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv()  Blamed commit did not take care of VLAN encapsulations as spotted by syzbot [1].  Use skb_vlan_inet_prepare() instead of pskb_inet_may_pull().  [1]  BUG: KMSAN: uninit-value in __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]  BUG: KMSAN: uninit-value in INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]  BUG: KMSAN: uninit-value in IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]   INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]   IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   ip6ip6_dscp_ecn_decapsulate+0x16f/0x1b0 net/ipv6/ip6_tunnel.c:729   __ip6_tnl_rcv+0xed9/0x1b50 net/ipv6/ip6_tunnel.c:860   ip6_tnl_rcv+0xc3/0x100 net/ipv6/ip6_tunnel.c:903  gre_rcv+0x1529/0x1b90 net/ipv6/ip6_gre.c:-1   ip6_protocol_deliver_rcu+0x1c89/0x2c60 net/ipv6/ip6_input.c:438   ip6_input_finish+0x1f4/0x4a0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x9c/0x330 net/ipv6/ip6_input.c:500   ip6_mc_input+0x7ca/0xc10 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x958/0x990 net/ipv6/ip6_input.c:79   NF_HOOK include/linux/netfilter.h:318 [inline]   ipv6_rcv+0xf1/0x3c0 net/ipv6/ip6_input.c:311   __netif_receive_skb_one_core net/core/dev.c:6139 [inline]   __netif_receive_skb+0x1df/0xac0 net/core/dev.c:6252   netif_receive_skb_internal net/core/dev.c:6338 [inline]   netif_receive_skb+0x57/0x630 net/core/dev.c:6397   tun_rx_batched+0x1df/0x980 drivers/net/tun.c:1485   tun_get_user+0x5c0e/0x6c60 drivers/net/tun.c:1953   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Uninit was created at:   slab_post_alloc_hook mm/slub.c:4960 [inline]   slab_alloc_node mm/slub.c:5263 [inline]   kmem_cache_alloc_node_noprof+0x9e7/0x17a0 mm/slub.c:5315   kmalloc_reserve+0x13c/0x4b0 net/core/skbuff.c:586   __alloc_skb+0x805/0x1040 net/core/skbuff.c:690   alloc_skb include/linux/skbuff.h:1383 [inline]   alloc_skb_with_frags+0xc5/0xa60 net/core/skbuff.c:6712   sock_alloc_send_pskb+0xacc/0xc60 net/core/sock.c:2995   tun_alloc_skb drivers/net/tun.c:1461 [inline]   tun_get_user+0x1142/0x6c60 drivers/net/tun.c:1794   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  CPU: 0 UID: 0 PID: 6465 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(none) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23141",
                        "url": "https://ubuntu.com/security/CVE-2026-23141",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: send: check for inline extents in range_is_hole_in_parent()  Before accessing the disk_bytenr field of a file extent item we need to check if we are dealing with an inline extent. This is because for inline extents their data starts at the offset of the disk_bytenr field. So accessing the disk_bytenr means we are accessing inline data or in case the inline data is less than 8 bytes we can actually cause an invalid memory access if this inline extent item is the first item in the leaf or access metadata from other items.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22998",
                        "url": "https://ubuntu.com/security/CVE-2026-22998",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec  Commit efa56305908b (\"nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length\") added ttag bounds checking and data_offset validation in nvmet_tcp_handle_h2c_data_pdu(), but it did not validate whether the command's data structures (cmd->req.sg and cmd->iov) have been properly initialized before processing H2C_DATA PDUs.  The nvmet_tcp_build_pdu_iovec() function dereferences these pointers without NULL checks. This can be triggered by sending H2C_DATA PDU immediately after the ICREQ/ICRESP handshake, before sending a CONNECT command or NVMe write command.  Attack vectors that trigger NULL pointer dereferences: 1. H2C_DATA PDU sent before CONNECT → both pointers NULL 2. H2C_DATA PDU for READ command → cmd->req.sg allocated, cmd->iov NULL 3. H2C_DATA PDU for uninitialized command slot → both pointers NULL  The fix validates both cmd->req.sg and cmd->iov before calling nvmet_tcp_build_pdu_iovec(). Both checks are required because: - Uninitialized commands: both NULL - READ commands: cmd->req.sg allocated, cmd->iov NULL - WRITE commands: both allocated",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23037",
                        "url": "https://ubuntu.com/security/CVE-2026-23037",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: etas_es58x: allow partial RX URB allocation to succeed  When es58x_alloc_rx_urbs() fails to allocate the requested number of URBs but succeeds in allocating some, it returns an error code. This causes es58x_open() to return early, skipping the cleanup label 'free_urbs', which leads to the anchored URBs being leaked.  As pointed out by maintainer Vincent Mailhol, the driver is designed to handle partial URB allocation gracefully. Therefore, partial allocation should not be treated as a fatal error.  Modify es58x_alloc_rx_urbs() to return 0 if at least one URB has been allocated, restoring the intended behavior and preventing the leak in es58x_open().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23038",
                        "url": "https://ubuntu.com/security/CVE-2026-23038",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node()  In nfs4_ff_alloc_deviceid_node(), if the allocation for ds_versions fails, the function jumps to the out_scratch label without freeing the already allocated dsaddrs list, leading to a memory leak.  Fix this by jumping to the out_err_drain_dsaddrs label, which properly frees the dsaddrs list before cleaning up other resources.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71184",
                        "url": "https://ubuntu.com/security/CVE-2025-71184",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix NULL dereference on root when tracing inode eviction  When evicting an inode the first thing we do is to setup tracing for it, which implies fetching the root's id. But in btrfs_evict_inode() the root might be NULL, as implied in the next check that we do in btrfs_evict_inode().  Hence, we either should set the ->root_objectid to 0 in case the root is NULL, or we move tracing setup after checking that the root is not NULL. Setting the rootid to 0 at least gives us the possibility to trace this call even in the case when the root is NULL, so that's the solution taken here.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "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-2025-71160",
                        "url": "https://ubuntu.com/security/CVE-2025-71160",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: avoid chain re-validation if possible  Hamza Mahfooz reports cpu soft lock-ups in nft_chain_validate():   watchdog: BUG: soft lockup - CPU#1 stuck for 27s! [iptables-nft-re:37547] [..]  RIP: 0010:nft_chain_validate+0xcb/0x110 [nf_tables] [..]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_table_validate+0x6b/0xb0 [nf_tables]   nf_tables_validate+0x8b/0xa0 [nf_tables]   nf_tables_commit+0x1df/0x1eb0 [nf_tables] [..]  Currently nf_tables will traverse the entire table (chain graph), starting from the entry points (base chains), exploring all possible paths (chain jumps).  But there are cases where we could avoid revalidation.  Consider: 1  input -> j2 -> j3 2  input -> j2 -> j3 3  input -> j1 -> j2 -> j3  Then the second rule does not need to revalidate j2, and, by extension j3, because this was already checked during validation of the first rule. We need to validate it only for rule 3.  This is needed because chain loop detection also ensures we do not exceed the jump stack: Just because we know that j2 is cycle free, its last jump might now exceed the allowed stack size.  We also need to update all reachable chains with the new largest observed call depth.  Care has to be taken to revalidate even if the chain depth won't be an issue: chain validation also ensures that expressions are not called from invalid base chains.  For example, the masquerade expression can only be called from NAT postrouting base chains.  Therefore we also need to keep record of the base chain context (type, hooknum) and revalidate if the chain becomes reachable from a different hook location.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22994",
                        "url": "https://ubuntu.com/security/CVE-2026-22994",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix reference count leak in bpf_prog_test_run_xdp()  syzbot is reporting    unregister_netdevice: waiting for sit0 to become free. Usage count = 2  problem. A debug printk() patch found that a refcount is obtained at xdp_convert_md_to_buff() from bpf_prog_test_run_xdp().  According to commit ec94670fcb3b (\"bpf: Support specifying ingress via xdp_md context in BPF_PROG_TEST_RUN\"), the refcount obtained by xdp_convert_md_to_buff() will be released by xdp_convert_buff_to_md().  Therefore, we can consider that the error handling path introduced by commit 1c1949982524 (\"bpf: introduce frags support to bpf_prog_test_run_xdp()\") forgot to call xdp_convert_buff_to_md().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23140",
                        "url": "https://ubuntu.com/security/CVE-2026-23140",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf, test_run: Subtract size of xdp_frame from allowed metadata size  The xdp_frame structure takes up part of the XDP frame headroom, limiting the size of the metadata. However, in bpf_test_run, we don't take this into account, which makes it possible for userspace to supply a metadata size that is too large (taking up the entire headroom).  If userspace supplies such a large metadata size in live packet mode, the xdp_update_frame_from_buff() call in xdp_test_run_init_page() call will fail, after which packet transmission proceeds with an uninitialised frame structure, leading to the usual Bad Stuff.  The commit in the Fixes tag fixed a related bug where the second check in xdp_update_frame_from_buff() could fail, but did not add any additional constraints on the metadata size. Complete the fix by adding an additional check on the metadata size. Reorder the checks slightly to make the logic clearer and add a comment.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71192",
                        "url": "https://ubuntu.com/security/CVE-2025-71192",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ac97: fix a double free in snd_ac97_controller_register()  If ac97_add_adapter() fails, put_device() is the correct way to drop the device reference. kfree() is not required. Add kfree() if idr_alloc() fails and in ac97_adapter_release() to do the cleanup.  Found by code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 16:16: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-22979",
                        "url": "https://ubuntu.com/security/CVE-2026-22979",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix memory leak in skb_segment_list for GRO packets  When skb_segment_list() is called during packet forwarding, it handles packets that were aggregated by the GRO engine.  Historically, the segmentation logic in skb_segment_list assumes that individual segments are split from a parent SKB and may need to carry their own socket memory accounting. Accordingly, the code transfers truesize from the parent to the newly created segments.  Prior to commit ed4cccef64c1 (\"gro: fix ownership transfer\"), this truesize subtraction in skb_segment_list() was valid because fragments still carry a reference to the original socket.  However, commit ed4cccef64c1 (\"gro: fix ownership transfer\") changed this behavior by ensuring that fraglist entries are explicitly orphaned (skb->sk = NULL) to prevent illegal orphaning later in the stack. This change meant that the entire socket memory charge remained with the head SKB, but the corresponding accounting logic in skb_segment_list() was never updated.  As a result, the current code unconditionally adds each fragment's truesize to delta_truesize and subtracts it from the parent SKB. Since the fragments are no longer charged to the socket, this subtraction results in an effective under-count of memory when the head is freed. This causes sk_wmem_alloc to remain non-zero, preventing socket destruction and leading to a persistent memory leak.  The leak can be observed via KMEMLEAK when tearing down the networking environment:  unreferenced object 0xffff8881e6eb9100 (size 2048):   comm \"ping\", pid 6720, jiffies 4295492526   backtrace:     kmem_cache_alloc_noprof+0x5c6/0x800     sk_prot_alloc+0x5b/0x220     sk_alloc+0x35/0xa00     inet6_create.part.0+0x303/0x10d0     __sock_create+0x248/0x640     __sys_socket+0x11b/0x1d0  Since skb_segment_list() is exclusively used for SKB_GSO_FRAGLIST packets constructed by GRO, the truesize adjustment is removed.  The call to skb_release_head_state() must be preserved. As documented in commit cf673ed0e057 (\"net: fix fraglist segmentation reference count leak\"), it is still required to correctly drop references to SKB extensions that may be overwritten during __copy_skb_header().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15: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-2026-23139",
                        "url": "https://ubuntu.com/security/CVE-2026-23139",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_conncount: update last_gc only when GC has been performed  Currently last_gc is being updated everytime a new connection is tracked, that means that it is updated even if a GC wasn't performed. With a sufficiently high packet rate, it is possible to always bypass the GC, causing the list to grow infinitely.  Update the last_gc value only when a GC has been actually performed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40149",
                        "url": "https://ubuntu.com/security/CVE-2025-40149",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock().  get_netdev_for_sock() is called during setsockopt(), so not under RCU.  Using sk_dst_get(sk)->dev could trigger UAF.  Let's use __sk_dst_get() and dst_dev_rcu().  Note that the only ->ndo_sk_get_lower_dev() user is bond_sk_get_lower_dev(), which uses RCU.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-12 11:15: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-2026-23047",
                        "url": "https://ubuntu.com/security/CVE-2026-23047",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make calc_target() set t->paused, not just clear it  Currently calc_target() clears t->paused if the request shouldn't be paused anymore, but doesn't ever set t->paused even though it's able to determine when the request should be paused.  Setting t->paused is left to __submit_request() which is fine for regular requests but doesn't work for linger requests -- since __submit_request() doesn't operate on linger requests, there is nowhere for lreq->t.paused to be set. One consequence of this is that watches don't get reestablished on paused -> unpaused transitions in cases where requests have been paused long enough for the (paused) unwatch request to time out and for the subsequent (re)watch request to enter the paused state.  On top of the watch not getting reestablished, rbd_reregister_watch() gets stuck with rbd_dev->watch_mutex held:    rbd_register_watch     __rbd_register_watch       ceph_osdc_watch         linger_reg_commit_wait  It's waiting for lreq->reg_commit_wait to be completed, but for that to happen the respective request needs to end up on need_resend_linger list and be kicked when requests are unpaused.  There is no chance for that if the request in question is never marked paused in the first place.  The fact that rbd_dev->watch_mutex remains taken out forever then prevents the image from getting unmapped -- \"rbd unmap\" would inevitably hang in D state on an attempt to grab the mutex.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23136",
                        "url": "https://ubuntu.com/security/CVE-2026-23136",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: reset sparse-read state in osd_fault()  When a fault occurs, the connection is abandoned, reestablished, and any pending operations are retried. The OSD client tracks the progress of a sparse-read reply using a separate state machine, largely independent of the messenger's state.  If a connection is lost mid-payload or the sparse-read state machine returns an error, the sparse-read state is not reset. The OSD client will then interpret the beginning of a new reply as the continuation of the old one. If this makes the sparse-read machinery enter a failure state, it may never recover, producing loops like:    libceph:  [0] got 0 extents   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read  Therefore, reset the sparse-read state in osd_fault(), ensuring retries start from a clean state.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15: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": "high",
                        "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-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-2025-71183",
                        "url": "https://ubuntu.com/security/CVE-2025-71183",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: always detect conflicting inodes when logging inode refs  After rename exchanging (either with the rename exchange operation or regular renames in multiple non-atomic steps) two inodes and at least one of them is a directory, we can end up with a log tree that contains only of the inodes and after a power failure that can result in an attempt to delete the other inode when it should not because it was not deleted before the power failure. In some case that delete attempt fails when the target inode is a directory that contains a subvolume inside it, since the log replay code is not prepared to deal with directory entries that point to root items (only inode items).  1) We have directories \"dir1\" (inode A) and \"dir2\" (inode B) under the    same parent directory;  2) We have a file (inode C) under directory \"dir1\" (inode A);  3) We have a subvolume inside directory \"dir2\" (inode B);  4) All these inodes were persisted in a past transaction and we are    currently at transaction N;  5) We rename the file (inode C), so at btrfs_log_new_name() we update    inode C's last_unlink_trans to N;  6) We get a rename exchange for \"dir1\" (inode A) and \"dir2\" (inode B),    so after the exchange \"dir1\" is inode B and \"dir2\" is inode A.    During the rename exchange we call btrfs_log_new_name() for inodes    A and B, but because they are directories, we don't update their    last_unlink_trans to N;  7) An fsync against the file (inode C) is done, and because its inode    has a last_unlink_trans with a value of N we log its parent directory    (inode A) (through btrfs_log_all_parents(), called from    btrfs_log_inode_parent()).  8) So we end up with inode B not logged, which now has the old name    of inode A. At copy_inode_items_to_log(), when logging inode A, we    did not check if we had any conflicting inode to log because inode    A has a generation lower than the current transaction (created in    a past transaction);  9) After a power failure, when replaying the log tree, since we find that    inode A has a new name that conflicts with the name of inode B in the    fs tree, we attempt to delete inode B... this is wrong since that    directory was never deleted before the power failure, and because there    is a subvolume inside that directory, attempting to delete it will fail    since replay_dir_deletes() and btrfs_unlink_inode() are not prepared    to deal with dir items that point to roots instead of inodes.     When that happens the mount fails and we get a stack trace like the    following:     [87.2314] BTRFS info (device dm-0): start tree-log replay    [87.2318] BTRFS critical (device dm-0): failed to delete reference to subvol, root 5 inode 256 parent 259    [87.2332] ------------[ cut here ]------------    [87.2338] BTRFS: Transaction aborted (error -2)    [87.2346] WARNING: CPU: 1 PID: 638968 at fs/btrfs/inode.c:4345 __btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2368] Modules linked in: btrfs loop dm_thin_pool (...)    [87.2470] CPU: 1 UID: 0 PID: 638968 Comm: mount Tainted: G        W          6.18.0-rc7-btrfs-next-218+ #2 PREEMPT(full)    [87.2489] Tainted: [W]=WARN    [87.2494] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014    [87.2514] RIP: 0010:__btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2538] Code: c0 89 04 24 (...)    [87.2568] RSP: 0018:ffffc0e741f4b9b8 EFLAGS: 00010286    [87.2574] RAX: 0000000000000000 RBX: ffff9d3ec8a6cf60 RCX: 0000000000000000    [87.2582] RDX: 0000000000000002 RSI: ffffffff84ab45a1 RDI: 00000000ffffffff    [87.2591] RBP: ffff9d3ec8a6ef20 R08: 0000000000000000 R09: ffffc0e741f4b840    [87.2599] R10: ffff9d45dc1fffa8 R11: 0000000000000003 R12: ffff9d3ee26d77e0    [87.2608] R13: ffffc0e741f4ba98 R14: ffff9d4458040800 R15: ffff9d44b6b7ca10    [87.2618] FS:  00007f7b9603a840(0000) GS:ffff9d4658982000(0000) knlGS:0000000000000000    [87. ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16: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-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-2024-50004",
                        "url": "https://ubuntu.com/security/CVE-2024-50004",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: update DML2 policy EnhancedPrefetchScheduleAccelerationFinal DCN35  [WHY & HOW] Mismatch in DCN35 DML2 cause bw validation failed to acquire unexpected DPP pipe to cause grey screen and system hang. Remove EnhancedPrefetchScheduleAccelerationFinal value override to match HW spec.  (cherry picked from commit 9dad21f910fcea2bdcff4af46159101d7f9cd8ba)",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-10-21 19:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23274",
                        "url": "https://ubuntu.com/security/CVE-2026-23274",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels  IDLETIMER revision 0 rules reuse existing timers by label and always call mod_timer() on timer->timer.  If the label was created first by revision 1 with XT_IDLETIMER_ALARM, the object uses alarm timer semantics and timer->timer is never initialized. Reusing that object from revision 0 causes mod_timer() on an uninitialized timer_list, triggering debugobjects warnings and possible panic when panic_on_warn=1.  Fix this by rejecting revision 0 rule insertion when an existing timer with the same label is of ALARM type.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-20 09:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23351",
                        "url": "https://ubuntu.com/security/CVE-2026-23351",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: split gc into unlink and reclaim phase  Yiming Qian reports Use-after-free in the pipapo set type:   Under a large number of expired elements, commit-time GC can run for a very   long time in a non-preemptible context, triggering soft lockup warnings and   RCU stall reports (local denial of service).  We must split GC in an unlink and a reclaim phase.  We cannot queue elements for freeing until pointers have been swapped. Expired elements are still exposed to both the packet path and userspace dumpers via the live copy of the data structure.  call_rcu() does not protect us: dump operations or element lookups starting after call_rcu has fired can still observe the free'd element, unless the commit phase has made enough progress to swap the clone and live pointers before any new reader has picked up the old version.  This a similar approach as done recently for the rbtree backend in commit 35f83a75529a (\"netfilter: nft_set_rbtree: don't gc elements on insert\").",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-25 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23231",
                        "url": "https://ubuntu.com/security/CVE-2026-23231",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-03-04 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23209",
                        "url": "https://ubuntu.com/security/CVE-2026-23209",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23112",
                        "url": "https://ubuntu.com/security/CVE-2026-23112",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23231",
                        "url": "https://ubuntu.com/security/CVE-2026-23231",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-03-04 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23209",
                        "url": "https://ubuntu.com/security/CVE-2026-23209",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23112",
                        "url": "https://ubuntu.com/security/CVE-2026-23112",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-36347",
                        "url": "https://ubuntu.com/security/CVE-2024-36347",
                        "cve_description": "Improper signature verification in AMD CPU ROM microcode patch loader may allow an attacker with local administrator privilege to load malicious microcode, potentially resulting in loss of integrity of x86 instruction execution, loss of confidentiality and integrity of data in x86 CPU privileged context and compromise of SMM execution environment.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-06-27 23:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40164",
                        "url": "https://ubuntu.com/security/CVE-2025-40164",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Fix using smp_processor_id() in preemptible code warnings  Syzbot reported the following warning:  BUG: using smp_processor_id() in preemptible [00000000] code: dhcpcd/2879 caller is usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331 CPU: 1 UID: 0 PID: 2879 Comm: dhcpcd Not tainted 6.15.0-rc4-syzkaller-00098-g615dca38c2ea #0 PREEMPT(voluntary) Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120  check_preemption_disabled+0xd0/0xe0 lib/smp_processor_id.c:49  usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331  usbnet_resume_rx+0x4b/0x170 drivers/net/usb/usbnet.c:708  usbnet_change_mtu+0x1be/0x220 drivers/net/usb/usbnet.c:417  __dev_set_mtu net/core/dev.c:9443 [inline]  netif_set_mtu_ext+0x369/0x5c0 net/core/dev.c:9496  netif_set_mtu+0xb0/0x160 net/core/dev.c:9520  dev_set_mtu+0xae/0x170 net/core/dev_api.c:247  dev_ifsioc+0xa31/0x18d0 net/core/dev_ioctl.c:572  dev_ioctl+0x223/0x10e0 net/core/dev_ioctl.c:821  sock_do_ioctl+0x19d/0x280 net/socket.c:1204  sock_ioctl+0x42f/0x6a0 net/socket.c:1311  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+0x190/0x200 fs/ioctl.c:892  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  For historical and portability reasons, the netif_rx() is usually run in the softirq or interrupt context, this commit therefore add local_bh_disable/enable() protection in the usbnet_resume_rx().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-12 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40325",
                        "url": "https://ubuntu.com/security/CVE-2025-40325",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid10: wait barrier before returning discard request with REQ_NOWAIT  raid10_handle_discard should wait barrier before returning a discard bio which has REQ_NOWAIT. And there is no need to print warning calltrace if a discard bio has REQ_NOWAIT flag. Quality engineer usually checks dmesg and reports error if dmesg has warning/error calltrace.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-18 07:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68206",
                        "url": "https://ubuntu.com/security/CVE-2025-68206",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_ct: add seqadj extension for natted connections  Sequence adjustment may be required for FTP traffic with PASV/EPSV modes. due to need to re-write packet payload (IP, port) on the ftp control connection. This can require changes to the TCP length and expected seq / ack_seq.  The easiest way to reproduce this issue is with PASV mode. Example ruleset: table inet ftp_nat {         ct helper ftp_helper {                 type \"ftp\" protocol tcp                 l3proto inet         }          chain prerouting {                 type filter hook prerouting priority 0; policy accept;                 tcp dport 21 ct state new ct helper set \"ftp_helper\"         } } table ip nat {         chain prerouting {                 type nat hook prerouting priority -100; policy accept;                 tcp dport 21 dnat ip prefix to ip daddr map { \t\t\t192.168.100.1 : 192.168.13.2/32 }         }          chain postrouting {                 type nat hook postrouting priority 100 ; policy accept;                 tcp sport 21 snat ip prefix to ip saddr map { \t\t\t192.168.13.2 : 192.168.100.1/32 }         } }  Note that the ftp helper gets assigned *after* the dnat setup.  The inverse (nat after helper assign) is handled by an existing check in nf_nat_setup_info() and will not show the problem.  Topoloy:   +-------------------+     +----------------------------------+  | FTP: 192.168.13.2 | <-> | NAT: 192.168.13.3, 192.168.100.1 |  +-------------------+     +----------------------------------+                                       |                          +-----------------------+                          | Client: 192.168.100.2 |                          +-----------------------+  ftp nat changes do not work as expected in this case: Connected to 192.168.100.1. [..] ftp> epsv EPSV/EPRT on IPv4 off. ftp> ls 227 Entering passive mode (192,168,100,1,209,129). 421 Service not available, remote server has closed connection.  Kernel logs: Missing nfct_seqadj_ext_add() setup call WARNING: CPU: 1 PID: 0 at net/netfilter/nf_conntrack_seqadj.c:41 [..]  __nf_nat_mangle_tcp_packet+0x100/0x160 [nf_nat]  nf_nat_ftp+0x142/0x280 [nf_nat_ftp]  help+0x4d1/0x880 [nf_conntrack_ftp]  nf_confirm+0x122/0x2e0 [nf_conntrack]  nf_hook_slow+0x3c/0xb0  ..  Fix this by adding the required extension when a conntrack helper is assigned to a connection that has a nat binding.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15: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-71135",
                        "url": "https://ubuntu.com/security/CVE-2025-71135",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid5: fix possible null-pointer dereferences in raid5_store_group_thread_cnt()  The variable mddev->private is first assigned to conf and then checked:    conf = mddev->private;   if (!conf) ...  If conf is NULL, then mddev->private is also NULL. In this case, null-pointer dereferences can occur when calling raid5_quiesce():    raid5_quiesce(mddev, true);   raid5_quiesce(mddev, false);  since mddev->private is assigned to conf again in raid5_quiesce(), and conf is dereferenced in several places, for example:    conf->quiesce = 0;   wake_up(&conf->wait_for_quiescent);  To fix this issue, the function should unlock mddev and return before invoking raid5_quiesce() when conf is NULL, following the existing pattern in raid5_change_consistency_policy().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38234",
                        "url": "https://ubuntu.com/security/CVE-2025-38234",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/rt: Fix race in push_rt_task  Overview ======== When a CPU chooses to call push_rt_task and picks a task to push to another CPU's runqueue then it will call find_lock_lowest_rq method which would take a double lock on both CPUs' runqueues. If one of the locks aren't readily available, it may lead to dropping the current runqueue lock and reacquiring both the locks at once. During this window it is possible that the task is already migrated and is running on some other CPU. These cases are already handled. However, if the task is migrated and has already been executed and another CPU is now trying to wake it up (ttwu) such that it is queued again on the runqeue (on_rq is 1) and also if the task was run by the same CPU, then the current checks will pass even though the task was migrated out and is no longer in the pushable tasks list.  Crashes ======= This bug resulted in quite a few flavors of crashes triggering kernel panics with various crash signatures such as assert failures, page faults, null pointer dereferences, and queue corruption errors all coming from scheduler itself.  Some of the crashes: -> kernel BUG at kernel/sched/rt.c:1616! BUG_ON(idx >= MAX_RT_PRIO)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? pick_next_task_rt+0x6e/0x1d0    ? do_error_trap+0x64/0xa0    ? pick_next_task_rt+0x6e/0x1d0    ? exc_invalid_op+0x4c/0x60    ? pick_next_task_rt+0x6e/0x1d0    ? asm_exc_invalid_op+0x12/0x20    ? pick_next_task_rt+0x6e/0x1d0    __schedule+0x5cb/0x790    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: kernel NULL pointer dereference, address: 00000000000000c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? __warn+0x8a/0xe0    ? exc_page_fault+0x3d6/0x520    ? asm_exc_page_fault+0x1e/0x30    ? pick_next_task_rt+0xb5/0x1d0    ? pick_next_task_rt+0x8c/0x1d0    __schedule+0x583/0x7e0    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: unable to handle page fault for address: ffff9464daea5900    kernel BUG at kernel/sched/rt.c:1861! BUG_ON(rq->cpu != task_cpu(p))  -> kernel BUG at kernel/sched/rt.c:1055! BUG_ON(!rq->nr_running)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? dequeue_top_rt_rq+0xa2/0xb0    ? do_error_trap+0x64/0xa0    ? dequeue_top_rt_rq+0xa2/0xb0    ? exc_invalid_op+0x4c/0x60    ? dequeue_top_rt_rq+0xa2/0xb0    ? asm_exc_invalid_op+0x12/0x20    ? dequeue_top_rt_rq+0xa2/0xb0    dequeue_rt_entity+0x1f/0x70    dequeue_task_rt+0x2d/0x70    __schedule+0x1a8/0x7e0    ? blk_finish_plug+0x25/0x40    schedule+0x3c/0xb0    futex_wait_queue_me+0xb6/0x120    futex_wait+0xd9/0x240    do_futex+0x344/0xa90    ? get_mm_exe_file+0x30/0x60    ? audit_exe_compare+0x58/0x70    ? audit_filter_rules.constprop.26+0x65e/0x1220    __x64_sys_futex+0x148/0x1f0    do_syscall_64+0x30/0x80    entry_SYSCALL_64_after_hwframe+0x62/0xc7  -> BUG: unable to handle page fault for address: ffff8cf3608bc2c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? spurious_kernel_fault+0x171/0x1c0    ? exc_page_fault+0x3b6/0x520    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? asm_exc_page_fault+0x1e/0x30    ? _cond_resched+0x15/0x30    ? futex_wait_queue_me+0xc8/0x120    ? futex_wait+0xd9/0x240    ? try_to_wake_up+0x1b8/0x490    ? futex_wake+0x78/0x160    ? do_futex+0xcd/0xa90    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? plist_del+0x6a/0xd0    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? dequeue_pushable_task+0x20/0x70    ? __schedule+0x382/0x7e0    ? asm_sysvec_reschedule_i ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-07-04 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68811",
                        "url": "https://ubuntu.com/security/CVE-2025-68811",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: use rc_pageoff for memcpy byte offset  svc_rdma_copy_inline_range added rc_curpage (page index) to the page base instead of the byte offset rc_pageoff. Use rc_pageoff so copies land within the current page.  Found by ZeroPath (https://zeropath.com)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68810",
                        "url": "https://ubuntu.com/security/CVE-2025-68810",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot  Reject attempts to disable KVM_MEM_GUEST_MEMFD on a memslot that was initially created with a guest_memfd binding, as KVM doesn't support toggling KVM_MEM_GUEST_MEMFD on existing memslots.  KVM prevents enabling KVM_MEM_GUEST_MEMFD, but doesn't prevent clearing the flag.  Failure to reject the new memslot results in a use-after-free due to KVM not unbinding from the guest_memfd instance.  Unbinding on a FLAGS_ONLY change is easy enough, and can/will be done as a hardening measure (in anticipation of KVM supporting dirty logging on guest_memfd at some point), but fixing the use-after-free would only address the immediate symptom.    ==================================================================   BUG: KASAN: slab-use-after-free in kvm_gmem_release+0x362/0x400 [kvm]   Write of size 8 at addr ffff8881111ae908 by task repro/745    CPU: 7 UID: 1000 PID: 745 Comm: repro Not tainted 6.18.0-rc6-115d5de2eef3-next-kasan #3 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   Call Trace:    <TASK>    dump_stack_lvl+0x51/0x60    print_report+0xcb/0x5c0    kasan_report+0xb4/0xe0    kvm_gmem_release+0x362/0x400 [kvm]    __fput+0x2fa/0x9d0    task_work_run+0x12c/0x200    do_exit+0x6ae/0x2100    do_group_exit+0xa8/0x230    __x64_sys_exit_group+0x3a/0x50    x64_sys_call+0x737/0x740    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f581f2eac31    </TASK>    Allocated by task 745 on cpu 6 at 9.746971s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_kmalloc+0x77/0x90    kvm_set_memory_region.part.0+0x652/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53    Freed by task 745 on cpu 6 at 9.747467s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_save_free_info+0x37/0x50    __kasan_slab_free+0x3b/0x60    kfree+0xf5/0x440    kvm_set_memslot+0x3c2/0x1160 [kvm]    kvm_set_memory_region.part.0+0x86a/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71109",
                        "url": "https://ubuntu.com/security/CVE-2025-71109",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  MIPS: ftrace: Fix memory corruption when kernel is located beyond 32 bits  Since commit e424054000878 (\"MIPS: Tracing: Reduce the overhead of dynamic Function Tracer\"), the macro UASM_i_LA_mostly has been used, and this macro can generate more than 2 instructions. At the same time, the code in ftrace assumes that no more than 2 instructions can be generated, which is why it stores them in an int[2] array. However, as previously noted, the macro UASM_i_LA_mostly (and now UASM_i_LA) causes a buffer overflow when _mcount is beyond 32 bits. This leads to corruption of the variables located in the __read_mostly section.  This corruption was observed because the variable __cpu_primary_thread_mask was corrupted, causing a hang very early during boot.  This fix prevents the corruption by avoiding the generation of instructions if they could exceed 2 instructions in length. Fortunately, insn_la_mcount is only used if the instrumented code is located outside the kernel code section, so dynamic ftrace can still be used, albeit in a more limited scope. This is still preferable to corrupting memory and/or crashing the kernel.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68770",
                        "url": "https://ubuntu.com/security/CVE-2025-68770",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bnxt_en: Fix XDP_TX path  For XDP_TX action in bnxt_rx_xdp(), clearing of the event flags is not correct.  __bnxt_poll_work() -> bnxt_rx_pkt() -> bnxt_rx_xdp() may be looping within NAPI and some event flags may be set in earlier iterations.  In particular, if BNXT_TX_EVENT is set earlier indicating some XDP_TX packets are ready and pending, it will be cleared if it is XDP_TX action again.  Normally, we will set BNXT_TX_EVENT again when we successfully call __bnxt_xmit_xdp().  But if the TX ring has no more room, the flag will not be set.  This will cause the TX producer to be ahead but the driver will not hit the TX doorbell.  For multi-buf XDP_TX, there is no need to clear the event flags and set BNXT_AGG_EVENT.  The BNXT_AGG_EVENT flag should have been set earlier in bnxt_rx_pkt().  The visible symptom of this is that the RX ring associated with the TX XDP ring will eventually become empty and all packets will be dropped. Because this condition will cause the driver to not refill the RX ring seeing that the TX ring has forever pending XDP_TX packets.  The fix is to only clear BNXT_RX_EVENT when we have successfully called __bnxt_xmit_xdp().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71072",
                        "url": "https://ubuntu.com/security/CVE-2025-71072",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  shmem: fix recovery on rename failures  maple_tree insertions can fail if we are seriously short on memory; simple_offset_rename() does not recover well if it runs into that. The same goes for simple_offset_rename_exchange().  Moreover, shmem_whiteout() expects that if it succeeds, the caller will progress to d_move(), i.e. that shmem_rename2() won't fail past the successful call of shmem_whiteout().  Not hard to fix, fortunately - mtree_store() can't fail if the index we are trying to store into is already present in the tree as a singleton.  For simple_offset_rename_exchange() that's enough - we just need to be careful about the order of operations.  For simple_offset_rename() solution is to preinsert the target into the tree for new_dir; the rest can be done without any potentially failing operations.  That preinsertion has to be done in shmem_rename2() rather than in simple_offset_rename() itself - otherwise we'd need to deal with the possibility of failure after successful shmem_whiteout().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68374",
                        "url": "https://ubuntu.com/security/CVE-2025-68374",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: fix rcu protection in md_wakeup_thread  We attempted to use RCU to protect the pointer 'thread', but directly passed the value when calling md_wakeup_thread(). This means that the RCU pointer has been acquired before rcu_read_lock(), which renders rcu_read_lock() ineffective and could lead to a use-after-free.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68378",
                        "url": "https://ubuntu.com/security/CVE-2025-68378",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix stackmap overflow check in __bpf_get_stackid()  Syzkaller reported a KASAN slab-out-of-bounds write in __bpf_get_stackid() when copying stack trace data. The issue occurs when the perf trace  contains more stack entries than the stack map bucket can hold,  leading to an out-of-bounds write in the bucket's data array.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-57795",
                        "url": "https://ubuntu.com/security/CVE-2024-57795",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Remove the direct link to net_device  The similar patch in siw is in the link: https://git.kernel.org/rdma/rdma/c/16b87037b48889  This problem also occurred in RXE. The following analyze this problem. In the following Call Traces: \" BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 net/core/dev.c:8782 Read of size 4 at addr ffff8880554640b0 by task kworker/1:4/5295  CPU: 1 UID: 0 PID: 5295 Comm: kworker/1:4 Not tainted 6.12.0-rc3-syzkaller-00399-g9197b73fd7bb #0 Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: infiniband ib_cache_event_task 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:377 [inline]  print_report+0x169/0x550 mm/kasan/report.c:488  kasan_report+0x143/0x180 mm/kasan/report.c:601  dev_get_flags+0x188/0x1d0 net/core/dev.c:8782  rxe_query_port+0x12d/0x260 drivers/infiniband/sw/rxe/rxe_verbs.c:60  __ib_query_port drivers/infiniband/core/device.c:2111 [inline]  ib_query_port+0x168/0x7d0 drivers/infiniband/core/device.c:2143  ib_cache_update+0x1a9/0xb80 drivers/infiniband/core/cache.c:1494  ib_cache_event_task+0xf3/0x1e0 drivers/infiniband/core/cache.c:1568  process_one_work kernel/workqueue.c:3229 [inline]  process_scheduled_works+0xa65/0x1850 kernel/workqueue.c:3310  worker_thread+0x870/0xd30 kernel/workqueue.c:3391  kthread+0x2f2/0x390 kernel/kthread.c:389  ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:147  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244  </TASK> \"  1). In the link [1],  \"  infiniband syz2: set down \"  This means that on 839.350575, the event ib_cache_event_task was sent andi queued in ib_wq.  2). In the link [1],  \"  team0 (unregistering): Port device team_slave_0 removed \"  It indicates that before 843.251853, the net device should be freed.  3). In the link [1],  \"  BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 \"  This means that on 850.559070, this slab-use-after-free problem occurred.  In all, on 839.350575, the event ib_cache_event_task was sent and queued in ib_wq,  before 843.251853, the net device veth was freed.  on 850.559070, this event was executed, and the mentioned freed net device was called. Thus, the above call trace occurred.  [1] https://syzkaller.appspot.com/x/log.txt?x=12e7025f980000",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-01-15 13: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-71140",
                        "url": "https://ubuntu.com/security/CVE-2025-71140",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: mediatek: vcodec: Use spinlock for context list protection lock  Previously a mutex was added to protect the encoder and decoder context lists from unexpected changes originating from the SCP IP block, causing the context pointer to go invalid, resulting in a NULL pointer dereference in the IPI handler.  Turns out on the MT8173, the VPU IPI handler is called from hard IRQ context. This causes a big warning from the scheduler. This was first reported downstream on the ChromeOS kernels, but is also reproducible on mainline using Fluster with the FFmpeg v4l2m2m decoders. Even though the actual capture format is not supported, the affected code paths are triggered.  Since this lock just protects the context list and operations on it are very fast, it should be OK to switch to a spinlock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-68772",
                        "url": "https://ubuntu.com/security/CVE-2025-68772",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating compression context during writeback  Bai, Shuangpeng <sjb7183@psu.edu> reported a bug as below:  Oops: divide error: 0000 [#1] SMP KASAN PTI CPU: 0 UID: 0 PID: 11441 Comm: syz.0.46 Not tainted 6.17.0 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP: 0010:f2fs_all_cluster_page_ready+0x106/0x550 fs/f2fs/compress.c:857 Call Trace:  <TASK>  f2fs_write_cache_pages fs/f2fs/data.c:3078 [inline]  __f2fs_write_data_pages fs/f2fs/data.c:3290 [inline]  f2fs_write_data_pages+0x1c19/0x3600 fs/f2fs/data.c:3317  do_writepages+0x38e/0x640 mm/page-writeback.c:2634  filemap_fdatawrite_wbc mm/filemap.c:386 [inline]  __filemap_fdatawrite_range mm/filemap.c:419 [inline]  file_write_and_wait_range+0x2ba/0x3e0 mm/filemap.c:794  f2fs_do_sync_file+0x6e6/0x1b00 fs/f2fs/file.c:294  generic_write_sync include/linux/fs.h:3043 [inline]  f2fs_file_write_iter+0x76e/0x2700 fs/f2fs/file.c:5259  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x7e9/0xe00 fs/read_write.c:686  ksys_write+0x19d/0x2d0 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xf7/0x470 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The bug was triggered w/ below race condition:  fsync\t\t\t\tsetattr\t\t\tioctl - f2fs_do_sync_file  - file_write_and_wait_range   - f2fs_write_cache_pages   : inode is non-compressed   : cc.cluster_size =     F2FS_I(inode)->i_cluster_size = 0    - tag_pages_for_writeback \t\t\t\t- f2fs_setattr \t\t\t\t - truncate_setsize \t\t\t\t - f2fs_truncate \t\t\t\t\t\t\t- f2fs_fileattr_set \t\t\t\t\t\t\t - f2fs_setflags_common \t\t\t\t\t\t\t  - set_compress_context \t\t\t\t\t\t\t  : F2FS_I(inode)->i_cluster_size = 4 \t\t\t\t\t\t\t  : set_inode_flag(inode, FI_COMPRESSED_FILE)    - f2fs_compressed_file    : return true    - f2fs_all_cluster_page_ready    : \"pgidx % cc->cluster_size\" trigger dividing 0 issue  Let's change as below to fix this issue: - introduce a new atomic type variable .writeback in structure f2fs_inode_info to track the number of threads which calling f2fs_write_cache_pages(). - use .i_sem lock to protect .writeback update. - check .writeback before update compression context in f2fs_setflags_common() to avoid race w/ ->writepages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15: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-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-71141",
                        "url": "https://ubuntu.com/security/CVE-2025-71141",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/tilcdc: Fix removal actions in case of failed probe  The drm_kms_helper_poll_fini() and drm_atomic_helper_shutdown() helpers should only be called when the device has been successfully registered. Currently, these functions are called unconditionally in tilcdc_fini(), which causes warnings during probe deferral scenarios.  [    7.972317] WARNING: CPU: 0 PID: 23 at drivers/gpu/drm/drm_atomic_state_helper.c:175 drm_atomic_helper_crtc_duplicate_state+0x60/0x68 ... [    8.005820]  drm_atomic_helper_crtc_duplicate_state from drm_atomic_get_crtc_state+0x68/0x108 [    8.005858]  drm_atomic_get_crtc_state from drm_atomic_helper_disable_all+0x90/0x1c8 [    8.005885]  drm_atomic_helper_disable_all from drm_atomic_helper_shutdown+0x90/0x144 [    8.005911]  drm_atomic_helper_shutdown from tilcdc_fini+0x68/0xf8 [tilcdc] [    8.005957]  tilcdc_fini [tilcdc] from tilcdc_pdev_probe+0xb0/0x6d4 [tilcdc]  Fix this by rewriting the failed probe cleanup path using the standard goto error handling pattern, which ensures that cleanup functions are only called on successfully initialized resources. Additionally, remove the now-unnecessary is_registered flag.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 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-71088",
                        "url": "https://ubuntu.com/security/CVE-2025-71088",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fallback earlier on simult connection  Syzkaller reports a simult-connect race leading to inconsistent fallback status:    WARNING: CPU: 3 PID: 33 at net/mptcp/subflow.c:1515 subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Modules linked in:   CPU: 3 UID: 0 PID: 33 Comm: ksoftirqd/3 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:subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Code: 89 ee e8 78 61 3c f6 40 84 ed 75 21 e8 8e 66 3c f6 44 89 fe bf 07 00 00 00 e8 c1 61 3c f6 41 83 ff 07 74 09 e8 76 66 3c f6 90 <0f> 0b 90 e8 6d 66 3c f6 48 89 df e8 e5 ad ff ff 31 ff 89 c5 89 c6   RSP: 0018:ffffc900006cf338 EFLAGS: 00010246   RAX: 0000000000000000 RBX: ffff888031acd100 RCX: ffffffff8b7f2abf   RDX: ffff88801e6ea440 RSI: ffffffff8b7f2aca RDI: 0000000000000005   RBP: 0000000000000000 R08: 0000000000000005 R09: 0000000000000007   R10: 0000000000000004 R11: 0000000000002c10 R12: ffff88802ba69900   R13: 1ffff920000d9e67 R14: ffff888046f81800 R15: 0000000000000004   FS:  0000000000000000(0000) GS:ffff8880d69bc000(0000) knlGS:0000000000000000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 0000560fc0ca1670 CR3: 0000000032c3a000 CR4: 0000000000352ef0   Call Trace:    <TASK>    tcp_data_queue+0x13b0/0x4f90 net/ipv4/tcp_input.c:5197    tcp_rcv_state_process+0xfdf/0x4ec0 net/ipv4/tcp_input.c:6922    tcp_v6_do_rcv+0x492/0x1740 net/ipv6/tcp_ipv6.c:1672    tcp_v6_rcv+0x2976/0x41e0 net/ipv6/tcp_ipv6.c:1918    ip6_protocol_deliver_rcu+0x188/0x1520 net/ipv6/ip6_input.c:438    ip6_input_finish+0x1e4/0x4b0 net/ipv6/ip6_input.c:489    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ip6_input+0x105/0x2f0 net/ipv6/ip6_input.c:500    dst_input include/net/dst.h:471 [inline]    ip6_rcv_finish net/ipv6/ip6_input.c:79 [inline]    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ipv6_rcv+0x264/0x650 net/ipv6/ip6_input.c:311    __netif_receive_skb_one_core+0x12d/0x1e0 net/core/dev.c:5979    __netif_receive_skb+0x1d/0x160 net/core/dev.c:6092    process_backlog+0x442/0x15e0 net/core/dev.c:6444    __napi_poll.constprop.0+0xba/0x550 net/core/dev.c:7494    napi_poll net/core/dev.c:7557 [inline]    net_rx_action+0xa9f/0xfe0 net/core/dev.c:7684    handle_softirqs+0x216/0x8e0 kernel/softirq.c:579    run_ksoftirqd kernel/softirq.c:968 [inline]    run_ksoftirqd+0x3a/0x60 kernel/softirq.c:960    smpboot_thread_fn+0x3f7/0xae0 kernel/smpboot.c:160    kthread+0x3c2/0x780 kernel/kthread.c:463    ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148    ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245    </TASK>  The TCP subflow can process the simult-connect syn-ack packet after transitioning to TCP_FIN1 state, bypassing the MPTCP fallback check, as the sk_state_change() callback is not invoked for * -> FIN_WAIT1 transitions.  That will move the msk socket to an inconsistent status and the next incoming data will hit the reported splat.  Close the race moving the simult-fallback check at the earliest possible stage - that is at syn-ack generation time.  About the fixes tags: [2] was supposed to also fix this issue introduced by [3]. [1] is required as a dependence: it was not explicitly marked as a fix, but it is one and it has already been backported before [3]. In other words, this commit should be backported up to [3], including [2] and [1] if that's not already there.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71065",
                        "url": "https://ubuntu.com/security/CVE-2025-71065",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid potential deadlock  As Jiaming Zhang and syzbot reported, there is potential deadlock in f2fs as below:  Chain exists of:   &sbi->cp_rwsem --> fs_reclaim --> sb_internal#2   Possible unsafe locking scenario:         CPU0                    CPU1        ----                    ----   rlock(sb_internal#2);                                lock(fs_reclaim);                                lock(sb_internal#2);   rlock(&sbi->cp_rwsem);   *** DEADLOCK ***  3 locks held by kswapd0/73:  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat mm/vmscan.c:7015 [inline]  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0x951/0x2800 mm/vmscan.c:7389  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_trylock_shared fs/super.c:562 [inline]  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_cache_scan+0x91/0x4b0 fs/super.c:197  #2: ffff888011840610 (sb_internal#2){.+.+}-{0:0}, at: f2fs_evict_inode+0x8d9/0x1b60 fs/f2fs/inode.c:890  stack backtrace: CPU: 0 UID: 0 PID: 73 Comm: kswapd0 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 Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_circular_bug+0x2ee/0x310 kernel/locking/lockdep.c:2043  check_noncircular+0x134/0x160 kernel/locking/lockdep.c:2175  check_prev_add kernel/locking/lockdep.c:3165 [inline]  check_prevs_add kernel/locking/lockdep.c:3284 [inline]  validate_chain+0xb9b/0x2140 kernel/locking/lockdep.c:3908  __lock_acquire+0xab9/0xd20 kernel/locking/lockdep.c:5237  lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5868  down_read+0x46/0x2e0 kernel/locking/rwsem.c:1537  f2fs_down_read fs/f2fs/f2fs.h:2278 [inline]  f2fs_lock_op fs/f2fs/f2fs.h:2357 [inline]  f2fs_do_truncate_blocks+0x21c/0x10c0 fs/f2fs/file.c:791  f2fs_truncate_blocks+0x10a/0x300 fs/f2fs/file.c:867  f2fs_truncate+0x489/0x7c0 fs/f2fs/file.c:925  f2fs_evict_inode+0x9f2/0x1b60 fs/f2fs/inode.c:897  evict+0x504/0x9c0 fs/inode.c:810  f2fs_evict_inode+0x1dc/0x1b60 fs/f2fs/inode.c:853  evict+0x504/0x9c0 fs/inode.c:810  dispose_list fs/inode.c:852 [inline]  prune_icache_sb+0x21b/0x2c0 fs/inode.c:1000  super_cache_scan+0x39b/0x4b0 fs/super.c:224  do_shrink_slab+0x6ef/0x1110 mm/shrinker.c:437  shrink_slab_memcg mm/shrinker.c:550 [inline]  shrink_slab+0x7ef/0x10d0 mm/shrinker.c:628  shrink_one+0x28a/0x7c0 mm/vmscan.c:4955  shrink_many mm/vmscan.c:5016 [inline]  lru_gen_shrink_node mm/vmscan.c:5094 [inline]  shrink_node+0x315d/0x3780 mm/vmscan.c:6081  kswapd_shrink_node mm/vmscan.c:6941 [inline]  balance_pgdat mm/vmscan.c:7124 [inline]  kswapd+0x147c/0x2800 mm/vmscan.c:7389  kthread+0x70e/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>  The root cause is deadlock among four locks as below:  kswapd - fs_reclaim\t\t\t\t--- Lock A  - shrink_one   - evict    - f2fs_evict_inode     - sb_start_intwrite\t\t\t--- Lock B  - iput  - evict   - f2fs_evict_inode    - sb_start_intwrite\t\t\t--- Lock B    - f2fs_truncate     - f2fs_truncate_blocks      - f2fs_do_truncate_blocks       - f2fs_lock_op\t\t\t--- Lock C  ioctl - f2fs_ioc_commit_atomic_write  - f2fs_lock_op\t\t\t\t--- Lock C   - __f2fs_commit_atomic_write    - __replace_atomic_write_block     - f2fs_get_dnode_of_data      - __get_node_folio       - f2fs_check_nid_range        - f2fs_handle_error         - f2fs_record_errors          - f2fs_down_write\t\t--- Lock D  open - do_open  - do_truncate   - security_inode_need_killpriv    - f2fs_getxattr     - lookup_all_xattrs      - f2fs_handle_error       - f2fs_record_errors        - f2fs_down_write\t\t--- Lock D         - f2fs_commit_super          - read_mapping_folio           - filemap_alloc_folio_noprof            - prepare_alloc_pages             - fs_reclaim_acquire\t--- Lock A  In order to a ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68345",
                        "url": "https://ubuntu.com/security/CVE-2025-68345",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: hda: cs35l41: Fix NULL pointer dereference in cs35l41_hda_read_acpi()  The acpi_get_first_physical_node() function can return NULL, in which case the get_device() function also returns NULL, but this value is then dereferenced without checking,so add a check to prevent a crash.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11: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-71130",
                        "url": "https://ubuntu.com/security/CVE-2025-71130",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/gem: Zero-initialize the eb.vma array in i915_gem_do_execbuffer  Initialize the eb.vma array with values of 0 when the eb structure is first set up. In particular, this sets the eb->vma[i].vma pointers to NULL, simplifying cleanup and getting rid of the bug described below.  During the execution of eb_lookup_vmas(), the eb->vma array is successively filled up with struct eb_vma objects. This process includes calling eb_add_vma(), which might fail; however, even in the event of failure, eb->vma[i].vma is set for the currently processed buffer.  If eb_add_vma() fails, eb_lookup_vmas() returns with an error, which prompts a call to eb_release_vmas() to clean up the mess. Since eb_lookup_vmas() might fail during processing any (possibly not first) buffer, eb_release_vmas() checks whether a buffer's vma is NULL to know at what point did the lookup function fail.  In eb_lookup_vmas(), eb->vma[i].vma is set to NULL if either the helper function eb_lookup_vma() or eb_validate_vma() fails. eb->vma[i+1].vma is set to NULL in case i915_gem_object_userptr_submit_init() fails; the current one needs to be cleaned up by eb_release_vmas() at this point, so the next one is set. If eb_add_vma() fails, neither the current nor the next vma is set to NULL, which is a source of a NULL deref bug described in the issue linked in the Closes tag.  When entering eb_lookup_vmas(), the vma pointers are set to the slab poison value, instead of NULL. This doesn't matter for the actual lookup, since it gets overwritten anyway, however the eb_release_vmas() function only recognizes NULL as the stopping value, hence the pointers are being set to NULL as they go in case of intermediate failure. This patch changes the approach to filling them all with NULL at the start instead, rather than handling that manually during failure.  (cherry picked from commit 08889b706d4f0b8d2352b7ca29c2d8df4d0787cd)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71138",
                        "url": "https://ubuntu.com/security/CVE-2025-71138",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/msm/dpu: Add missing NULL pointer check for pingpong interface  It is checked almost always in dpu_encoder_phys_wb_setup_ctl(), but in a single place the check is missing. Also use convenient locals instead of phys_enc->* where available.  Patchwork: https://patchwork.freedesktop.org/patch/693860/",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16: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-71129",
                        "url": "https://ubuntu.com/security/CVE-2025-71129",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: BPF: Sign extend kfunc call arguments  The kfunc calls are native calls so they should follow LoongArch calling conventions. Sign extend its arguments properly to avoid kernel panic. This is done by adding a new emit_abi_ext() helper. The emit_abi_ext() helper performs extension in place meaning a value already store in the target register (Note: this is different from the existing sign_extend() helper and thus we can't reuse it).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-71143",
                        "url": "https://ubuntu.com/security/CVE-2025-71143",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  clk: samsung: exynos-clkout: Assign .num before accessing .hws  Commit f316cdff8d67 (\"clk: Annotate struct clk_hw_onecell_data with __counted_by\") annotated the hws member of 'struct clk_hw_onecell_data' with __counted_by, which informs the bounds sanitizer (UBSAN_BOUNDS) about the number of elements in .hws[], so that it can warn when .hws[] is accessed out of bounds. As noted in that change, the __counted_by member must be initialized with the number of elements before the first array access happens, otherwise there will be a warning from each access prior to the initialization because the number of elements is zero. This occurs in exynos_clkout_probe() due to .num being assigned after .hws[] has been accessed:    UBSAN: array-index-out-of-bounds in drivers/clk/samsung/clk-exynos-clkout.c:178:18   index 0 is out of range for type 'clk_hw *[*]'  Move the .num initialization to before the first access of .hws[], clearing up the warning.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-71089",
                        "url": "https://ubuntu.com/security/CVE-2025-71089",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu: disable SVA when CONFIG_X86 is set  Patch series \"Fix stale IOTLB entries for kernel address space\", v7.  This proposes a fix for a security vulnerability related to IOMMU Shared Virtual Addressing (SVA).  In an SVA context, an IOMMU can cache kernel page table entries.  When a kernel page table page is freed and reallocated for another purpose, the IOMMU might still hold stale, incorrect entries.  This can be exploited to cause a use-after-free or write-after-free condition, potentially leading to privilege escalation or data corruption.  This solution introduces a deferred freeing mechanism for kernel page table pages, which provides a safe window to notify the IOMMU to invalidate its caches before the page is reused.   This patch (of 8):  In the IOMMU Shared Virtual Addressing (SVA) context, the IOMMU hardware shares and walks the CPU's page tables.  The x86 architecture maps the kernel's virtual address space into the upper portion of every process's page table.  Consequently, in an SVA context, the IOMMU hardware can walk and cache kernel page table entries.  The Linux kernel currently lacks a notification mechanism for kernel page table changes, specifically when page table pages are freed and reused. The IOMMU driver is only notified of changes to user virtual address mappings.  This can cause the IOMMU's internal caches to retain stale entries for kernel VA.  Use-After-Free (UAF) and Write-After-Free (WAF) conditions arise when kernel page table pages are freed and later reallocated.  The IOMMU could misinterpret the new data as valid page table entries.  The IOMMU might then walk into attacker-controlled memory, leading to arbitrary physical memory DMA access or privilege escalation.  This is also a Write-After-Free issue, as the IOMMU will potentially continue to write Accessed and Dirty bits to the freed memory while attempting to walk the stale page tables.  Currently, SVA contexts are unprivileged and cannot access kernel mappings.  However, the IOMMU will still walk kernel-only page tables all the way down to the leaf entries, where it realizes the mapping is for the kernel and errors out.  This means the IOMMU still caches these intermediate page table entries, making the described vulnerability a real concern.  Disable SVA on x86 architecture until the IOMMU can receive notification to flush the paging cache before freeing the CPU kernel page table pages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16: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-71153",
                        "url": "https://ubuntu.com/security/CVE-2025-71153",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix memory leak in get_file_all_info()  In get_file_all_info(), if vfs_getattr() fails, the function returns immediately without freeing the allocated filename, leading to a memory leak.  Fix this by freeing the filename before returning in this error case.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 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-71095",
                        "url": "https://ubuntu.com/security/CVE-2025-71095",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: stmmac: fix the crash issue for zero copy XDP_TX action  There is a crash issue when running zero copy XDP_TX action, the crash log is shown below.  [  216.122464] Unable to handle kernel paging request at virtual address fffeffff80000000 [  216.187524] Internal error: Oops: 0000000096000144 [#1]  SMP [  216.301694] Call trace: [  216.304130]  dcache_clean_poc+0x20/0x38 (P) [  216.308308]  __dma_sync_single_for_device+0x1bc/0x1e0 [  216.313351]  stmmac_xdp_xmit_xdpf+0x354/0x400 [  216.317701]  __stmmac_xdp_run_prog+0x164/0x368 [  216.322139]  stmmac_napi_poll_rxtx+0xba8/0xf00 [  216.326576]  __napi_poll+0x40/0x218 [  216.408054] Kernel panic - not syncing: Oops: Fatal exception in interrupt  For XDP_TX action, the xdp_buff is converted to xdp_frame by xdp_convert_buff_to_frame(). The memory type of the resulting xdp_frame depends on the memory type of the xdp_buff. For page pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_POOL. For zero copy XSK pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_ORDER0. However, stmmac_xdp_xmit_back() does not check the memory type and always uses the page pool type, this leads to invalid mappings and causes the crash. Therefore, check the xdp_buff memory type in stmmac_xdp_xmit_back() to fix this issue.",
                        "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-71101",
                        "url": "https://ubuntu.com/security/CVE-2025-71101",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix out-of-bounds array access in ACPI package parsing  The hp_populate_*_elements_from_package() functions in the hp-bioscfg driver contain out-of-bounds array access vulnerabilities.  These functions parse ACPI packages into internal data structures using a for loop with index variable 'elem' that iterates through enum_obj/integer_obj/order_obj/password_obj/string_obj arrays.  When processing multi-element fields like PREREQUISITES and ENUM_POSSIBLE_VALUES, these functions read multiple consecutive array elements using expressions like 'enum_obj[elem + reqs]' and 'enum_obj[elem + pos_values]' within nested loops.  The bug is that the bounds check only validated elem, but did not consider the additional offset when accessing elem + reqs or elem + pos_values.  The fix changes the bounds check to validate the actual accessed index.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16: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-71071",
                        "url": "https://ubuntu.com/security/CVE-2025-71071",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu/mediatek: fix use-after-free on probe deferral  The driver is dropping the references taken to the larb devices during probe after successful lookup as well as on errors. This can potentially lead to a use-after-free in case a larb device has not yet been bound to its driver so that the iommu driver probe defers.  Fix this by keeping the references as expected while the iommu driver is bound.",
                        "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-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-71149",
                        "url": "https://ubuntu.com/security/CVE-2025-71149",
                        "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68778",
                        "url": "https://ubuntu.com/security/CVE-2025-68778",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: don't log conflicting inode if it's a dir moved in the current transaction  We can't log a conflicting inode if it's a directory and it was moved from one parent directory to another parent directory in the current transaction, as this can result an attempt to have a directory with two hard links during log replay, one for the old parent directory and another for the new parent directory.  The following scenario triggers that issue:  1) We have directories \"dir1\" and \"dir2\" created in a past transaction.    Directory \"dir1\" has inode A as its parent directory;  2) We move \"dir1\" to some other directory;  3) We create a file with the name \"dir1\" in directory inode A;  4) We fsync the new file. This results in logging the inode of the new file    and the inode for the directory \"dir1\" that was previously moved in the    current transaction. So the log tree has the INODE_REF item for the    new location of \"dir1\";  5) We move the new file to some other directory. This results in updating    the log tree to included the new INODE_REF for the new location of the    file and removes the INODE_REF for the old location. This happens    during the rename when we call btrfs_log_new_name();  6) We fsync the file, and that persists the log tree changes done in the    previous step (btrfs_log_new_name() only updates the log tree in    memory);  7) We have a power failure;  8) Next time the fs is mounted, log replay happens and when processing    the inode for directory \"dir1\" we find a new INODE_REF and add that    link, but we don't remove the old link of the inode since we have    not logged the old parent directory of the directory inode \"dir1\".  As a result after log replay finishes when we trigger writeback of the subvolume tree's extent buffers, the tree check will detect that we have a directory a hard link count of 2 and we get a mount failure. The errors and stack traces reported in dmesg/syslog are like this:     [ 3845.729764] BTRFS info (device dm-0): start tree-log replay    [ 3845.730304] page: refcount:3 mapcount:0 mapping:000000005c8a3027 index:0x1d00 pfn:0x11510c    [ 3845.731236] memcg:ffff9264c02f4e00    [ 3845.731751] aops:btree_aops [btrfs] ino:1    [ 3845.732300] flags: 0x17fffc00000400a(uptodate|private|writeback|node=0|zone=2|lastcpupid=0x1ffff)    [ 3845.733346] raw: 017fffc00000400a 0000000000000000 dead000000000122 ffff9264d978aea8    [ 3845.734265] raw: 0000000000001d00 ffff92650e6d4738 00000003ffffffff ffff9264c02f4e00    [ 3845.735305] page dumped because: eb page dump    [ 3845.735981] BTRFS critical (device dm-0): corrupt leaf: root=5 block=30408704 slot=6 ino=257, invalid nlink: has 2 expect no more than 1 for dir    [ 3845.737786] BTRFS info (device dm-0): leaf 30408704 gen 10 total ptrs 17 free space 14881 owner 5    [ 3845.737789] BTRFS info (device dm-0): refs 4 lock_owner 0 current 30701    [ 3845.737792] \titem 0 key (256 INODE_ITEM 0) itemoff 16123 itemsize 160    [ 3845.737794] \t\tinode generation 3 transid 9 size 16 nbytes 16384    [ 3845.737795] \t\tblock group 0 mode 40755 links 1 uid 0 gid 0    [ 3845.737797] \t\trdev 0 sequence 2 flags 0x0    [ 3845.737798] \t\tatime 1764259517.0    [ 3845.737800] \t\tctime 1764259517.572889464    [ 3845.737801] \t\tmtime 1764259517.572889464    [ 3845.737802] \t\totime 1764259517.0    [ 3845.737803] \titem 1 key (256 INODE_REF 256) itemoff 16111 itemsize 12    [ 3845.737805] \t\tindex 0 name_len 2    [ 3845.737807] \titem 2 key (256 DIR_ITEM 2363071922) itemoff 16077 itemsize 34    [ 3845.737808] \t\tlocation key (257 1 0) type 2    [ 3845.737810] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737811] \titem 3 key (256 DIR_ITEM 2676584006) itemoff 16043 itemsize 34    [ 3845.737813] \t\tlocation key (258 1 0) type 2    [ 3845.737814] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737815] \titem 4 key (256 DIR_INDEX 2) itemoff 16009 itemsize 34    [ 3845.737816] \t\tlocation key (257 1 0) type 2    [ ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71119",
                        "url": "https://ubuntu.com/security/CVE-2025-71119",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/kexec: Enable SMT before waking offline CPUs  If SMT is disabled or a partial SMT state is enabled, when a new kernel image is loaded for kexec, on reboot the following warning is observed:  kexec: Waking offline cpu 228. WARNING: CPU: 0 PID: 9062 at arch/powerpc/kexec/core_64.c:223 kexec_prepare_cpus+0x1b0/0x1bc [snip]  NIP kexec_prepare_cpus+0x1b0/0x1bc  LR  kexec_prepare_cpus+0x1a0/0x1bc  Call Trace:   kexec_prepare_cpus+0x1a0/0x1bc (unreliable)   default_machine_kexec+0x160/0x19c   machine_kexec+0x80/0x88   kernel_kexec+0xd0/0x118   __do_sys_reboot+0x210/0x2c4   system_call_exception+0x124/0x320   system_call_vectored_common+0x15c/0x2ec  This occurs as add_cpu() fails due to cpu_bootable() returning false for CPUs that fail the cpu_smt_thread_allowed() check or non primary threads if SMT is disabled.  Fix the issue by enabling SMT and resetting the number of SMT threads to the number of threads per core, before attempting to wake up all present CPUs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-71148",
                        "url": "https://ubuntu.com/security/CVE-2025-71148",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: restore destructor on submit failure  handshake_req_submit() replaces sk->sk_destruct but never restores it when submission fails before the request is hashed. handshake_sk_destruct() then returns early and the original destructor never runs, leaking the socket. Restore sk_destruct on the error path.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15: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-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-71107",
                        "url": "https://ubuntu.com/security/CVE-2025-71107",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: ensure node page reads complete before f2fs_put_super() finishes  Xfstests generic/335, generic/336 sometimes crash with the following message:  F2FS-fs (dm-0): detect filesystem reference count leak during umount, type: 9, count: 1 ------------[ cut here ]------------ kernel BUG at fs/f2fs/super.c:1939! Oops: invalid opcode: 0000 [#1] SMP NOPTI CPU: 1 UID: 0 PID: 609351 Comm: umount Tainted: G        W          6.17.0-rc5-xfstests-g9dd1835ecda5 #1 PREEMPT(none) Tainted: [W]=WARN Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:f2fs_put_super+0x3b3/0x3c0 Call Trace:  <TASK>  generic_shutdown_super+0x7e/0x190  kill_block_super+0x1a/0x40  kill_f2fs_super+0x9d/0x190  deactivate_locked_super+0x30/0xb0  cleanup_mnt+0xba/0x150  task_work_run+0x5c/0xa0  exit_to_user_mode_loop+0xb7/0xc0  do_syscall_64+0x1ae/0x1c0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  </TASK> ---[ end trace 0000000000000000 ]---  It appears that sometimes it is possible that f2fs_put_super() is called before all node page reads are completed. Adding a call to f2fs_wait_on_all_pages() for F2FS_RD_NODE fixes the problem.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15: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-71126",
                        "url": "https://ubuntu.com/security/CVE-2025-71126",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: avoid deadlock on fallback while reinjecting  Jakub reported an MPTCP deadlock at fallback time:   WARNING: possible recursive locking detected  6.18.0-rc7-virtme #1 Not tainted  --------------------------------------------  mptcp_connect/20858 is trying to acquire lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_try_fallback+0xd8/0x280   but task is already holding lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   other info that might help us debug this:   Possible unsafe locking scenario:          CPU0         ----    lock(&msk->fallback_lock);    lock(&msk->fallback_lock);    *** DEADLOCK ***    May be due to missing lock nesting notation   3 locks held by mptcp_connect/20858:   #0: ff1100001da18290 (sk_lock-AF_INET){+.+.}-{0:0}, at: mptcp_sendmsg+0x114/0x1bc0   #1: ff1100001db40fd0 (k-sk_lock-AF_INET#2){+.+.}-{0:0}, at: __mptcp_retrans+0x2cb/0xaa0   #2: ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   stack backtrace:  CPU: 0 UID: 0 PID: 20858 Comm: mptcp_connect Not tainted 6.18.0-rc7-virtme #1 PREEMPT(full)  Hardware name: Bochs, BIOS Bochs 01/01/2011  Call Trace:   <TASK>   dump_stack_lvl+0x6f/0xa0   print_deadlock_bug.cold+0xc0/0xcd   validate_chain+0x2ff/0x5f0   __lock_acquire+0x34c/0x740   lock_acquire.part.0+0xbc/0x260   _raw_spin_lock_bh+0x38/0x50   __mptcp_try_fallback+0xd8/0x280   mptcp_sendmsg_frag+0x16c2/0x3050   __mptcp_retrans+0x421/0xaa0   mptcp_release_cb+0x5aa/0xa70   release_sock+0xab/0x1d0   mptcp_sendmsg+0xd5b/0x1bc0   sock_write_iter+0x281/0x4d0   new_sync_write+0x3c5/0x6f0   vfs_write+0x65e/0xbb0   ksys_write+0x17e/0x200   do_syscall_64+0xbb/0xfd0   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7fa5627cbc5e  Code: 4d 89 d8 e8 14 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa  RSP: 002b:00007fff1fe14700 EFLAGS: 00000202 ORIG_RAX: 0000000000000001  RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00007fa5627cbc5e  RDX: 0000000000001f9c RSI: 00007fff1fe16984 RDI: 0000000000000005  RBP: 00007fff1fe14710 R08: 0000000000000000 R09: 0000000000000000  R10: 0000000000000000 R11: 0000000000000202 R12: 00007fff1fe16920  R13: 0000000000002000 R14: 0000000000001f9c R15: 0000000000001f9c  The packet scheduler could attempt a reinjection after receiving an MP_FAIL and before the infinite map has been transmitted, causing a deadlock since MPTCP needs to do the reinjection atomically from WRT fallback.  Address the issue explicitly avoiding the reinjection in the critical scenario. Note that this is the only fallback critical section that could potentially send packets and hit the double-lock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-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-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-71151",
                        "url": "https://ubuntu.com/security/CVE-2025-71151",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cifs: Fix memory and information leak in smb3_reconfigure()  In smb3_reconfigure(), if smb3_sync_session_ctx_passwords() fails, the function returns immediately without freeing and erasing the newly allocated new_password and new_password2. This causes both a memory leak and a potential information leak.  Fix this by calling kfree_sensitive() on both password buffers before returning in this error case.",
                        "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-68773",
                        "url": "https://ubuntu.com/security/CVE-2025-68773",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: fsl-cpm: Check length parity before switching to 16 bit mode  Commit fc96ec826bce (\"spi: fsl-cpm: Use 16 bit mode for large transfers with even size\") failed to make sure that the size is really even before switching to 16 bit mode. Until recently the problem went unnoticed because kernfs uses a pre-allocated bounce buffer of size PAGE_SIZE for reading EEPROM.  But commit 8ad6249c51d0 (\"eeprom: at25: convert to spi-mem API\") introduced an additional dynamically allocated bounce buffer whose size is exactly the size of the transfer, leading to a buffer overrun in the fsl-cpm driver when that size is odd.  Add the missing length parity verification and remain in 8 bit mode when the length is not even.",
                        "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-68806",
                        "url": "https://ubuntu.com/security/CVE-2025-68806",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix buffer validation by including null terminator size in EA length  The smb2_set_ea function, which handles Extended Attributes (EA), was performing buffer validation checks that incorrectly omitted the size of the null terminating character (+1 byte) for EA Name. This patch fixes the issue by explicitly adding '+ 1' to EaNameLength where the null terminator is expected to be present in the buffer, ensuring the validation accurately reflects the total required buffer size.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71150",
                        "url": "https://ubuntu.com/security/CVE-2025-71150",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix refcount leak when invalid session is found on session lookup  When a session is found but its state is not SMB2_SESSION_VALID, It indicates that no valid session was found, but it is missing to decrement the reference count acquired by the session lookup, which results in a reference count leak. This patch fixes the issue by explicitly calling ksmbd_user_session_put to release the reference to the session.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68786",
                        "url": "https://ubuntu.com/security/CVE-2025-68786",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: skip lock-range check on equal size to avoid size==0 underflow  When size equals the current i_size (including 0), the code used to call check_lock_range(filp, i_size, size - 1, WRITE), which computes `size - 1` and can underflow for size==0. Skip the equal case.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68789",
                        "url": "https://ubuntu.com/security/CVE-2025-68789",
                        "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                        "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-68775",
                        "url": "https://ubuntu.com/security/CVE-2025-68775",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: duplicate handshake cancellations leak socket  When a handshake request is cancelled it is removed from the handshake_net->hn_requests list, but it is still present in the handshake_rhashtbl until it is destroyed.  If a second cancellation request arrives for the same handshake request, then remove_pending() will return false... and assuming HANDSHAKE_F_REQ_COMPLETED isn't set in req->hr_flags, we'll continue processing through the out_true label, where we put another reference on the sock and a refcount underflow occurs.  This can happen for example if a handshake times out - particularly if the SUNRPC client sends the AUTH_TLS probe to the server but doesn't follow it up with the ClientHello due to a problem with tlshd.  When the timeout is hit on the server, the server will send a FIN, which triggers a cancellation request via xs_reset_transport().  When the timeout is hit on the client, another cancellation request happens via xs_tls_handshake_sync().  Add a test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED) in the pending cancel path so duplicate cancels can be detected.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15: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-71122",
                        "url": "https://ubuntu.com/security/CVE-2025-71122",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommufd/selftest: Check for overflow in IOMMU_TEST_OP_ADD_RESERVED  syzkaller found it could overflow math in the test infrastructure and cause a WARN_ON by corrupting the reserved interval tree. This only effects test kernels with CONFIG_IOMMUFD_TEST.  Validate the user input length in the test ioctl.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-68809",
                        "url": "https://ubuntu.com/security/CVE-2025-68809",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: vfs: fix race on m_flags in vfs_cache  ksmbd maintains delete-on-close and pending-delete state in ksmbd_inode->m_flags. In vfs_cache.c this field is accessed under inconsistent locking: some paths read and modify m_flags under ci->m_lock while others do so without taking the lock at all.  Examples:   - ksmbd_query_inode_status() and __ksmbd_inode_close() use    ci->m_lock when checking or updating m_flags.  - ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete() and ksmbd_fd_set_delete_on_close()    used to read and modify m_flags without ci->m_lock.  This creates a potential data race on m_flags when multiple threads open, close and delete the same file concurrently. In the worst case delete-on-close and pending-delete bits can be lost or observed in an inconsistent state, leading to confusing delete semantics (files that stay on disk after delete-on-close, or files that disappear while still in use).  Fix it by:   - Making ksmbd_query_inode_status() look at m_flags under ci->m_lock    after dropping inode_hash_lock.  - Adding ci->m_lock protection to all helpers that read or modify    m_flags (ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete(), ksmbd_fd_set_delete_on_close()).  - Keeping the existing ci->m_lock protection in __ksmbd_inode_close(),    and moving the actual unlink/xattr removal outside the lock.  This unifies the locking around m_flags and removes the data race while preserving the existing delete-on-close behaviour.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68817",
                        "url": "https://ubuntu.com/security/CVE-2025-68817",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency  Under high concurrency, A tree-connection object (tcon) is freed on a disconnect path while another path still holds a reference and later executes *_put()/write on it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16: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-71067",
                        "url": "https://ubuntu.com/security/CVE-2025-71067",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs: set dummy blocksize to read boot_block when mounting  When mounting, sb->s_blocksize is used to read the boot_block without being defined or validated. Set a dummy blocksize before attempting to read the boot_block.  The issue can be triggered with the following syz reproducer:    mkdirat(0xffffffffffffff9c, &(0x7f0000000080)='./file1\\x00', 0x0)   r4 = openat$nullb(0xffffffffffffff9c, &(0x7f0000000040), 0x121403, 0x0)   ioctl$FS_IOC_SETFLAGS(r4, 0x40081271, &(0x7f0000000980)=0x4000)   mount(&(0x7f0000000140)=@nullb, &(0x7f0000000040)='./cgroup\\x00',         &(0x7f0000000000)='ntfs3\\x00', 0x2208004, 0x0)   syz_clone(0x88200200, 0x0, 0x0, 0x0, 0x0, 0x0)  Here, the ioctl sets the bdev block size to 16384. During mount, get_tree_bdev_flags() calls sb_set_blocksize(sb, block_size(bdev)), but since block_size(bdev) > PAGE_SIZE, sb_set_blocksize() leaves sb->s_blocksize at zero.  Later, ntfs_init_from_boot() attempts to read the boot_block while sb->s_blocksize is still zero, which triggers the bug.  [almaz.alexandrovich@paragon-software.com: changed comment style, added return value handling]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16: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-68798",
                        "url": "https://ubuntu.com/security/CVE-2025-68798",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf/x86/amd: Check event before enable to avoid GPF  On AMD machines cpuc->events[idx] can become NULL in a subtle race condition with NMI->throttle->x86_pmu_stop().  Check event for NULL in amd_pmu_enable_all() before enable to avoid a GPF. This appears to be an AMD only issue.  Syzkaller reported a GPF in amd_pmu_enable_all.  INFO: NMI handler (perf_event_nmi_handler) took too long to run: 13.143     msecs Oops: general protection fault, probably for non-canonical address     0xdffffc0000000034: 0000  PREEMPT SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x00000000000001a0-0x00000000000001a7] CPU: 0 UID: 0 PID: 328415 Comm: repro_36674776 Not tainted 6.12.0-rc1-syzk RIP: 0010:x86_pmu_enable_event (arch/x86/events/perf_event.h:1195     arch/x86/events/core.c:1430) RSP: 0018:ffff888118009d60 EFLAGS: 00010012 RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000000034 RSI: 0000000000000000 RDI: 00000000000001a0 RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000002 R13: ffff88811802a440 R14: ffff88811802a240 R15: ffff8881132d8601 FS:  00007f097dfaa700(0000) GS:ffff888118000000(0000) GS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000200001c0 CR3: 0000000103d56000 CR4: 00000000000006f0 Call Trace:  <IRQ> amd_pmu_enable_all (arch/x86/events/amd/core.c:760 (discriminator 2)) x86_pmu_enable (arch/x86/events/core.c:1360) event_sched_out (kernel/events/core.c:1191 kernel/events/core.c:1186     kernel/events/core.c:2346) __perf_remove_from_context (kernel/events/core.c:2435) event_function (kernel/events/core.c:259) remote_function (kernel/events/core.c:92 (discriminator 1)     kernel/events/core.c:72 (discriminator 1)) __flush_smp_call_function_queue (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207 ./include/trace/events/csd.h:64     kernel/smp.c:135 kernel/smp.c:540) __sysvec_call_function_single (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207     ./arch/x86/include/asm/trace/irq_vectors.h:99 arch/x86/kernel/smp.c:272) sysvec_call_function_single (arch/x86/kernel/smp.c:266 (discriminator 47)     arch/x86/kernel/smp.c:266 (discriminator 47))  </IRQ>",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68794",
                        "url": "https://ubuntu.com/security/CVE-2025-68794",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iomap: adjust read range correctly for non-block-aligned positions  iomap_adjust_read_range() assumes that the position and length passed in are block-aligned. This is not always the case however, as shown in the syzbot generated case for erofs. This causes too many bytes to be skipped for uptodate blocks, which results in returning the incorrect position and length to read in. If all the blocks are uptodate, this underflows length and returns a position beyond the folio.  Fix the calculation to also take into account the block offset when calculating how many bytes can be skipped for uptodate blocks.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16: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-68766",
                        "url": "https://ubuntu.com/security/CVE-2025-68766",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()  If irq_domain_translate_twocell() sets \"hwirq\" to >= MCHP_EIC_NIRQ (2) then it results in an out of bounds access.  The code checks for invalid values, but doesn't set the error code.  Return -EINVAL in that case, instead of returning success.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68756",
                        "url": "https://ubuntu.com/security/CVE-2025-68756",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  block: Use RCU in blk_mq_[un]quiesce_tagset() instead of set->tag_list_lock  blk_mq_{add,del}_queue_tag_set() functions add and remove queues from tagset, the functions make sure that tagset and queues are marked as shared when two or more queues are attached to the same tagset. Initially a tagset starts as unshared and when the number of added queues reaches two, blk_mq_add_queue_tag_set() marks it as shared along with all the queues attached to it. When the number of attached queues drops to 1 blk_mq_del_queue_tag_set() need to mark both the tagset and the remaining queues as unshared.  Both functions need to freeze current queues in tagset before setting on unsetting BLK_MQ_F_TAG_QUEUE_SHARED flag. While doing so, both functions hold set->tag_list_lock mutex, which makes sense as we do not want queues to be added or deleted in the process. This used to work fine until commit 98d81f0df70c (\"nvme: use blk_mq_[un]quiesce_tagset\") made the nvme driver quiesce tagset instead of quiscing individual queues. blk_mq_quiesce_tagset() does the job and quiesce the queues in set->tag_list while holding set->tag_list_lock also.  This results in deadlock between two threads with these stacktraces:    __schedule+0x47c/0xbb0   ? timerqueue_add+0x66/0xb0   schedule+0x1c/0xa0   schedule_preempt_disabled+0xa/0x10   __mutex_lock.constprop.0+0x271/0x600   blk_mq_quiesce_tagset+0x25/0xc0   nvme_dev_disable+0x9c/0x250   nvme_timeout+0x1fc/0x520   blk_mq_handle_expired+0x5c/0x90   bt_iter+0x7e/0x90   blk_mq_queue_tag_busy_iter+0x27e/0x550   ? __blk_mq_complete_request_remote+0x10/0x10   ? __blk_mq_complete_request_remote+0x10/0x10   ? __call_rcu_common.constprop.0+0x1c0/0x210   blk_mq_timeout_work+0x12d/0x170   process_one_work+0x12e/0x2d0   worker_thread+0x288/0x3a0   ? rescuer_thread+0x480/0x480   kthread+0xb8/0xe0   ? kthread_park+0x80/0x80   ret_from_fork+0x2d/0x50   ? kthread_park+0x80/0x80   ret_from_fork_asm+0x11/0x20    __schedule+0x47c/0xbb0   ? xas_find+0x161/0x1a0   schedule+0x1c/0xa0   blk_mq_freeze_queue_wait+0x3d/0x70   ? destroy_sched_domains_rcu+0x30/0x30   blk_mq_update_tag_set_shared+0x44/0x80   blk_mq_exit_queue+0x141/0x150   del_gendisk+0x25a/0x2d0   nvme_ns_remove+0xc9/0x170   nvme_remove_namespaces+0xc7/0x100   nvme_remove+0x62/0x150   pci_device_remove+0x23/0x60   device_release_driver_internal+0x159/0x200   unbind_store+0x99/0xa0   kernfs_fop_write_iter+0x112/0x1e0   vfs_write+0x2b1/0x3d0   ksys_write+0x4e/0xb0   do_syscall_64+0x5b/0x160   entry_SYSCALL_64_after_hwframe+0x4b/0x53  The top stacktrace is showing nvme_timeout() called to handle nvme command timeout. timeout handler is trying to disable the controller and as a first step, it needs to blk_mq_quiesce_tagset() to tell blk-mq not to call queue callback handlers. The thread is stuck waiting for set->tag_list_lock as it tries to walk the queues in set->tag_list.  The lock is held by the second thread in the bottom stack which is waiting for one of queues to be frozen. The queue usage counter will drop to zero after nvme_timeout() finishes, and this will not happen because the thread will wait for this mutex forever.  Given that [un]quiescing queue is an operation that does not need to sleep, update blk_mq_[un]quiesce_tagset() to use RCU instead of taking set->tag_list_lock, update blk_mq_{add,del}_queue_tag_set() to use RCU safe list operations. Also, delete INIT_LIST_HEAD(&q->tag_set_list) in blk_mq_del_queue_tag_set() because we can not re-initialize it while the list is being traversed under RCU. The deleted queue will not be added/deleted to/from a tagset and it will be freed in blk_free_queue() after the end of RCU grace period.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68753",
                        "url": "https://ubuntu.com/security/CVE-2025-68753",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: add bounds check in put_user loop for DSP events  In the DSP event handling code, a put_user() loop copies event data. When the user buffer size is not aligned to 4 bytes, it could overwrite beyond the buffer boundary.  Fix by adding a bounds check before put_user().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68347",
                        "url": "https://ubuntu.com/security/CVE-2025-68347",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: fix buffer overflow in hwdep read for DSP events  The DSP event handling code in hwdep_read() could write more bytes to the user buffer than requested, when a user provides a buffer smaller than the event header size (8 bytes).  Fix by using min_t() to clamp the copy size, This ensures we never copy more than the user requested.",
                        "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-68763",
                        "url": "https://ubuntu.com/security/CVE-2025-68763",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: starfive - Correctly handle return of sg_nents_for_len  The return value of sg_nents_for_len was assigned to an unsigned long in starfive_hash_digest, causing negative error codes to be converted to large positive integers.  Add error checking for sg_nents_for_len and return immediately on failure to prevent potential buffer overflows.",
                        "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-68741",
                        "url": "https://ubuntu.com/security/CVE-2025-68741",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Fix improper freeing of purex item  In qla2xxx_process_purls_iocb(), an item is allocated via qla27xx_copy_multiple_pkt(), which internally calls qla24xx_alloc_purex_item().  The qla24xx_alloc_purex_item() function may return a pre-allocated item from a per-adapter pool for small allocations, instead of dynamically allocating memory with kzalloc().  An error handling path in qla2xxx_process_purls_iocb() incorrectly uses kfree() to release the item. If the item was from the pre-allocated pool, calling kfree() on it is a bug that can lead to memory corruption.  Fix this by using the correct deallocation function, qla24xx_free_purex_item(), which properly handles both dynamically allocated and pre-allocated items.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68742",
                        "url": "https://ubuntu.com/security/CVE-2025-68742",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix invalid prog->stats access when update_effective_progs fails  Syzkaller triggers an invalid memory access issue following fault injection in update_effective_progs. The issue can be described as follows:  __cgroup_bpf_detach   update_effective_progs     compute_effective_progs       bpf_prog_array_alloc <-- fault inject   purge_effective_progs     /* change to dummy_bpf_prog */     array->items[index] = &dummy_bpf_prog.prog  ---softirq start--- __do_softirq   ...     __cgroup_bpf_run_filter_skb       __bpf_prog_run_save_cb         bpf_prog_run           stats = this_cpu_ptr(prog->stats)           /* invalid memory access */           flags = u64_stats_update_begin_irqsave(&stats->syncp) ---softirq end---    static_branch_dec(&cgroup_bpf_enabled_key[atype])  The reason is that fault injection caused update_effective_progs to fail and then changed the original prog into dummy_bpf_prog.prog in purge_effective_progs. Then a softirq came, and accessing the members of dummy_bpf_prog.prog in the softirq triggers invalid mem access.  To fix it, skip updating stats when stats is NULL.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16: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-68363",
                        "url": "https://ubuntu.com/security/CVE-2025-68363",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Check skb->transport_header is set in bpf_skb_check_mtu  The bpf_skb_check_mtu helper needs to use skb->transport_header when the BPF_MTU_CHK_SEGS flag is used:  \tbpf_skb_check_mtu(skb, ifindex, &mtu_len, 0, BPF_MTU_CHK_SEGS)  The transport_header is not always set. There is a WARN_ON_ONCE report when CONFIG_DEBUG_NET is enabled + skb->gso_size is set + bpf_prog_test_run is used:  WARNING: CPU: 1 PID: 2216 at ./include/linux/skbuff.h:3071  skb_gso_validate_network_len  bpf_skb_check_mtu  bpf_prog_3920e25740a41171_tc_chk_segs_flag # A test in the next patch  bpf_test_run  bpf_prog_test_run_skb  For a normal ingress skb (not test_run), skb_reset_transport_header is performed but there is plan to avoid setting it as described in commit 2170a1f09148 (\"net: no longer reset transport_header in __netif_receive_skb_core()\").  This patch fixes the bpf helper by checking skb_transport_header_was_set(). The check is done just before skb->transport_header is used, to avoid breaking the existing bpf prog. The WARN_ON_ONCE is limited to bpf_prog_test_run, so targeting bpf-next.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68744",
                        "url": "https://ubuntu.com/security/CVE-2025-68744",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Free special fields when update [lru_,]percpu_hash maps  As [lru_,]percpu_hash maps support BPF_KPTR_{REF,PERCPU}, missing calls to 'bpf_obj_free_fields()' in 'pcpu_copy_value()' could cause the memory referenced by BPF_KPTR_{REF,PERCPU} fields to be held until the map gets freed.  Fix this by calling 'bpf_obj_free_fields()' after 'copy_map_value[,_long]()' in 'pcpu_copy_value()'.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16: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-68755",
                        "url": "https://ubuntu.com/security/CVE-2025-68755",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: most: remove broken i2c driver  The MOST I2C driver has been completely broken for five years without anyone noticing so remove the driver from staging.  Specifically, commit 723de0f9171e (\"staging: most: remove device from interface structure\") started requiring drivers to set the interface device pointer before registration, but the I2C driver was never updated which results in a NULL pointer dereference if anyone ever tries to probe it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68371",
                        "url": "https://ubuntu.com/security/CVE-2025-68371",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: smartpqi: Fix device resources accessed after device removal  Correct possible race conditions during device removal.  Previously, a scheduled work item to reset a LUN could still execute after the device was removed, leading to use-after-free and other resource access issues.  This race condition occurs because the abort handler may schedule a LUN reset concurrently with device removal via sdev_destroy(), leading to use-after-free and improper access to freed resources.    - Check in the device reset handler if the device is still present in     the controller's SCSI device list before running; if not, the reset     is skipped.    - Cancel any pending TMF work that has not started in sdev_destroy().    - Ensure device freeing in sdev_destroy() is done while holding the     LUN reset mutex to avoid races with ongoing resets.",
                        "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-68379",
                        "url": "https://ubuntu.com/security/CVE-2025-68379",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Fix null deref on srq->rq.queue after resize failure  A NULL pointer dereference can occur in rxe_srq_chk_attr() when ibv_modify_srq() is invoked twice in succession under certain error conditions. The first call may fail in rxe_queue_resize(), which leads rxe_srq_from_attr() to set srq->rq.queue = NULL. The second call then triggers a crash (null deref) when accessing srq->rq.queue->buf->index_mask.  Call Trace: <TASK> rxe_modify_srq+0x170/0x480 [rdma_rxe] ? __pfx_rxe_modify_srq+0x10/0x10 [rdma_rxe] ? uverbs_try_lock_object+0x4f/0xa0 [ib_uverbs] ? rdma_lookup_get_uobject+0x1f0/0x380 [ib_uverbs] ib_uverbs_modify_srq+0x204/0x290 [ib_uverbs] ? __pfx_ib_uverbs_modify_srq+0x10/0x10 [ib_uverbs] ? tryinc_node_nr_active+0xe6/0x150 ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x2c0/0x470 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_run_method+0x55a/0x6e0 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ib_uverbs_cmd_verbs+0x54d/0x800 [ib_uverbs] ? __pfx_ib_uverbs_cmd_verbs+0x10/0x10 [ib_uverbs] ? __pfx___raw_spin_lock_irqsave+0x10/0x10 ? __pfx_do_vfs_ioctl+0x10/0x10 ? ioctl_has_perm.constprop.0.isra.0+0x2c7/0x4c0 ? __pfx_ioctl_has_perm.constprop.0.isra.0+0x10/0x10 ib_uverbs_ioctl+0x13e/0x220 [ib_uverbs] ? __pfx_ib_uverbs_ioctl+0x10/0x10 [ib_uverbs] __x64_sys_ioctl+0x138/0x1c0 do_syscall_64+0x82/0x250 ? fdget_pos+0x58/0x4c0 ? ksys_write+0xf3/0x1c0 ? __pfx_ksys_write+0x10/0x10 ? do_syscall_64+0xc8/0x250 ? __pfx_vm_mmap_pgoff+0x10/0x10 ? fget+0x173/0x230 ? fput+0x2a/0x80 ? ksys_mmap_pgoff+0x224/0x4c0 ? do_syscall_64+0xc8/0x250 ? do_user_addr_fault+0x37b/0xfe0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 entry_SYSCALL_64_after_hwframe+0x76/0x7e",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68380",
                        "url": "https://ubuntu.com/security/CVE-2025-68380",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix peer HE MCS assignment  In ath11k_wmi_send_peer_assoc_cmd(), peer's transmit MCS is sent to firmware as receive MCS while peer's receive MCS sent as transmit MCS, which goes against firmwire's definition.  While connecting to a misbehaved AP that advertises 0xffff (meaning not supported) for 160 MHz transmit MCS map, firmware crashes due to 0xffff is assigned to he_mcs->rx_mcs_set field.  \tExt Tag: HE Capabilities \t    [...] \t    Supported HE-MCS and NSS Set \t\t[...] \t        Rx and Tx MCS Maps 160 MHz \t\t    [...] \t            Tx HE-MCS Map 160 MHz: 0xffff  Swap the assignment to fix this issue.  As the HE rate control mask is meant to limit our own transmit MCS, it needs to go via he_mcs->rx_mcs_set field. With the aforementioned swapping done, change is needed as well to apply it to the peer's receive MCS.  Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41 Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11: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-68256",
                        "url": "https://ubuntu.com/security/CVE-2025-68256",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in rtw_get_ie() parser  The Information Element (IE) parser rtw_get_ie() trusted the length byte of each IE without validating that the IE body (len bytes after the 2-byte header) fits inside the remaining frame buffer. A malformed frame can advertise an IE length larger than the available data, causing the parser to increment its pointer beyond the buffer end. This results in out-of-bounds reads or, depending on the pattern, an infinite loop.  Fix by validating that (offset + 2 + len) does not exceed the limit before accepting the IE or advancing to the next element.  This prevents OOB reads and ensures the parser terminates safely on malformed frames.",
                        "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-68265",
                        "url": "https://ubuntu.com/security/CVE-2025-68265",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: fix admin request_queue lifetime  The namespaces can access the controller's admin request_queue, and stale references on the namespaces may exist after tearing down the controller. Ensure the admin request_queue is active by moving the controller's 'put' to after all controller references have been released to ensure no one is can access the request_queue. This fixes a reported use-after-free bug:    BUG: KASAN: slab-use-after-free in blk_queue_enter+0x41c/0x4a0   Read of size 8 at addr ffff88c0a53819f8 by task nvme/3287   CPU: 67 UID: 0 PID: 3287 Comm: nvme Tainted: G            E      6.13.2-ga1582f1a031e #15   Tainted: [E]=UNSIGNED_MODULE   Hardware name: Jabil /EGS 2S MB1, BIOS 1.00 06/18/2025   Call Trace:    <TASK>    dump_stack_lvl+0x4f/0x60    print_report+0xc4/0x620    ? _raw_spin_lock_irqsave+0x70/0xb0    ? _raw_read_unlock_irqrestore+0x30/0x30    ? blk_queue_enter+0x41c/0x4a0    kasan_report+0xab/0xe0    ? blk_queue_enter+0x41c/0x4a0    blk_queue_enter+0x41c/0x4a0    ? __irq_work_queue_local+0x75/0x1d0    ? blk_queue_start_drain+0x70/0x70    ? irq_work_queue+0x18/0x20    ? vprintk_emit.part.0+0x1cc/0x350    ? wake_up_klogd_work_func+0x60/0x60    blk_mq_alloc_request+0x2b7/0x6b0    ? __blk_mq_alloc_requests+0x1060/0x1060    ? __switch_to+0x5b7/0x1060    nvme_submit_user_cmd+0xa9/0x330    nvme_user_cmd.isra.0+0x240/0x3f0    ? force_sigsegv+0xe0/0xe0    ? nvme_user_cmd64+0x400/0x400    ? vfs_fileattr_set+0x9b0/0x9b0    ? cgroup_update_frozen_flag+0x24/0x1c0    ? cgroup_leave_frozen+0x204/0x330    ? nvme_ioctl+0x7c/0x2c0    blkdev_ioctl+0x1a8/0x4d0    ? blkdev_common_ioctl+0x1930/0x1930    ? fdget+0x54/0x380    __x64_sys_ioctl+0x129/0x190    do_syscall_64+0x5b/0x160    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f765f703b0b   Code: ff ff ff 85 c0 79 9b 49 c7 c4 ff ff ff ff 5b 5d 4c 89 e0 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d dd 52 0f 00 f7 d8 64 89 01 48   RSP: 002b:00007ffe2cefe808 EFLAGS: 00000202 ORIG_RAX: 0000000000000010   RAX: ffffffffffffffda RBX: 00007ffe2cefe860 RCX: 00007f765f703b0b   RDX: 00007ffe2cefe860 RSI: 00000000c0484e41 RDI: 0000000000000003   RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000000   R10: 00007f765f611d50 R11: 0000000000000202 R12: 0000000000000003   R13: 00000000c0484e41 R14: 0000000000000001 R15: 00007ffe2cefea60    </TASK>",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15: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-68259",
                        "url": "https://ubuntu.com/security/CVE-2025-68259",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: SVM: Don't skip unrelated instruction if INT3/INTO is replaced  When re-injecting a soft interrupt from an INT3, INT0, or (select) INTn instruction, discard the exception and retry the instruction if the code stream is changed (e.g. by a different vCPU) between when the CPU executes the instruction and when KVM decodes the instruction to get the next RIP.  As effectively predicted by commit 6ef88d6e36c2 (\"KVM: SVM: Re-inject INT3/INTO instead of retrying the instruction\"), failure to verify that the correct INTn instruction was decoded can effectively clobber guest state due to decoding the wrong instruction and thus specifying the wrong next RIP.  The bug most often manifests as \"Oops: int3\" panics on static branch checks in Linux guests.  Enabling or disabling a static branch in Linux uses the kernel's \"text poke\" code patching mechanism.  To modify code while other CPUs may be executing that code, Linux (temporarily) replaces the first byte of the original instruction with an int3 (opcode 0xcc), then patches in the new code stream except for the first byte, and finally replaces the int3 with the first byte of the new code stream.  If a CPU hits the int3, i.e. executes the code while it's being modified, then the guest kernel must look up the RIP to determine how to handle the #BP, e.g. by emulating the new instruction.  If the RIP is incorrect, then this lookup fails and the guest kernel panics.  The bug reproduces almost instantly by hacking the guest kernel to repeatedly check a static branch[1] while running a drgn script[2] on the host to constantly swap out the memory containing the guest's TSS.  [1]: https://gist.github.com/osandov/44d17c51c28c0ac998ea0334edf90b5a [2]: https://gist.github.com/osandov/10e45e45afa29b11e0c7209247afc00b",
                        "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-68263",
                        "url": "https://ubuntu.com/security/CVE-2025-68263",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: ipc: fix use-after-free in ipc_msg_send_request  ipc_msg_send_request() waits for a generic netlink reply using an ipc_msg_table_entry on the stack. The generic netlink handler (handle_generic_event()/handle_response()) fills entry->response under ipc_msg_table_lock, but ipc_msg_send_request() used to validate and free entry->response without holding the same lock.  Under high concurrency this allows a race where handle_response() is copying data into entry->response while ipc_msg_send_request() has just freed it, leading to a slab-use-after-free reported by KASAN in handle_generic_event():    BUG: KASAN: slab-use-after-free in handle_generic_event+0x3c4/0x5f0 [ksmbd]   Write of size 12 at addr ffff888198ee6e20 by task pool/109349   ...   Freed by task:     kvfree     ipc_msg_send_request [ksmbd]     ksmbd_rpc_open -> ksmbd_session_rpc_open [ksmbd]  Fix by: - Taking ipc_msg_table_lock in ipc_msg_send_request() while validating   entry->response, freeing it when invalid, and removing the entry from   ipc_msg_table. - Returning the final entry->response pointer to the caller only after   the hash entry is removed under the lock. - Returning NULL in the error path, preserving the original API   semantics.  This makes all accesses to entry->response consistent with handle_response(), which already updates and fills the response buffer under ipc_msg_table_lock, and closes the race that allowed the UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15: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-2026-23111",
                        "url": "https://ubuntu.com/security/CVE-2026-23111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23209",
                        "url": "https://ubuntu.com/security/CVE-2026-23209",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23074",
                        "url": "https://ubuntu.com/security/CVE-2026-23074",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23060",
                        "url": "https://ubuntu.com/security/CVE-2026-23060",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23074",
                        "url": "https://ubuntu.com/security/CVE-2026-23074",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23060",
                        "url": "https://ubuntu.com/security/CVE-2026-23060",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23111",
                        "url": "https://ubuntu.com/security/CVE-2026-23111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2151069,
                    2151070,
                    2150047,
                    2150048,
                    2149766,
                    2149762,
                    2147981,
                    2148397,
                    2146465,
                    2147982,
                    2147447,
                    2147400,
                    2147065,
                    2144577,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2145171,
                    2144060,
                    2144006,
                    2144914,
                    2143152,
                    2143083,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144380,
                    2147889,
                    2147890,
                    2144380,
                    2143477,
                    2144887,
                    2144730,
                    2143478,
                    2142235,
                    2143033,
                    2142337,
                    2141276,
                    2139322,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2144266,
                    2144267
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-31419",
                                "url": "https://ubuntu.com/security/CVE-2026-31419",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: bonding: fix use-after-free in bond_xmit_broadcast()  bond_xmit_broadcast() reuses the original skb for the last slave (determined by bond_is_last_slave()) and clones it for others. Concurrent slave enslave/release can mutate the slave list during RCU-protected iteration, changing which slave is \"last\" mid-loop. This causes the original skb to be double-consumed (double-freed).  Replace the racy bond_is_last_slave() check with a simple index comparison (i + 1 == slaves_count) against the pre-snapshot slave count taken via READ_ONCE() before the loop.  This preserves the zero-copy optimization for the last slave while making the \"last\" determination stable against concurrent list mutations.  The UAF can trigger the following crash:  ================================================================== BUG: KASAN: slab-use-after-free in skb_clone Read of size 8 at addr ffff888100ef8d40 by task exploit/147  CPU: 1 UID: 0 PID: 147 Comm: exploit Not tainted 7.0.0-rc3+ #4 PREEMPTLAZY Call Trace:  <TASK>  dump_stack_lvl (lib/dump_stack.c:123)  print_report (mm/kasan/report.c:379 mm/kasan/report.c:482)  kasan_report (mm/kasan/report.c:597)  skb_clone (include/linux/skbuff.h:1724 include/linux/skbuff.h:1792 include/linux/skbuff.h:3396 net/core/skbuff.c:2108)  bond_xmit_broadcast (drivers/net/bonding/bond_main.c:5334)  bond_start_xmit (drivers/net/bonding/bond_main.c:5567 drivers/net/bonding/bond_main.c:5593)  dev_hard_start_xmit (include/linux/netdevice.h:5325 include/linux/netdevice.h:5334 net/core/dev.c:3871 net/core/dev.c:3887)  __dev_queue_xmit (include/linux/netdevice.h:3601 net/core/dev.c:4838)  ip6_finish_output2 (include/net/neighbour.h:540 include/net/neighbour.h:554 net/ipv6/ip6_output.c:136)  ip6_finish_output (net/ipv6/ip6_output.c:208 net/ipv6/ip6_output.c:219)  ip6_output (net/ipv6/ip6_output.c:250)  ip6_send_skb (net/ipv6/ip6_output.c:1985)  udp_v6_send_skb (net/ipv6/udp.c:1442)  udpv6_sendmsg (net/ipv6/udp.c:1733)  __sys_sendto (net/socket.c:730 net/socket.c:742 net/socket.c:2206)  __x64_sys_sendto (net/socket.c:2209)  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)  </TASK>  Allocated by task 147:  Freed by task 147:  The buggy address belongs to the object at ffff888100ef8c80  which belongs to the cache skbuff_head_cache of size 224 The buggy address is located 192 bytes inside of  freed 224-byte region [ffff888100ef8c80, ffff888100ef8d60)  Memory state around the buggy address:  ffff888100ef8c00: fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc  ffff888100ef8c80: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff888100ef8d00: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc                                                     ^  ffff888100ef8d80: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb  ffff888100ef8e00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-13 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31431",
                                "url": "https://ubuntu.com/security/CVE-2026-31431",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: algif_aead - Revert to operating out-of-place  This mostly reverts commit 72548b093ee3 except for the copying of the associated data.  There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings.  Get rid of all the complexity added for in-place operation and just copy the AD directly.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-04-22 09:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31533",
                                "url": "https://ubuntu.com/security/CVE-2026-31533",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption  The -EBUSY handling in tls_do_encryption(), introduced by commit 859054147318 (\"net: tls: handle backlogging of crypto requests\"), has a use-after-free due to double cleanup of encrypt_pending and the scatterlist entry.  When crypto_aead_encrypt() returns -EBUSY, the request is enqueued to the cryptd backlog and the async callback tls_encrypt_done() will be invoked upon completion. That callback unconditionally restores the scatterlist entry (sge->offset, sge->length) and decrements ctx->encrypt_pending. However, if tls_encrypt_async_wait() returns an error, the synchronous error path in tls_do_encryption() performs the same cleanup again, double-decrementing encrypt_pending and double-restoring the scatterlist.  The double-decrement corrupts the encrypt_pending sentinel (initialized to 1), making tls_encrypt_async_wait() permanently skip the wait for pending async callbacks. A subsequent sendmsg can then free the tls_rec via bpf_exec_tx_verdict() while a cryptd callback is still pending, resulting in a use-after-free when the callback fires on the freed record.  Fix this by skipping the synchronous cleanup when the -EBUSY async wait returns an error, since the callback has already handled encrypt_pending and sge restoration.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-23 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31504",
                                "url": "https://ubuntu.com/security/CVE-2026-31504",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix fanout UAF in packet_release() via NETDEV_UP race  `packet_release()` has a race window where `NETDEV_UP` can re-register a socket into a fanout group's `arr[]` array. The re-registration is not cleaned up by `fanout_release()`, leaving a dangling pointer in the fanout array. `packet_release()` does NOT zero `po->num` in its `bind_lock` section. After releasing `bind_lock`, `po->num` is still non-zero and `po->ifindex` still matches the bound device. A concurrent `packet_notifier(NETDEV_UP)` that already found the socket in `sklist` can re-register the hook. For fanout sockets, this re-registration calls `__fanout_link(sk, po)` which adds the socket back into `f->arr[]` and increments `f->num_members`, but does NOT increment `f->sk_ref`.  The fix sets `po->num` to zero in `packet_release` while `bind_lock` is held to prevent NETDEV_UP from linking, preventing the race window.  This bug was found following an additional audit with Claude Code based on CVE-2025-38617.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-22 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-117.117~22.04.1 -proposed tracker (LP: #2151069)",
                            "",
                            "  [ Ubuntu: 6.8.0-117.117 ]",
                            "",
                            "  * noble/linux: 6.8.0-117.117 -proposed tracker (LP: #2151070)",
                            "  * CVE-2026-31419",
                            "    - net: bonding: fix use-after-free in bond_xmit_broadcast()",
                            "  * CVE-2026-31431",
                            "    - crypto: scatterwalk - Backport memcpy_sglist()",
                            "    - crypto: algif_aead - use memcpy_sglist() instead of null skcipher",
                            "    - crypto: algif_aead - Revert to operating out-of-place",
                            "    - crypto: algif_aead - snapshot IV for async AEAD requests",
                            "    - crypto: authenc - use memcpy_sglist() instead of null skcipher",
                            "    - crypto: authencesn - Do not place hiseq at end of dst for out-of-place",
                            "      decryption",
                            "    - crypto: authencesn - Fix src offset when decrypting in-place",
                            "    - crypto: af_alg - Fix page reassignment overflow in af_alg_pull_tsgl",
                            "    - crypto: algif_aead - Fix minimum RX size check for decryption",
                            "  * CVE-2026-31533",
                            "    - net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption",
                            "  * CVE-2026-31504",
                            "    - net: fix fanout UAF in packet_release() via NETDEV_UP race",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-117.117~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2151069,
                            2151070
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Thu, 07 May 2026 23:11:56 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-116.116~22.04.1 -proposed tracker (LP: #2150047)",
                            "",
                            "  [ Ubuntu: 6.8.0-116.116 ]",
                            "",
                            "  * noble/linux: 6.8.0-116.116 -proposed tracker (LP: #2150048)",
                            "  * Linux kernel  6.17.0-22.22  breaks amdxdna (LP: #2149766)",
                            "    - Revert \"iommu: disable SVA when CONFIG_X86 is set\"",
                            "  * Revert \"netfilter: conntrack: fix erronous removal of offload bit\"",
                            "    (LP: #2149762)",
                            "    - Revert \"netfilter: conntrack: fix erronous removal of offload bit\"",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-116.116~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2150047,
                            2150048,
                            2149766,
                            2149762
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 24 Apr 2026 13:42:45 +0200"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23214",
                                "url": "https://ubuntu.com/security/CVE-2026-23214",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: reject new transactions if the fs is fully read-only  [BUG] There is a bug report where a heavily fuzzed fs is mounted with all rescue mount options, which leads to the following warnings during unmount:    BTRFS: Transaction aborted (error -22)   Modules linked in:   CPU: 0 UID: 0 PID: 9758 Comm: repro.out Not tainted   6.19.0-rc5-00002-gb71e635feefc #7 PREEMPT(full)   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014   RIP: 0010:find_free_extent_update_loop fs/btrfs/extent-tree.c:4208 [inline]   RIP: 0010:find_free_extent+0x52f0/0x5d20 fs/btrfs/extent-tree.c:4611   Call Trace:    <TASK>    btrfs_reserve_extent+0x2cd/0x790 fs/btrfs/extent-tree.c:4705    btrfs_alloc_tree_block+0x1e1/0x10e0 fs/btrfs/extent-tree.c:5157    btrfs_force_cow_block+0x578/0x2410 fs/btrfs/ctree.c:517    btrfs_cow_block+0x3c4/0xa80 fs/btrfs/ctree.c:708    btrfs_search_slot+0xcad/0x2b50 fs/btrfs/ctree.c:2130    btrfs_truncate_inode_items+0x45d/0x2350 fs/btrfs/inode-item.c:499    btrfs_evict_inode+0x923/0xe70 fs/btrfs/inode.c:5628    evict+0x5f4/0xae0 fs/inode.c:837    __dentry_kill+0x209/0x660 fs/dcache.c:670    finish_dput+0xc9/0x480 fs/dcache.c:879    shrink_dcache_for_umount+0xa0/0x170 fs/dcache.c:1661    generic_shutdown_super+0x67/0x2c0 fs/super.c:621    kill_anon_super+0x3b/0x70 fs/super.c:1289    btrfs_kill_super+0x41/0x50 fs/btrfs/super.c:2127    deactivate_locked_super+0xbc/0x130 fs/super.c:474    cleanup_mnt+0x425/0x4c0 fs/namespace.c:1318    task_work_run+0x1d4/0x260 kernel/task_work.c:233    exit_task_work include/linux/task_work.h:40 [inline]    do_exit+0x694/0x22f0 kernel/exit.c:971    do_group_exit+0x21c/0x2d0 kernel/exit.c:1112    __do_sys_exit_group kernel/exit.c:1123 [inline]    __se_sys_exit_group kernel/exit.c:1121 [inline]    __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1121    x64_sys_call+0x2210/0x2210 arch/x86/include/generated/asm/syscalls_64.h:232    do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]    do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94    entry_SYSCALL_64_after_hwframe+0x77/0x7f   RIP: 0033:0x44f639   Code: Unable to access opcode bytes at 0x44f60f.   RSP: 002b:00007ffc15c4e088 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7   RAX: ffffffffffffffda RBX: 00000000004c32f0 RCX: 000000000044f639   RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001   RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 0000000000000000   R10: 0000000000000000 R11: 0000000000000246 R12: 00000000004c32f0   R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001    </TASK>  Since rescue mount options will mark the full fs read-only, there should be no new transaction triggered.  But during unmount we will evict all inodes, which can trigger a new transaction, and triggers warnings on a heavily corrupted fs.  [CAUSE] Btrfs allows new transaction even on a read-only fs, this is to allow log replay happen even on read-only mounts, just like what ext4/xfs do.  However with rescue mount options, the fs is fully read-only and cannot be remounted read-write, thus in that case we should also reject any new transactions.  [FIX] If we find the fs has rescue mount options, we should treat the fs as error, so that no new transaction can be started.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23213",
                                "url": "https://ubuntu.com/security/CVE-2026-23213",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/pm: Disable MMIO access during SMU Mode 1 reset  During Mode 1 reset, the ASIC undergoes a reset cycle and becomes temporarily inaccessible via PCIe. Any attempt to access MMIO registers during this window (e.g., from interrupt handlers or other driver threads) can result in uncompleted PCIe transactions, leading to NMI panics or system hangs.  To prevent this, set the `no_hw_access` flag to true immediately after triggering the reset. This signals other driver components to skip register accesses while the device is offline.  A memory barrier `smp_mb()` is added to ensure the flag update is globally visible to all cores before the driver enters the sleep/wait state.  (cherry picked from commit 7edb503fe4b6d67f47d8bb0dfafb8e699bb0f8a4)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71225",
                                "url": "https://ubuntu.com/security/CVE-2025-71225",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: suspend array while updating raid_disks via sysfs  In raid1_reshape(), freeze_array() is called before modifying the r1bio memory pool (conf->r1bio_pool) and conf->raid_disks, and unfreeze_array() is called after the update is completed.  However, freeze_array() only waits until nr_sync_pending and (nr_pending - nr_queued) of all buckets reaches zero. When an I/O error occurs, nr_queued is increased and the corresponding r1bio is queued to either retry_list or bio_end_io_list. As a result, freeze_array() may unblock before these r1bios are released.  This can lead to a situation where conf->raid_disks and the mempool have already been updated while queued r1bios, allocated with the old raid_disks value, are later released. Consequently, free_r1bio() may access memory out of bounds in put_all_bios() and release r1bios of the wrong size to the new mempool, potentially causing issues with the mempool as well.  Since only normal I/O might increase nr_queued while an I/O error occurs, suspending the array avoids this issue.  Note: Updating raid_disks via ioctl SET_ARRAY_INFO already suspends the array. Therefore, we suspend the array when updating raid_disks via sysfs to avoid this issue too.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68823",
                                "url": "https://ubuntu.com/security/CVE-2025-68823",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ublk: fix deadlock when reading partition table  When one process(such as udev) opens ublk block device (e.g., to read the partition table via bdev_open()), a deadlock[1] can occur:  1. bdev_open() grabs disk->open_mutex 2. The process issues read I/O to ublk backend to read partition table 3. In __ublk_complete_rq(), blk_update_request() or blk_mq_end_request()    runs bio->bi_end_io() callbacks 4. If this triggers fput() on file descriptor of ublk block device, the    work may be deferred to current task's task work (see fput() implementation) 5. This eventually calls blkdev_release() from the same context 6. blkdev_release() tries to grab disk->open_mutex again 7. Deadlock: same task waiting for a mutex it already holds  The fix is to run blk_update_request() and blk_mq_end_request() with bottom halves disabled. This forces blkdev_release() to run in kernel work-queue context instead of current task work context, and allows ublk server to make forward progress, and avoids the deadlock.  [axboe: rewrite comment in ublk]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23191",
                                "url": "https://ubuntu.com/security/CVE-2026-23191",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: aloop: Fix racy access at PCM trigger  The PCM trigger callback of aloop driver tries to check the PCM state and stop the stream of the tied substream in the corresponding cable. Since both check and stop operations are performed outside the cable lock, this may result in UAF when a program attempts to trigger frequently while opening/closing the tied stream, as spotted by fuzzers.  For addressing the UAF, this patch changes two things: - It covers the most of code in loopback_check_format() with   cable->lock spinlock, and add the proper NULL checks.  This avoids   already some racy accesses. - In addition, now we try to check the state of the capture PCM stream   that may be stopped in this function, which was the major pain point   leading to UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23215",
                                "url": "https://ubuntu.com/security/CVE-2026-23215",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/vmware: Fix hypercall clobbers  Fedora QA reported the following panic:    BUG: unable to handle page fault for address: 0000000040003e54   #PF: supervisor write access in kernel mode   #PF: error_code(0x0002) - not-present page   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20251119-3.fc43 11/19/2025   RIP: 0010:vmware_hypercall4.constprop.0+0x52/0x90   ..   Call Trace:    vmmouse_report_events+0x13e/0x1b0    psmouse_handle_byte+0x15/0x60    ps2_interrupt+0x8a/0xd0    ...  because the QEMU VMware mouse emulation is buggy, and clears the top 32 bits of %rdi that the kernel kept a pointer in.  The QEMU vmmouse driver saves and restores the register state in a \"uint32_t data[6];\" and as a result restores the state with the high bits all cleared.  RDI originally contained the value of a valid kernel stack address (0xff5eeb3240003e54).  After the vmware hypercall it now contains 0x40003e54, and we get a page fault as a result when it is dereferenced.  The proper fix would be in QEMU, but this works around the issue in the kernel to keep old setups working, when old kernels had not happened to keep any state in %rdi over the hypercall.  In theory this same issue exists for all the hypercalls in the vmmouse driver; in practice it has only been seen with vmware_hypercall3() and vmware_hypercall4().  For now, just mark RDI/RSI as clobbered for those two calls.  This should have a minimal effect on code generation overall as it should be rare for the compiler to want to make RDI/RSI live across hypercalls.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23182",
                                "url": "https://ubuntu.com/security/CVE-2026-23182",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra: Fix a memory leak in tegra_slink_probe()  In tegra_slink_probe(), when platform_get_irq() fails, it directly returns from the function with an error code, which causes a memory leak.  Replace it with a goto label to ensure proper cleanup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23190",
                                "url": "https://ubuntu.com/security/CVE-2026-23190",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: amd: fix memory leak in acp3x pdm dma ops",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23254",
                                "url": "https://ubuntu.com/security/CVE-2026-23254",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: gro: fix outer network offset  The udp GRO complete stage assumes that all the packets inserted the RX have the `encapsulation` flag zeroed. Such assumption is not true, as a few H/W NICs can set such flag when H/W offloading the checksum for an UDP encapsulated traffic, the tun driver can inject GSO packets with UDP encapsulation and the problematic layout can also be created via a veth based setup.  Due to the above, in the problematic scenarios, udp4_gro_complete() uses the wrong network offset (inner instead of outer) to compute the outer UDP header pseudo checksum, leading to csum validation errors later on in packet processing.  Address the issue always clearing the encapsulation flag at GRO completion time. Such flag will be set again as needed for encapsulated packets by udp_gro_complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23180",
                                "url": "https://ubuntu.com/security/CVE-2026-23180",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: add bounds check for if_id in IRQ handler  The IRQ handler extracts if_id from the upper 16 bits of the hardware status register and uses it to index into ethsw->ports[] without validation. Since if_id can be any 16-bit value (0-65535) but the ports array is only allocated with sw_attr.num_ifs elements, this can lead to an out-of-bounds read potentially.  Add a bounds check before accessing the array, consistent with the existing validation in dpaa2_switch_rx().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23256",
                                "url": "https://ubuntu.com/security/CVE-2026-23256",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in VF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Compile tested only. Issue found using code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23257",
                                "url": "https://ubuntu.com/security/CVE-2026-23257",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in PF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Also, decrement i in the devlink_alloc failure path to point to the last successfully allocated index.  Compile tested only. Issue found using code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23258",
                                "url": "https://ubuntu.com/security/CVE-2026-23258",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Initialize netdev pointer before queue setup  In setup_nic_devices(), the netdev is allocated using alloc_etherdev_mq(). However, the pointer to this structure is stored in oct->props[i].netdev only after the calls to netif_set_real_num_rx_queues() and netif_set_real_num_tx_queues().  If either of these functions fails, setup_nic_devices() returns an error without freeing the allocated netdev. Since oct->props[i].netdev is still NULL at this point, the cleanup function liquidio_destroy_nic_device() will fail to find and free the netdev, resulting in a memory leak.  Fix this by initializing oct->props[i].netdev before calling the queue setup functions. This ensures that the netdev is properly accessible for cleanup in case of errors.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23206",
                                "url": "https://ubuntu.com/security/CVE-2026-23206",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: prevent ZERO_SIZE_PTR dereference when num_ifs is zero  The driver allocates arrays for ports, FDBs, and filter blocks using kcalloc() with ethsw->sw_attr.num_ifs as the element count. When the device reports zero interfaces (either due to hardware configuration or firmware issues), kcalloc(0, ...) returns ZERO_SIZE_PTR (0x10) instead of NULL.  Later in dpaa2_switch_probe(), the NAPI initialization unconditionally accesses ethsw->ports[0]->netdev, which attempts to dereference ZERO_SIZE_PTR (address 0x10), resulting in a kernel panic.  Add a check to ensure num_ifs is greater than zero after retrieving device attributes. This prevents the zero-sized allocations and subsequent invalid pointer dereference.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23204",
                                "url": "https://ubuntu.com/security/CVE-2026-23204",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: cls_u32: use skb_header_pointer_careful()  skb_header_pointer() does not fully validate negative @offset values.  Use skb_header_pointer_careful() instead.  GangMin Kim provided a report and a repro fooling u32_classify():  BUG: KASAN: slab-out-of-bounds in u32_classify+0x1180/0x11b0 net/sched/cls_u32.c:221",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23205",
                                "url": "https://ubuntu.com/security/CVE-2026-23205",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/client: fix memory leak in smb2_open_file()  Reproducer:    1. server: directories are exported read-only   2. client: mount -t cifs //${server_ip}/export /mnt   3. client: dd if=/dev/zero of=/mnt/file bs=512 count=1000 oflag=direct   4. client: umount /mnt   5. client: sleep 1   6. client: modprobe -r cifs  The error message is as follows:   =============================================================================   BUG cifs_small_rq (Not tainted): Objects remaining on __kmem_cache_shutdown()  -----------------------------------------------------------------------------    Object 0x00000000d47521be @offset=14336   ...   WARNING: mm/slub.c:1251 at __kmem_cache_shutdown+0x34e/0x440, CPU#0: modprobe/1577   ...   Call Trace:    <TASK>    kmem_cache_destroy+0x94/0x190    cifs_destroy_request_bufs+0x3e/0x50 [cifs]    cleanup_module+0x4e/0x540 [cifs]    __se_sys_delete_module+0x278/0x400    __x64_sys_delete_module+0x5f/0x70    x64_sys_call+0x2299/0x2ff0    do_syscall_64+0x89/0x350    entry_SYSCALL_64_after_hwframe+0x76/0x7e   ...   kmem_cache_destroy cifs_small_rq: Slab cache still has objects when called from cifs_destroy_request_bufs+0x3e/0x50 [cifs]   WARNING: mm/slab_common.c:532 at kmem_cache_destroy+0x16b/0x190, CPU#0: modprobe/1577",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23176",
                                "url": "https://ubuntu.com/security/CVE-2026-23176",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: toshiba_haps: Fix memory leaks in add/remove routines  toshiba_haps_add() leaks the haps object allocated by it if it returns an error after allocating that object successfully.  toshiba_haps_remove() does not free the object pointed to by toshiba_haps before clearing that pointer, so it becomes unreachable allocated memory.  Address these memory leaks by using devm_kzalloc() for allocating the memory in question.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23216",
                                "url": "https://ubuntu.com/security/CVE-2026-23216",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_conn_usage_count()  In iscsit_dec_conn_usage_count(), the function calls complete() while holding the conn->conn_usage_lock. As soon as complete() is invoked, the waiter (such as iscsit_close_connection()) may wake up and proceed to free the iscsit_conn structure.  If the waiter frees the memory before the current thread reaches spin_unlock_bh(), it results in a KASAN slab-use-after-free as the function attempts to release a lock within the already-freed connection structure.  Fix this by releasing the spinlock before calling complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23193",
                                "url": "https://ubuntu.com/security/CVE-2026-23193",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_session_usage_count()  In iscsit_dec_session_usage_count(), the function calls complete() while holding the sess->session_usage_lock. Similar to the connection usage count logic, the waiter signaled by complete() (e.g., in the session release path) may wake up and free the iscsit_session structure immediately.  This creates a race condition where the current thread may attempt to execute spin_unlock_bh() on a session structure that has already been deallocated, resulting in a KASAN slab-use-after-free.  To resolve this, release the session_usage_lock before calling complete() to ensure all dereferences of the sess pointer are finished before the waiter is allowed to proceed with deallocation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23260",
                                "url": "https://ubuntu.com/security/CVE-2026-23260",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: maple: free entry on mas_store_gfp() failure  regcache_maple_write() allocates a new block ('entry') to merge adjacent ranges and then stores it with mas_store_gfp(). When mas_store_gfp() fails, the new 'entry' remains allocated and is never freed, leaking memory.  Free 'entry' on the failure path; on success continue freeing the replaced neighbor blocks ('lower', 'upper').",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23179",
                                "url": "https://ubuntu.com/security/CVE-2026-23179",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: fixup hang in nvmet_tcp_listen_data_ready()  When the socket is closed while in TCP_LISTEN a callback is run to flush all outstanding packets, which in turns calls nvmet_tcp_listen_data_ready() with the sk_callback_lock held. So we need to check if we are in TCP_LISTEN before attempting to get the sk_callback_lock() to avoid a deadlock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23261",
                                "url": "https://ubuntu.com/security/CVE-2026-23261",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: release admin tagset if init fails  nvme_fabrics creates an NVMe/FC controller in following path:      nvmf_dev_write()       -> nvmf_create_ctrl()         -> nvme_fc_create_ctrl()           -> nvme_fc_init_ctrl()  nvme_fc_init_ctrl() allocates the admin blk-mq resources right after nvme_add_ctrl() succeeds.  If any of the subsequent steps fail (changing the controller state, scheduling connect work, etc.), we jump to the fail_ctrl path, which tears down the controller references but never frees the admin queue/tag set.  The leaked blk-mq allocations match the kmemleak report seen during blktests nvme/fc.  Check ctrl->ctrl.admin_tagset in the fail_ctrl path and call nvme_remove_admin_tag_set() when it is set so that all admin queue allocations are reclaimed whenever controller setup aborts.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23178",
                                "url": "https://ubuntu.com/security/CVE-2026-23178",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()  `i2c_hid_xfer` is used to read `recv_len + sizeof(__le16)` bytes of data into `ihid->rawbuf`.  The former can come from the userspace in the hidraw driver and is only bounded by HID_MAX_BUFFER_SIZE(16384) by default (unless we also set `max_buffer_size` field of `struct hid_ll_driver` which we do not).  The latter has size determined at runtime by the maximum size of different report types you could receive on any particular device and can be a much smaller value.  Fix this by truncating `recv_len` to `ihid->bufsize - sizeof(__le16)`.  The impact is low since access to hidraw devices requires root.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71268",
                                "url": "https://ubuntu.com/security/CVE-2025-71268",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix reservation leak in some error paths when inserting inline extent  If we fail to allocate a path or join a transaction, we return from __cow_file_range_inline() without freeing the reserved qgroup data, resulting in a leak. Fix this by ensuring we call btrfs_qgroup_free_data() in such cases.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71270",
                                "url": "https://ubuntu.com/security/CVE-2025-71270",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: Enable exception fixup for specific ADE subcode  This patch allows the LoongArch BPF JIT to handle recoverable memory access errors generated by BPF_PROBE_MEM* instructions.  When a BPF program performs memory access operations, the instructions it executes may trigger ADEM exceptions. The kernel’s built-in BPF exception table mechanism (EX_TYPE_BPF) will generate corresponding exception fixup entries in the JIT compilation phase; however, the architecture-specific trap handling function needs to proactively call the common fixup routine to achieve exception recovery.  do_ade(): fix EX_TYPE_BPF memory access exceptions for BPF programs, ensure safe execution.  Relevant test cases: illegal address access tests in module_attach and subprogs_extable of selftests/bpf.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71220",
                                "url": "https://ubuntu.com/security/CVE-2025-71220",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/server: call ksmbd_session_rpc_close() on error path in create_smb2_pipe()  When ksmbd_iov_pin_rsp() fails, we should call ksmbd_session_rpc_close().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71222",
                                "url": "https://ubuntu.com/security/CVE-2025-71222",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: wlcore: ensure skb headroom before skb_push  This avoids occasional skb_under_panic Oops from wl1271_tx_work. In this case, headroom is less than needed (typically 110 - 94 = 16 bytes).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71224",
                                "url": "https://ubuntu.com/security/CVE-2025-71224",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: ocb: skip rx_no_sta when interface is not joined  ieee80211_ocb_rx_no_sta() assumes a valid channel context, which is only present after JOIN_OCB.  RX may run before JOIN_OCB is executed, in which case the OCB interface is not operational. Skip RX peer handling when the interface is not joined to avoid warnings in the RX path.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23262",
                                "url": "https://ubuntu.com/security/CVE-2026-23262",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gve: Fix stats report corruption on queue count change  The driver and the NIC share a region in memory for stats reporting. The NIC calculates its offset into this region based on the total size of the stats region and the size of the NIC's stats.  When the number of queues is changed, the driver's stats region is resized. If the queue count is increased, the NIC can write past the end of the allocated stats region, causing memory corruption. If the queue count is decreased, there is a gap between the driver and NIC stats, leading to incorrect stats reporting.  This change fixes the issue by allocating stats region with maximum size, and the offset calculation for NIC stats is changed to match with the calculation of the NIC.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38201",
                                "url": "https://ubuntu.com/security/CVE-2025-38201",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX  Otherwise, it is possible to hit WARN_ON_ONCE in __kvmalloc_node_noprof() when resizing hashtable because __GFP_NOWARN is unset.  Similar to:    b541ba7d1f5a (\"netfilter: conntrack: clamp maximum hashtable size to INT_MAX\")",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-07-04 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23198",
                                "url": "https://ubuntu.com/security/CVE-2026-23198",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Don't clobber irqfd routing type when deassigning irqfd  When deassigning a KVM_IRQFD, don't clobber the irqfd's copy of the IRQ's routing entry as doing so breaks kvm_arch_irq_bypass_del_producer() on x86 and arm64, which explicitly look for KVM_IRQ_ROUTING_MSI.  Instead, to handle a concurrent routing update, verify that the irqfd is still active before consuming the routing information.  As evidenced by the x86 and arm64 bugs, and another bug in kvm_arch_update_irqfd_routing() (see below), clobbering the entry type without notifying arch code is surprising and error prone.  As a bonus, checking that the irqfd is active provides a convenient location for documenting _why_ KVM must not consume the routing entry for an irqfd that is in the process of being deassigned: once the irqfd is deleted from the list (which happens *before* the eventfd is detached), it will no longer receive updates via kvm_irq_routing_update(), and so KVM could deliver an event using stale routing information (relative to KVM_SET_GSI_ROUTING returning to userspace).  As an even better bonus, explicitly checking for the irqfd being active fixes a similar bug to the one the clobbering is trying to prevent: if an irqfd is deactivated, and then its routing is changed, kvm_irq_routing_update() won't invoke kvm_arch_update_irqfd_routing() (because the irqfd isn't in the list).  And so if the irqfd is in bypass mode, IRQs will continue to be posted using the old routing information.  As for kvm_arch_irq_bypass_del_producer(), clobbering the routing type results in KVM incorrectly keeping the IRQ in bypass mode, which is especially problematic on AMD as KVM tracks IRQs that are being posted to a vCPU in a list whose lifetime is tied to the irqfd.  Without the help of KASAN to detect use-after-free, the most common sympton on AMD is a NULL pointer deref in amd_iommu_update_ga() due to the memory for irqfd structure being re-allocated and zeroed, resulting in irqfd->irq_bypass_data being NULL when read by avic_update_iommu_vcpu_affinity():    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 40cf2b9067 P4D 40cf2b9067 PUD 408362a067 PMD 0   Oops: Oops: 0000 [#1] SMP   CPU: 6 UID: 0 PID: 40383 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--5dddc257e6b2-irqfd #31 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:amd_iommu_update_ga+0x19/0xe0   Call Trace:    <TASK>    avic_update_iommu_vcpu_affinity+0x3d/0x90 [kvm_amd]    __avic_vcpu_load+0xf4/0x130 [kvm_amd]    kvm_arch_vcpu_load+0x89/0x210 [kvm]    vcpu_load+0x30/0x40 [kvm]    kvm_arch_vcpu_ioctl_run+0x45/0x620 [kvm]    kvm_vcpu_ioctl+0x571/0x6a0 [kvm]    __se_sys_ioctl+0x6d/0xb0    do_syscall_64+0x6f/0x9d0    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x46893b     </TASK>   ---[ end trace 0000000000000000 ]---  If AVIC is inhibited when the irfd is deassigned, the bug will manifest as list corruption, e.g. on the next irqfd assignment.    list_add corruption. next->prev should be prev (ffff8d474d5cd588),                        but was 0000000000000000. (next=ffff8d8658f86530).   ------------[ cut here ]------------   kernel BUG at lib/list_debug.c:31!   Oops: invalid opcode: 0000 [#1] SMP   CPU: 128 UID: 0 PID: 80818 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--f19dc4d680ba-irqfd #28 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:__list_add_valid_or_report+0x97/0xc0   Call Trace:    <TASK>    avic_pi_update_irte+0x28e/0x2b0 [kvm_amd]    kvm_pi_update_irte+0xbf/0x190 [kvm]    kvm_arch_irq_bypass_add_producer+0x72/0x90 [kvm]    irq_bypass_register_consumer+0xcd/0x170 [irqbypa ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23264",
                                "url": "https://ubuntu.com/security/CVE-2026-23264",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Revert \"drm/amd: Check if ASPM is enabled from PCIe subsystem\"  This reverts commit 7294863a6f01248d72b61d38478978d638641bee.  This commit was erroneously applied again after commit 0ab5d711ec74 (\"drm/amd: Refactor `amdgpu_aspm` to be evaluated per device\") removed it, leading to very hard to debug crashes, when used with a system with two AMD GPUs of which only one supports ASPM.  (cherry picked from commit 97a9689300eb2b393ba5efc17c8e5db835917080)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23187",
                                "url": "https://ubuntu.com/security/CVE-2026-23187",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: fix out-of-range access of bc->domains  Fix out-of-range access of bc->domains in imx8m_blk_ctrl_remove().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23148",
                                "url": "https://ubuntu.com/security/CVE-2026-23148",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference  There is a race condition in nvmet_bio_done() that can cause a NULL pointer dereference in blk_cgroup_bio_start():  1. nvmet_bio_done() is called when a bio completes 2. nvmet_req_complete() is called, which invokes req->ops->queue_response(req) 3. The queue_response callback can re-queue and re-submit the same request 4. The re-submission reuses the same inline_bio from nvmet_req 5. Meanwhile, nvmet_req_bio_put() (called after nvmet_req_complete)    invokes bio_uninit() for inline_bio, which sets bio->bi_blkg to NULL 6. The re-submitted bio enters submit_bio_noacct_nocheck() 7. blk_cgroup_bio_start() dereferences bio->bi_blkg, causing a crash:    BUG: kernel NULL pointer dereference, address: 0000000000000028   #PF: supervisor read access in kernel mode   RIP: 0010:blk_cgroup_bio_start+0x10/0xd0   Call Trace:    submit_bio_noacct_nocheck+0x44/0x250    nvmet_bdev_execute_rw+0x254/0x370 [nvmet]    process_one_work+0x193/0x3c0    worker_thread+0x281/0x3a0  Fix this by reordering nvmet_bio_done() to call nvmet_req_bio_put() BEFORE nvmet_req_complete(). This ensures the bio is cleaned up before the request can be re-submitted, preventing the race condition.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23166",
                                "url": "https://ubuntu.com/security/CVE-2026-23166",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ice: Fix NULL pointer dereference in ice_vsi_set_napi_queues  Add NULL pointer checks in ice_vsi_set_napi_queues() to prevent crashes during resume from suspend when rings[q_idx]->q_vector is NULL.  Tested adaptor: 60:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller E810-XXV for SFP [8086:159b] (rev 02)         Subsystem: Intel Corporation Ethernet Network Adapter E810-XXV-2 [8086:4003]  SR-IOV state: both disabled and enabled can reproduce this issue.  kernel version: v6.18  Reproduce steps: Boot up and execute suspend like systemctl suspend or rtcwake.  Log: <1>[  231.443607] BUG: kernel NULL pointer dereference, address: 0000000000000040 <1>[  231.444052] #PF: supervisor read access in kernel mode <1>[  231.444484] #PF: error_code(0x0000) - not-present page <6>[  231.444913] PGD 0 P4D 0 <4>[  231.445342] Oops: Oops: 0000 [#1] SMP NOPTI <4>[  231.446635] RIP: 0010:netif_queue_set_napi+0xa/0x170 <4>[  231.447067] Code: 31 f6 31 ff c3 cc cc cc cc 0f 1f 80 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 48 85 c9 74 0b <48> 83 79 30 00 0f 84 39 01 00 00 55 41 89 d1 49 89 f8 89 f2 48 89 <4>[  231.447513] RSP: 0018:ffffcc780fc078c0 EFLAGS: 00010202 <4>[  231.447961] RAX: ffff8b848ca30400 RBX: ffff8b848caf2028 RCX: 0000000000000010 <4>[  231.448443] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8b848dbd4000 <4>[  231.448896] RBP: ffffcc780fc078e8 R08: 0000000000000000 R09: 0000000000000000 <4>[  231.449345] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001 <4>[  231.449817] R13: ffff8b848dbd4000 R14: ffff8b84833390c8 R15: 0000000000000000 <4>[  231.450265] FS:  00007c7b29e9d740(0000) GS:ffff8b8c068e2000(0000) knlGS:0000000000000000 <4>[  231.450715] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 <4>[  231.451179] CR2: 0000000000000040 CR3: 000000030626f004 CR4: 0000000000f72ef0 <4>[  231.451629] PKRU: 55555554 <4>[  231.452076] Call Trace: <4>[  231.452549]  <TASK> <4>[  231.452996]  ? ice_vsi_set_napi_queues+0x4d/0x110 [ice] <4>[  231.453482]  ice_resume+0xfd/0x220 [ice] <4>[  231.453977]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.454425]  pci_pm_resume+0x8c/0x140 <4>[  231.454872]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.455347]  dpm_run_callback+0x5f/0x160 <4>[  231.455796]  ? dpm_wait_for_superior+0x107/0x170 <4>[  231.456244]  device_resume+0x177/0x270 <4>[  231.456708]  dpm_resume+0x209/0x2f0 <4>[  231.457151]  dpm_resume_end+0x15/0x30 <4>[  231.457596]  suspend_devices_and_enter+0x1da/0x2b0 <4>[  231.458054]  enter_state+0x10e/0x570  Add defensive checks for both the ring pointer and its q_vector before dereferencing, allowing the system to resume successfully even when q_vectors are unmapped.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23151",
                                "url": "https://ubuntu.com/security/CVE-2026-23151",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: MGMT: Fix memory leak in set_ssp_complete  Fix memory leak in set_ssp_complete() where mgmt_pending_cmd structures are not freed after being removed from the pending list.  Commit 302a1f674c00 (\"Bluetooth: MGMT: Fix possible UAFs\") replaced mgmt_pending_foreach() calls with individual command handling but missed adding mgmt_pending_free() calls in both error and success paths of set_ssp_complete(). Other completion functions like set_le_complete() were fixed correctly in the same commit.  This causes a memory leak of the mgmt_pending_cmd structure and its associated parameter data for each SSP command that completes.  Add the missing mgmt_pending_free(cmd) calls in both code paths to fix the memory leak. Also fix the same issue in set_advertising_complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23163",
                                "url": "https://ubuntu.com/security/CVE-2026-23163",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: fix NULL pointer dereference in amdgpu_gmc_filter_faults_remove  On APUs such as Raven and Renoir (GC 9.1.0, 9.2.2, 9.3.0), the ih1 and ih2 interrupt ring buffers are not initialized. This is by design, as these secondary IH rings are only available on discrete GPUs. See vega10_ih_sw_init() which explicitly skips ih1/ih2 initialization when AMD_IS_APU is set.  However, amdgpu_gmc_filter_faults_remove() unconditionally uses ih1 to get the timestamp of the last interrupt entry. When retry faults are enabled on APUs (noretry=0), this function is called from the SVM page fault recovery path, resulting in a NULL pointer dereference when amdgpu_ih_decode_iv_ts_helper() attempts to access ih->ring[].  The crash manifests as:    BUG: kernel NULL pointer dereference, address: 0000000000000004   RIP: 0010:amdgpu_ih_decode_iv_ts_helper+0x22/0x40 [amdgpu]   Call Trace:    amdgpu_gmc_filter_faults_remove+0x60/0x130 [amdgpu]    svm_range_restore_pages+0xae5/0x11c0 [amdgpu]    amdgpu_vm_handle_fault+0xc8/0x340 [amdgpu]    gmc_v9_0_process_interrupt+0x191/0x220 [amdgpu]    amdgpu_irq_dispatch+0xed/0x2c0 [amdgpu]    amdgpu_ih_process+0x84/0x100 [amdgpu]  This issue was exposed by commit 1446226d32a4 (\"drm/amdgpu: Remove GC HW IP 9.3.0 from noretry=1\") which changed the default for Renoir APU from noretry=1 to noretry=0, enabling retry fault handling and thus exercising the buggy code path.  Fix this by adding a check for ih1.ring_size before attempting to use it. Also restore the soft_ih support from commit dd299441654f (\"drm/amdgpu: Rework retry fault removal\").  This is needed if the hardware doesn't support secondary HW IH rings.  v2: additional updates (Alex)  (cherry picked from commit 6ce8d536c80aa1f059e82184f0d1994436b1d526)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23159",
                                "url": "https://ubuntu.com/security/CVE-2026-23159",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf: sched: Fix perf crash with new is_user_task() helper  In order to do a user space stacktrace the current task needs to be a user task that has executed in user space. It use to be possible to test if a task is a user task or not by simply checking the task_struct mm field. If it was non NULL, it was a user task and if not it was a kernel task.  But things have changed over time, and some kernel tasks now have their own mm field.  An idea was made to instead test PF_KTHREAD and two functions were used to wrap this check in case it became more complex to test if a task was a user task or not[1]. But this was rejected and the C code simply checked the PF_KTHREAD directly.  It was later found that not all kernel threads set PF_KTHREAD. The io-uring helpers instead set PF_USER_WORKER and this needed to be added as well.  But checking the flags is still not enough. There's a very small window when a task exits that it frees its mm field and it is set back to NULL. If perf were to trigger at this moment, the flags test would say its a user space task but when perf would read the mm field it would crash with at NULL pointer dereference.  Now there are flags that can be used to test if a task is exiting, but they are set in areas that perf may still want to profile the user space task (to see where it exited). The only real test is to check both the flags and the mm field.  Instead of making this modification in every location, create a new is_user_task() helper function that does all the tests needed to know if it is safe to read the user space memory or not.  [1] https://lore.kernel.org/all/20250425204120.639530125@goodmis.org/",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-58096",
                                "url": "https://ubuntu.com/security/CVE-2024-58096",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode  ath11k_hal_srng_* should be used with srng->lock to protect srng data.  For ath11k_dp_rx_mon_dest_process() and ath11k_dp_full_mon_process_rx(), they use ath11k_hal_srng_* for many times but never call srng->lock.  So when running (full) monitor mode, warning will occur: RIP: 0010:ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k] Call Trace:  ? ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k]  ath11k_dp_rx_process_mon_status+0xc45/0x1190 [ath11k]  ? idr_alloc_u32+0x97/0xd0  ath11k_dp_rx_process_mon_rings+0x32a/0x550 [ath11k]  ath11k_dp_service_srng+0x289/0x5a0 [ath11k]  ath11k_pcic_ext_grp_napi_poll+0x30/0xd0 [ath11k]  __napi_poll+0x30/0x1f0  net_rx_action+0x198/0x320  __do_softirq+0xdd/0x319  So add srng->lock for them to avoid such warnings.  Inorder to fetch the srng->lock, should change srng's definition from 'void' to 'struct hal_srng'. And initialize them elsewhere to prevent one line of code from being too long. This is consistent with other ring process functions, such as ath11k_dp_process_rx().  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40039",
                                "url": "https://ubuntu.com/security/CVE-2025-40039",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix race condition in RPC handle list access  The 'sess->rpc_handle_list' XArray manages RPC handles within a ksmbd session. Access to this list is intended to be protected by 'sess->rpc_lock' (an rw_semaphore). However, the locking implementation was flawed, leading to potential race conditions.  In ksmbd_session_rpc_open(), the code incorrectly acquired only a read lock before calling xa_store() and xa_erase(). Since these operations modify the XArray structure, a write lock is required to ensure exclusive access and prevent data corruption from concurrent modifications.  Furthermore, ksmbd_session_rpc_method() accessed the list using xa_load() without holding any lock at all. This could lead to reading inconsistent data or a potential use-after-free if an entry is concurrently removed and the pointer is dereferenced.  Fix these issues by: 1. Using down_write() and up_write() in ksmbd_session_rpc_open()    to ensure exclusive access during XArray modification, and ensuring    the lock is correctly released on error paths. 2. Adding down_read() and up_read() in ksmbd_session_rpc_method()    to safely protect the lookup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-28 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23093",
                                "url": "https://ubuntu.com/security/CVE-2026-23093",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: smbd: fix dma_unmap_sg() nents  The dma_unmap_sg() functions should be called with the same nents as the dma_map_sg(), not the value the map function returned.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23102",
                                "url": "https://ubuntu.com/security/CVE-2026-23102",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Fix restoration of SVE context  When SME is supported, Restoring SVE signal context can go wrong in a few ways, including placing the task into an invalid state where the kernel may read from out-of-bounds memory (and may potentially take a fatal fault) and/or may kill the task with a SIGKILL.  (1) Restoring a context with SVE_SIG_FLAG_SM set can place the task into     an invalid state where SVCR.SM is set (and sve_state is non-NULL)     but TIF_SME is clear, consequently resuting in out-of-bounds memory     reads and/or killing the task with SIGKILL.      This can only occur in unusual (but legitimate) cases where the SVE     signal context has either been modified by userspace or was saved in     the context of another task (e.g. as with CRIU), as otherwise the     presence of an SVE signal context with SVE_SIG_FLAG_SM implies that     TIF_SME is already set.      While in this state, task_fpsimd_load() will NOT configure SMCR_ELx     (leaving some arbitrary value configured in hardware) before     restoring SVCR and attempting to restore the streaming mode SVE     registers from memory via sve_load_state(). As the value of     SMCR_ELx.LEN may be larger than the task's streaming SVE vector     length, this may read memory outside of the task's allocated     sve_state, reading unrelated data and/or triggering a fault.      While this can result in secrets being loaded into streaming SVE     registers, these values are never exposed. As TIF_SME is clear,     fpsimd_bind_task_to_cpu() will configure CPACR_ELx.SMEN to trap EL0     accesses to streaming mode SVE registers, so these cannot be     accessed directly at EL0. As fpsimd_save_user_state() verifies the     live vector length before saving (S)SVE state to memory, no secret     values can be saved back to memory (and hence cannot be observed via     ptrace, signals, etc).      When the live vector length doesn't match the expected vector length     for the task, fpsimd_save_user_state() will send a fatal SIGKILL     signal to the task. Hence the task may be killed after executing     userspace for some period of time.  (2) Restoring a context with SVE_SIG_FLAG_SM clear does not clear the     task's SVCR.SM. If SVCR.SM was set prior to restoring the context,     then the task will be left in streaming mode unexpectedly, and some     register state will be combined inconsistently, though the task will     be left in legitimate state from the kernel's PoV.      This can only occur in unusual (but legitimate) cases where ptrace     has been used to set SVCR.SM after entry to the sigreturn syscall,     as syscall entry clears SVCR.SM.      In these cases, the the provided SVE register data will be loaded     into the task's sve_state using the non-streaming SVE vector length     and the FPSIMD registers will be merged into this using the     streaming SVE vector length.  Fix (1) by setting TIF_SME when setting SVCR.SM. This also requires ensuring that the task's sme_state has been allocated, but as this could contain live ZA state, it should not be zeroed. Fix (2) by clearing SVCR.SM when restoring a SVE signal context with SVE_SIG_FLAG_SM clear.  For consistency, I've pulled the manipulation of SVCR, TIF_SVE, TIF_SME, and fp_type earlier, immediately after the allocation of sve_state/sme_state, before the restore of the actual register state. This makes it easier to ensure that these are always modified consistently, even if a fault is taken while reading the register data from the signal context. I do not expect any software to depend on the exact state restored when a fault is taken while reading the context.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23170",
                                "url": "https://ubuntu.com/security/CVE-2026-23170",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/imx/tve: fix probe device leak  Make sure to drop the reference taken to the DDC device during probe on probe failure (e.g. probe deferral) and on driver unbind.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23168",
                                "url": "https://ubuntu.com/security/CVE-2026-23168",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  flex_proportions: make fprop_new_period() hardirq safe  Bernd has reported a lockdep splat from flexible proportions code that is essentially complaining about the following race:  <timer fires> run_timer_softirq - we are in softirq context   call_timer_fn     writeout_period       fprop_new_period         write_seqcount_begin(&p->sequence);          <hardirq is raised>         ...         blk_mq_end_request() \t  blk_update_request() \t    ext4_end_bio() \t      folio_end_writeback() \t\t__wb_writeout_add() \t\t  __fprop_add_percpu_max() \t\t    if (unlikely(max_frac < FPROP_FRAC_BASE)) { \t\t      fprop_fraction_percpu() \t\t\tseq = read_seqcount_begin(&p->sequence); \t\t\t  - sees odd sequence so loops indefinitely  Note that a deadlock like this is only possible if the bdi has configured maximum fraction of writeout throughput which is very rare in general but frequent for example for FUSE bdis.  To fix this problem we have to make sure write section of the sequence counter is irqsafe.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23156",
                                "url": "https://ubuntu.com/security/CVE-2026-23156",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  efivarfs: fix error propagation in efivar_entry_get()  efivar_entry_get() always returns success even if the underlying __efivar_entry_get() fails, masking errors.  This may result in uninitialized heap memory being copied to userspace in the efivarfs_file_read() path.  Fix it by returning the error from __efivar_entry_get().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23167",
                                "url": "https://ubuntu.com/security/CVE-2026-23167",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: nci: Fix race between rfkill and nci_unregister_device().  syzbot reported the splat below [0] without a repro.  It indicates that struct nci_dev.cmd_wq had been destroyed before nci_close_device() was called via rfkill.  nci_dev.cmd_wq is only destroyed in nci_unregister_device(), which (I think) was called from virtual_ncidev_close() when syzbot close()d an fd of virtual_ncidev.  The problem is that nci_unregister_device() destroys nci_dev.cmd_wq first and then calls nfc_unregister_device(), which removes the device from rfkill by rfkill_unregister().  So, the device is still visible via rfkill even after nci_dev.cmd_wq is destroyed.  Let's unregister the device from rfkill first in nci_unregister_device().  Note that we cannot call nfc_unregister_device() before nci_close_device() because    1) nfc_unregister_device() calls device_del() which frees      all memory allocated by devm_kzalloc() and linked to      ndev->conn_info_list    2) nci_rx_work() could try to queue nci_conn_info to      ndev->conn_info_list which could be leaked  Thus, nfc_unregister_device() is split into two functions so we can remove rfkill interfaces only before nci_close_device().  [0]: DEBUG_LOCKS_WARN_ON(1) WARNING: kernel/locking/lockdep.c:238 at hlock_class kernel/locking/lockdep.c:238 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at check_wait_context kernel/locking/lockdep.c:4854 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at __lock_acquire+0x39d/0x2cf0 kernel/locking/lockdep.c:5187, CPU#0: syz.0.8675/6349 Modules linked in: CPU: 0 UID: 0 PID: 6349 Comm: syz.0.8675 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/13/2026 RIP: 0010:hlock_class kernel/locking/lockdep.c:238 [inline] RIP: 0010:check_wait_context kernel/locking/lockdep.c:4854 [inline] RIP: 0010:__lock_acquire+0x3a4/0x2cf0 kernel/locking/lockdep.c:5187 Code: 18 00 4c 8b 74 24 08 75 27 90 e8 17 f2 fc 02 85 c0 74 1c 83 3d 50 e0 4e 0e 00 75 13 48 8d 3d 43 f7 51 0e 48 c7 c6 8b 3a de 8d <67> 48 0f b9 3a 90 31 c0 0f b6 98 c4 00 00 00 41 8b 45 20 25 ff 1f RSP: 0018:ffffc9000c767680 EFLAGS: 00010046 RAX: 0000000000000001 RBX: 0000000000040000 RCX: 0000000000080000 RDX: ffffc90013080000 RSI: ffffffff8dde3a8b RDI: ffffffff8ff24ca0 RBP: 0000000000000003 R08: ffffffff8fef35a3 R09: 1ffffffff1fde6b4 R10: dffffc0000000000 R11: fffffbfff1fde6b5 R12: 00000000000012a2 R13: ffff888030338ba8 R14: ffff888030338000 R15: ffff888030338b30 FS:  00007fa5995f66c0(0000) GS:ffff8881256f8000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f7e72f842d0 CR3: 00000000485a0000 CR4: 00000000003526f0 Call Trace:  <TASK>  lock_acquire+0x106/0x330 kernel/locking/lockdep.c:5868  touch_wq_lockdep_map+0xcb/0x180 kernel/workqueue.c:3940  __flush_workqueue+0x14b/0x14f0 kernel/workqueue.c:3982  nci_close_device+0x302/0x630 net/nfc/nci/core.c:567  nci_dev_down+0x3b/0x50 net/nfc/nci/core.c:639  nfc_dev_down+0x152/0x290 net/nfc/core.c:161  nfc_rfkill_set_block+0x2d/0x100 net/nfc/core.c:179  rfkill_set_block+0x1d2/0x440 net/rfkill/core.c:346  rfkill_fop_write+0x461/0x5a0 net/rfkill/core.c:1301  vfs_write+0x29a/0xb90 fs/read_write.c:684  ksys_write+0x150/0x270 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xe2/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa59b39acb9 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fa5995f6028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fa59b615fa0 RCX: 00007fa59b39acb9 RDX: 0000000000000008 RSI: 0000200000000080 RDI: 0000000000000007 RBP: 00007fa59b408bf7 R08: ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23173",
                                "url": "https://ubuntu.com/security/CVE-2026-23173",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: TC, delete flows only for existing peers  When deleting TC steering flows, iterate only over actual devcom peers instead of assuming all possible ports exist. This avoids touching non-existent peers and ensures cleanup is limited to devices the driver is currently connected to.   BUG: kernel NULL pointer dereference, address: 0000000000000008  #PF: supervisor write access in kernel mode  #PF: error_code(0x0002) - not-present page  PGD 133c8a067 P4D 0  Oops: Oops: 0002 [#1] SMP  CPU: 19 UID: 0 PID: 2169 Comm: tc Not tainted 6.18.0+ #156 NONE  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:mlx5e_tc_del_fdb_peers_flow+0xbe/0x200 [mlx5_core]  Code: 00 00 a8 08 74 a8 49 8b 46 18 f6 c4 02 74 9f 4c 8d bf a0 12 00 00 4c 89 ff e8 0e e7 96 e1 49 8b 44 24 08 49 8b 0c 24 4c 89 ff <48> 89 41 08 48 89 08 49 89 2c 24 49 89 5c 24 08 e8 7d ce 96 e1 49  RSP: 0018:ff11000143867528 EFLAGS: 00010246  RAX: 0000000000000000 RBX: dead000000000122 RCX: 0000000000000000  RDX: ff11000143691580 RSI: ff110001026e5000 RDI: ff11000106f3d2a0  RBP: dead000000000100 R08: 00000000000003fd R09: 0000000000000002  R10: ff11000101c75690 R11: ff1100085faea178 R12: ff11000115f0ae78  R13: 0000000000000000 R14: ff11000115f0a800 R15: ff11000106f3d2a0  FS:  00007f35236bf740(0000) GS:ff110008dc809000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000008 CR3: 0000000157a01001 CR4: 0000000000373eb0  Call Trace:   <TASK>   mlx5e_tc_del_flow+0x46/0x270 [mlx5_core]   mlx5e_flow_put+0x25/0x50 [mlx5_core]   mlx5e_delete_flower+0x2a6/0x3e0 [mlx5_core]   tc_setup_cb_reoffload+0x20/0x80   fl_reoffload+0x26f/0x2f0 [cls_flower]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   tcf_block_playback_offloads+0x9e/0x1c0   tcf_block_unbind+0x7b/0xd0   tcf_block_setup+0x186/0x1d0   tcf_block_offload_cmd.isra.0+0xef/0x130   tcf_block_offload_unbind+0x43/0x70   __tcf_block_put+0x85/0x160   ingress_destroy+0x32/0x110 [sch_ingress]   __qdisc_destroy+0x44/0x100   qdisc_graft+0x22b/0x610   tc_get_qdisc+0x183/0x4d0   rtnetlink_rcv_msg+0x2d7/0x3d0   ? rtnl_calcit.isra.0+0x100/0x100   netlink_rcv_skb+0x53/0x100   netlink_unicast+0x249/0x320   ? __alloc_skb+0x102/0x1f0   netlink_sendmsg+0x1e3/0x420   __sock_sendmsg+0x38/0x60   ____sys_sendmsg+0x1ef/0x230   ? copy_msghdr_from_user+0x6c/0xa0   ___sys_sendmsg+0x7f/0xc0   ? ___sys_recvmsg+0x8a/0xc0   ? __sys_sendto+0x119/0x180   __sys_sendmsg+0x61/0xb0   do_syscall_64+0x55/0x640   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7f35238bb764  Code: 15 b9 86 0c 00 f7 d8 64 89 02 b8 ff ff ff ff eb bf 0f 1f 44 00 00 f3 0f 1e fa 80 3d e5 08 0d 00 00 74 13 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 4c c3 0f 1f 00 55 48 89 e5 48 83 ec 20 89 55  RSP: 002b:00007ffed4c35638 EFLAGS: 00000202 ORIG_RAX: 000000000000002e  RAX: ffffffffffffffda RBX: 000055a2efcc75e0 RCX: 00007f35238bb764  RDX: 0000000000000000 RSI: 00007ffed4c356a0 RDI: 0000000000000003  RBP: 00007ffed4c35710 R08: 0000000000000010 R09: 00007f3523984b20  R10: 0000000000000004 R11: 0000000000000202 R12: 00007ffed4c35790  R13: 000000006947df8f R14: 000055a2efcc75e0 R15: 00007ffed4c35780",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23150",
                                "url": "https://ubuntu.com/security/CVE-2026-23150",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: llcp: Fix memleak in nfc_llcp_send_ui_frame().  syzbot reported various memory leaks related to NFC, struct nfc_llcp_sock, sk_buff, nfc_dev, etc. [0]  The leading log hinted that nfc_llcp_send_ui_frame() failed to allocate skb due to sock_error(sk) being -ENXIO.  ENXIO is set by nfc_llcp_socket_release() when struct nfc_llcp_local is destroyed by local_cleanup().  The problem is that there is no synchronisation between nfc_llcp_send_ui_frame() and local_cleanup(), and skb could be put into local->tx_queue after it was purged in local_cleanup():    CPU1                          CPU2   ----                          ----   nfc_llcp_send_ui_frame()      local_cleanup()   |- do {                       '      |- pdu = nfc_alloc_send_skb(..., &err)      |                          .      |                          |- nfc_llcp_socket_release(local, false, ENXIO);      |                          |- skb_queue_purge(&local->tx_queue);     |      |                          '                                         |      |- skb_queue_tail(&local->tx_queue, pdu);                            |     ...                                                                   |      |- pdu = nfc_alloc_send_skb(..., &err)                               |                                       ^._________________________________.'  local_cleanup() is called for struct nfc_llcp_local only after nfc_llcp_remove_local() unlinks it from llcp_devices.  If we hold local->tx_queue.lock then, we can synchronise the thread and nfc_llcp_send_ui_frame().  Let's do that and check list_empty(&local->list) before queuing skb to local->tx_queue in nfc_llcp_send_ui_frame().  [0]: [   56.074943][ T6096] llcp: nfc_llcp_send_ui_frame: Could not allocate PDU (error=-6) [   64.318868][ T5813] kmemleak: 6 new suspected memory leaks (see /sys/kernel/debug/kmemleak) BUG: memory leak unreferenced object 0xffff8881272f6800 (size 1024):   comm \"syz.0.17\", pid 6096, jiffies 4294942766   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     27 00 03 40 00 00 00 00 00 00 00 00 00 00 00 00  '..@............   backtrace (crc da58d84d):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     __do_kmalloc_node mm/slub.c:5645 [inline]     __kmalloc_noprof+0x3e3/0x6b0 mm/slub.c:5658     kmalloc_noprof include/linux/slab.h:961 [inline]     sk_prot_alloc+0x11a/0x1b0 net/core/sock.c:2239     sk_alloc+0x36/0x360 net/core/sock.c:2295     nfc_llcp_sock_alloc+0x37/0x130 net/nfc/llcp_sock.c:979     llcp_sock_create+0x71/0xd0 net/nfc/llcp_sock.c:1044     nfc_sock_create+0xc9/0xf0 net/nfc/af_nfc.c:31     __sock_create+0x1a9/0x340 net/socket.c:1605     sock_create net/socket.c:1663 [inline]     __sys_socket_create net/socket.c:1700 [inline]     __sys_socket+0xb9/0x1a0 net/socket.c:1747     __do_sys_socket net/socket.c:1761 [inline]     __se_sys_socket net/socket.c:1759 [inline]     __x64_sys_socket+0x1b/0x30 net/socket.c:1759     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  BUG: memory leak unreferenced object 0xffff88810fbd9800 (size 240):   comm \"syz.0.17\", pid 6096, jiffies 4294942850   hex dump (first 32 bytes):     68 f0 ff 08 81 88 ff ff 68 f0 ff 08 81 88 ff ff  h.......h.......     00 00 00 00 00 00 00 00 00 68 2f 27 81 88 ff ff  .........h/'....   backtrace (crc 6cc652b1):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5336     __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/sk ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23164",
                                "url": "https://ubuntu.com/security/CVE-2026-23164",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  rocker: fix memory leak in rocker_world_port_post_fini()  In rocker_world_port_pre_init(), rocker_port->wpriv is allocated with kzalloc(wops->port_priv_size, GFP_KERNEL). However, in rocker_world_port_post_fini(), the memory is only freed when wops->port_post_fini callback is set:      if (!wops->port_post_fini)         return;     wops->port_post_fini(rocker_port);     kfree(rocker_port->wpriv);  Since rocker_ofdpa_ops does not implement port_post_fini callback (it is NULL), the wpriv memory allocated for each port is never freed when ports are removed. This leads to a memory leak of sizeof(struct ofdpa_port) bytes per port on every device removal.  Fix this by always calling kfree(rocker_port->wpriv) regardless of whether the port_post_fini callback exists.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23172",
                                "url": "https://ubuntu.com/security/CVE-2026-23172",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: wwan: t7xx: fix potential skb->frags overflow in RX path  When receiving data in the DPMAIF RX path, the t7xx_dpmaif_set_frag_to_skb() function adds page fragments to an skb without checking if the number of fragments has exceeded MAX_SKB_FRAGS. This could lead to a buffer overflow in skb_shinfo(skb)->frags[] array, corrupting adjacent memory and potentially causing kernel crashes or other undefined behavior.  This issue was identified through static code analysis by comparing with a similar vulnerability fixed in the mt76 driver commit b102f0c522cf (\"mt76: fix array overflow on receiving too many fragments for a packet\").  The vulnerability could be triggered if the modem firmware sends packets with excessive fragments. While under normal protocol conditions (MTU 3080 bytes, BAT buffer 3584 bytes), a single packet should not require additional fragments, the kernel should not blindly trust firmware behavior. Malicious, buggy, or compromised firmware could potentially craft packets with more fragments than the kernel expects.  Fix this by adding a bounds check before calling skb_add_rx_frag() to ensure nr_frags does not exceed MAX_SKB_FRAGS.  The check must be performed before unmapping to avoid a page leak and double DMA unmap during device teardown.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23212",
                                "url": "https://ubuntu.com/security/CVE-2026-23212",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: annotate data-races around slave->last_rx  slave->last_rx and slave->target_last_arp_rx[...] can be read and written locklessly. Add READ_ONCE() and WRITE_ONCE() annotations.  syzbot reported:  BUG: KCSAN: data-race in bond_rcv_validate / bond_rcv_validate  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 1:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410 ...  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 0:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410   br_netif_receive_skb net/bridge/br_input.c:30 [inline]   NF_HOOK include/linux/netfilter.h:318 [inline] ...  value changed: 0x0000000100005365 -> 0x0000000100005366",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23160",
                                "url": "https://ubuntu.com/security/CVE-2026-23160",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeon_ep: Fix memory leak in octep_device_setup()  In octep_device_setup(), if octep_ctrl_net_init() fails, the function returns directly without unmapping the mapped resources and freeing the allocated configuration memory.  Fix this by jumping to the unsupported_dev label, which performs the necessary cleanup. This aligns with the error handling logic of other paths in this function.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23146",
                                "url": "https://ubuntu.com/security/CVE-2026-23146",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work  hci_uart_set_proto() sets HCI_UART_PROTO_INIT before calling hci_uart_register_dev(), which calls proto->open() to initialize hu->priv. However, if a TTY write wakeup occurs during this window, hci_uart_tx_wakeup() may schedule write_work before hu->priv is initialized, leading to a NULL pointer dereference in hci_uart_write_work() when proto->dequeue() accesses hu->priv.  The race condition is:    CPU0                              CPU1   ----                              ----   hci_uart_set_proto()     set_bit(HCI_UART_PROTO_INIT)     hci_uart_register_dev()                                     tty write wakeup                                       hci_uart_tty_wakeup()                                         hci_uart_tx_wakeup()                                           schedule_work(&hu->write_work)       proto->open(hu)         // initializes hu->priv                                     hci_uart_write_work()                                       hci_uart_dequeue()                                         proto->dequeue(hu)                                           // accesses hu->priv (NULL!)  Fix this by moving set_bit(HCI_UART_PROTO_INIT) after proto->open() succeeds, ensuring hu->priv is initialized before any work can be scheduled.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23394",
                                "url": "https://ubuntu.com/security/CVE-2026-23394",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  af_unix: Give up GC if MSG_PEEK intervened.  Igor Ushakov reported that GC purged the receive queue of an alive socket due to a race with MSG_PEEK with a nice repro.  This is the exact same issue previously fixed by commit cbcf01128d0a (\"af_unix: fix garbage collect vs MSG_PEEK\").  After GC was replaced with the current algorithm, the cited commit removed the locking dance in unix_peek_fds() and reintroduced the same issue.  The problem is that MSG_PEEK bumps a file refcount without interacting with GC.  Consider an SCC containing sk-A and sk-B, where sk-A is close()d but can be recv()ed via sk-B.  The bad thing happens if sk-A is recv()ed with MSG_PEEK from sk-B and sk-B is close()d while GC is checking unix_vertex_dead() for sk-A and sk-B.    GC thread                    User thread   ---------                    -----------   unix_vertex_dead(sk-A)   -> true   <------.                     \\                      `------   recv(sk-B, MSG_PEEK)               invalidate !!    -> sk-A's file refcount : 1 -> 2                                 close(sk-B)                                -> sk-B's file refcount : 2 -> 1   unix_vertex_dead(sk-B)   -> true  Initially, sk-A's file refcount is 1 by the inflight fd in sk-B recvq.  GC thinks sk-A is dead because the file refcount is the same as the number of its inflight fds.  However, sk-A's file refcount is bumped silently by MSG_PEEK, which invalidates the previous evaluation.  At this moment, sk-B's file refcount is 2; one by the open fd, and one by the inflight fd in sk-A.  The subsequent close() releases one refcount by the former.  Finally, GC incorrectly concludes that both sk-A and sk-B are dead.  One option is to restore the locking dance in unix_peek_fds(), but we can resolve this more elegantly thanks to the new algorithm.  The point is that the issue does not occur without the subsequent close() and we actually do not need to synchronise MSG_PEEK with the dead SCC detection.  When the issue occurs, close() and GC touch the same file refcount. If GC sees the refcount being decremented by close(), it can just give up garbage-collecting the SCC.  Therefore, we only need to signal the race during MSG_PEEK with a proper memory barrier to make it visible to the GC.  Let's use seqcount_t to notify GC when MSG_PEEK occurs and let it defer the SCC to the next run.  This way no locking is needed on the MSG_PEEK side, and we can avoid imposing a penalty on every MSG_PEEK unnecessarily.  Note that we can retry within unix_scc_dead() if MSG_PEEK is detected, but we do not do so to avoid hung task splat from abusive MSG_PEEK calls.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-25 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38591",
                                "url": "https://ubuntu.com/security/CVE-2025-38591",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Reject narrower access to pointer ctx fields  The following BPF program, simplified from a syzkaller repro, causes a kernel warning:      r0 = *(u8 *)(r1 + 169);     exit;  With pointer field sk being at offset 168 in __sk_buff. This access is detected as a narrower read in bpf_skb_is_valid_access because it doesn't match offsetof(struct __sk_buff, sk). It is therefore allowed and later proceeds to bpf_convert_ctx_access. Note that for the \"is_narrower_load\" case in the convert_ctx_accesses(), the insn->off is aligned, so the cnt may not be 0 because it matches the offsetof(struct __sk_buff, sk) in the bpf_convert_ctx_access. However, the target_size stays 0 and the verifier errors with a kernel warning:      verifier bug: error during ctx access conversion(1)  This patch fixes that to return a proper \"invalid bpf_context access off=X size=Y\" error on the load instruction.  The same issue affects multiple other fields in context structures that allow narrow access. Some other non-affected fields (for sk_msg, sk_lookup, and sockopt) were also changed to use bpf_ctx_range_ptr for consistency.  Note this syzkaller crash was reported in the \"Closes\" link below, which used to be about a different bug, fixed in commit fce7bd8e385a (\"bpf/verifier: Handle BPF_LOAD_ACQ instructions in insn_def_regno()\"). Because syzbot somehow confused the two bugs, the new crash and repro didn't get reported to the mailing list.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-08-19 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23035",
                                "url": "https://ubuntu.com/security/CVE-2026-23035",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Pass netdev to mlx5e_destroy_netdev instead of priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails.  Pass netdev to mlx5e_destroy_netdev() to guarantee it will work on a valid netdev.  On mlx5e_remove: Check validity of priv->profile, before attempting to cleanup any resources that might be not there.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000370 PGD 0 P4D 0 Oops: Oops: 0000 [#1] SMP NOPTI CPU: 15 UID: 0 PID: 520 Comm: devlink Not tainted 6.18.0-rc5+ #115 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_dcbnl_dscp_app+0x23/0x100 RSP: 0018:ffffc9000083f8b8 EFLAGS: 00010286 RAX: ffff8881126fc380 RBX: ffff8881015ac400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8881035109c0 RBP: ffff8881035109c0 R08: ffff888101e3e838 R09: ffff888100264e10 R10: ffffc9000083f898 R11: ffffc9000083f8a0 R12: ffff888101b921a0 R13: ffff888101b921a0 R14: ffff8881015ac9a0 R15: ffff8881015ac400 FS:  00007f789a3c8740(0000) GS:ffff88856aa59000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000370 CR3: 000000010b6c0001 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_remove+0x57/0x110  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22996",
                                "url": "https://ubuntu.com/security/CVE-2026-22996",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Don't store mlx5e_priv in mlx5e_dev devlink priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails, mlx5e_priv in mlx5e_dev devlink private is used to reference the netdev and mdev associated with that struct. Instead, store netdev directly into mlx5e_dev and get mdev from the containing mlx5_adev aux device structure.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000520  #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: 3 UID: 0 PID: 521 Comm: devlink Not tainted 6.18.0-rc5+ #117 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_remove+0x68/0x130 RSP: 0018:ffffc900034838f0 EFLAGS: 00010246 RAX: ffff88810283c380 RBX: ffff888101874400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffff888102d789c0 R08: ffff8881007137f0 R09: ffff888100264e10 R10: ffffc90003483898 R11: ffffc900034838a0 R12: ffff888100d261a0 R13: ffff888100d261a0 R14: ffff8881018749a0 R15: ffff888101874400 FS:  00007f8565fea740(0000) GS:ffff88856a759000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000520 CR3: 000000010b11a004 CR4: 0000000000370ef0 Call Trace:  <TASK>  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23000",
                                "url": "https://ubuntu.com/security/CVE-2026-23000",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Fix crash on profile change rollback failure  mlx5e_netdev_change_profile can fail to attach a new profile and can fail to rollback to old profile, in such case, we could end up with a dangling netdev with a fully reset netdev_priv. A retry to change profile, e.g. another attempt to call mlx5e_netdev_change_profile via switchdev mode change, will crash trying to access the now NULL priv->mdev.  This fix allows mlx5e_netdev_change_profile() to handle previous failures and an empty priv, by not assuming priv is valid.  Pass netdev and mdev to all flows requiring mlx5e_netdev_change_profile() and avoid passing priv. In mlx5e_netdev_change_profile() check if current priv is valid, and if not, just attach the new profile without trying to access the old one.  This fixes the following oops, when enabling switchdev mode for the 2nd time after first time failure:   ## Enabling switchdev mode first time:  mlx5_core 0012:03:00.1: E-Switch: Supported tc chains and prios offload workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12                                                                         ^^^^^^^^ mlx5_core 0000:00:03.0: E-Switch: Disable: mode(LEGACY), nvfs(0), necvfs(0), active vports(0)   ## retry: Enabling switchdev mode 2nd time:  mlx5_core 0000:00:03.0: E-Switch: Supported tc chains and prios offload BUG: kernel NULL pointer dereference, address: 0000000000000038  #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: 520 Comm: devlink Not tainted 6.18.0-rc4+ #91 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_detach_netdev+0x3c/0x90 Code: 50 00 00 f0 80 4f 78 02 48 8b bf e8 07 00 00 48 85 ff 74 16 48 8b 73 78 48 d1 ee 83 e6 01 83 f6 01 40 0f b6 f6 e8 c4 42 00 00 <48> 8b 45 38 48 85 c0 74 08 48 89 df e8 cc 47 40 1e 48 8b bb f0 07 RSP: 0018:ffffc90000673890 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff8881036a89c0 RCX: 0000000000000000 RDX: ffff888113f63800 RSI: ffffffff822fe720 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000002dcd R09: 0000000000000000 R10: ffffc900006738e8 R11: 00000000ffffffff R12: 0000000000000000 R13: 0000000000000000 R14: ffff8881036a89c0 R15: 0000000000000000 FS:  00007fdfb8384740(0000) GS:ffff88856a9d6000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000038 CR3: 0000000112ae0005 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_netdev_change_profile+0x45/0xb0  mlx5e_vport_rep_load+0x27b/0x2d0  mlx5_esw_offloads_rep_load+0x72/0xf0  esw_offloads_enable+0x5d0/0x970  mlx5_eswitch_enable_locked+0x349/0x430  ? is_mp_supported+0x57/0xb0  mlx5_devlink_eswitch_mode_set+0x26b/0x430  devlink_nl_eswitch_set_doit+0x6f/0xf0  genl_family_rcv_msg_doit+0xe8/0x140  genl_rcv_msg+0x18b/0x290  ? __pfx_devlink_nl_pre_doit+0x10/0x10  ? __pfx_devlink_nl_eswitch_set_doit+0x10/0x10  ? __pfx_devlink_nl_post_doit+0x10/0x10  ? __pfx_genl_rcv_msg+0x10/0x10  netlink_rcv_skb+0x52/0x100  genl_rcv+0x28/0x40  netlink_unicast+0x282/0x3e0  ? __alloc_skb+0xd6/0x190  netlink_sendmsg+0x1f7/0x430  __sys_sendto+0x213/0x220  ? __sys_recvmsg+0x6a/0xd0  __x64_sys_sendto+0x24/0x30  do_syscall_64+0x50/0x1f0  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fdfb8495047",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23053",
                                "url": "https://ubuntu.com/security/CVE-2026-23053",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Fix a deadlock involving nfs_release_folio()  Wang Zhaolong reports a deadlock involving NFSv4.1 state recovery waiting on kthreadd, which is attempting to reclaim memory by calling nfs_release_folio(). The latter cannot make progress due to state recovery being needed.  It seems that the only safe thing to do here is to kick off a writeback of the folio, without waiting for completion, or else kicking off an asynchronous commit.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23050",
                                "url": "https://ubuntu.com/security/CVE-2026-23050",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pNFS: Fix a deadlock when returning a delegation during open()  Ben Coddington reports seeing a hang in the following stack trace:   0 [ffffd0b50e1774e0] __schedule at ffffffff9ca05415   1 [ffffd0b50e177548] schedule at ffffffff9ca05717   2 [ffffd0b50e177558] bit_wait at ffffffff9ca061e1   3 [ffffd0b50e177568] __wait_on_bit at ffffffff9ca05cfb   4 [ffffd0b50e1775c8] out_of_line_wait_on_bit at ffffffff9ca05ea5   5 [ffffd0b50e177618] pnfs_roc at ffffffffc154207b [nfsv4]   6 [ffffd0b50e1776b8] _nfs4_proc_delegreturn at ffffffffc1506586 [nfsv4]   7 [ffffd0b50e177788] nfs4_proc_delegreturn at ffffffffc1507480 [nfsv4]   8 [ffffd0b50e1777f8] nfs_do_return_delegation at ffffffffc1523e41 [nfsv4]   9 [ffffd0b50e177838] nfs_inode_set_delegation at ffffffffc1524a75 [nfsv4]  10 [ffffd0b50e177888] nfs4_process_delegation at ffffffffc14f41dd [nfsv4]  11 [ffffd0b50e1778a0] _nfs4_opendata_to_nfs4_state at ffffffffc1503edf [nfsv4]  12 [ffffd0b50e1778c0] _nfs4_open_and_get_state at ffffffffc1504e56 [nfsv4]  13 [ffffd0b50e177978] _nfs4_do_open at ffffffffc15051b8 [nfsv4]  14 [ffffd0b50e1779f8] nfs4_do_open at ffffffffc150559c [nfsv4]  15 [ffffd0b50e177a80] nfs4_atomic_open at ffffffffc15057fb [nfsv4]  16 [ffffd0b50e177ad0] nfs4_file_open at ffffffffc15219be [nfsv4]  17 [ffffd0b50e177b78] do_dentry_open at ffffffff9c09e6ea  18 [ffffd0b50e177ba8] vfs_open at ffffffff9c0a082e  19 [ffffd0b50e177bd0] dentry_open at ffffffff9c0a0935  The issue is that the delegreturn is being asked to wait for a layout return that cannot complete because a state recovery was initiated. The state recovery cannot complete until the open() finishes processing the delegations it was given.  The solution is to propagate the existing flags that indicate a non-blocking call to the function pnfs_roc(), so that it knows not to wait in this situation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23005",
                                "url": "https://ubuntu.com/security/CVE-2026-23005",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1  When loading guest XSAVE state via KVM_SET_XSAVE, and when updating XFD in response to a guest WRMSR, clear XFD-disabled features in the saved (or to be restored) XSTATE_BV to ensure KVM doesn't attempt to load state for features that are disabled via the guest's XFD.  Because the kernel executes XRSTOR with the guest's XFD, saving XSTATE_BV[i]=1 with XFD[i]=1 will cause XRSTOR to #NM and panic the kernel.  E.g. if fpu_update_guest_xfd() sets XFD without clearing XSTATE_BV:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#29: amx_test/848   Modules linked in: kvm_intel kvm irqbypass   CPU: 29 UID: 1000 PID: 848 Comm: amx_test Not tainted 6.19.0-rc2-ffa07f7fd437-x86_amx_nm_xfd_non_init-vm #171 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    switch_fpu_return+0x4a/0xb0    kvm_arch_vcpu_ioctl_run+0x1245/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  This can happen if the guest executes WRMSR(MSR_IA32_XFD) to set XFD[18] = 1, and a host IRQ triggers kernel_fpu_begin() prior to the vmexit handler's call to fpu_update_guest_xfd().  and if userspace stuffs XSTATE_BV[i]=1 via KVM_SET_XSAVE:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#14: amx_test/867   Modules linked in: kvm_intel kvm irqbypass   CPU: 14 UID: 1000 PID: 867 Comm: amx_test Not tainted 6.19.0-rc2-2dace9faccd6-x86_amx_nm_xfd_non_init-vm #168 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    fpu_swap_kvm_fpstate+0x6b/0x120    kvm_load_guest_fpu+0x30/0x80 [kvm]    kvm_arch_vcpu_ioctl_run+0x85/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  The new behavior is consistent with the AMX architecture.  Per Intel's SDM, XSAVE saves XSTATE_BV as '0' for components that are disabled via XFD (and non-compacted XSAVE saves the initial configuration of the state component):    If XSAVE, XSAVEC, XSAVEOPT, or XSAVES is saving the state component i,   the instruction does not generate #NM when XCR0[i] = IA32_XFD[i] = 1;   instead, it operates as if XINUSE[i] = 0 (and the state component was   in its initial state): it saves bit i of XSTATE_BV field of the XSAVE   header as 0; in addition, XSAVE saves the initial configuration of the   state component (the other instructions do not save state component i).  Alternatively, KVM could always do XRSTOR with XFD=0, e.g. by using a constant XFD based on the set of enabled features when XSAVEing for a struct fpu_guest.  However, having XSTATE_BV[i]=1 for XFD-disabled features can only happen in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, because fpu_swap_kvm_fpstate()'s call to save_fpregs_to_fpstate() saves the outgoing FPU state with the current XFD; and that is (on all but the first WRMSR to XFD) the guest XFD.  Therefore, XFD can only go out of sync with XSTATE_BV in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, and it we can consider it (de facto) part of KVM ABI that KVM_GET_XSAVE returns XSTATE_BV[i]=0 for XFD-disabled features.  [Move clea ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-58097",
                                "url": "https://ubuntu.com/security/CVE-2024-58097",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix RCU stall while reaping monitor destination ring  While processing the monitor destination ring, MSDUs are reaped from the link descriptor based on the corresponding buf_id.  However, sometimes the driver cannot obtain a valid buffer corresponding to the buf_id received from the hardware. This causes an infinite loop in the destination processing, resulting in a kernel crash.  kernel log: ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed  Fix this by skipping the problematic buf_id and reaping the next entry, replacing the break with the next MSDU processing.  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68365",
                                "url": "https://ubuntu.com/security/CVE-2025-68365",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/ntfs3: Initialize allocated memory before use  KMSAN reports: Multiple uninitialized values detected:  - KMSAN: uninit-value in ntfs_read_hdr (3) - KMSAN: uninit-value in bcmp (3)  Memory is allocated by __getname(), which is a wrapper for kmem_cache_alloc(). This memory is used before being properly cleared. Change kmem_cache_alloc() to kmem_cache_zalloc() to properly allocate and clear memory before use.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-37926",
                                "url": "https://ubuntu.com/security/CVE-2025-37926",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_session_rpc_open  A UAF issue can occur due to a race condition between ksmbd_session_rpc_open() and __session_rpc_close(). Add rpc_lock to the session to protect it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-05-20 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23030",
                                "url": "https://ubuntu.com/security/CVE-2026-23030",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: rockchip: inno-usb2: Fix a double free bug in rockchip_usb2phy_probe()  The for_each_available_child_of_node() calls of_node_put() to release child_np in each success loop. After breaking from the loop with the child_np has been released, the code will jump to the put_child label and will call the of_node_put() again if the devm_request_threaded_irq() fails. These cause a double free bug.  Fix by returning directly to avoid the duplicate of_node_put().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23025",
                                "url": "https://ubuntu.com/security/CVE-2026-23025",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/page_alloc: prevent pcp corruption with SMP=n  The kernel test robot has reported:   BUG: spinlock trylock failure on UP on CPU#0, kcompactd0/28   lock: 0xffff888807e35ef0, .magic: dead4ead, .owner: kcompactd0/28, .owner_cpu: 0  CPU: 0 UID: 0 PID: 28 Comm: kcompactd0 Not tainted 6.18.0-rc5-00127-ga06157804399 #1 PREEMPT 8cc09ef94dcec767faa911515ce9e609c45db470  Call Trace:   <IRQ>   __dump_stack (lib/dump_stack.c:95)   dump_stack_lvl (lib/dump_stack.c:123)   dump_stack (lib/dump_stack.c:130)   spin_dump (kernel/locking/spinlock_debug.c:71)   do_raw_spin_trylock (kernel/locking/spinlock_debug.c:?)   _raw_spin_trylock (include/linux/spinlock_api_smp.h:89 kernel/locking/spinlock.c:138)   __free_frozen_pages (mm/page_alloc.c:2973)   ___free_pages (mm/page_alloc.c:5295)   __free_pages (mm/page_alloc.c:5334)   tlb_remove_table_rcu (include/linux/mm.h:? include/linux/mm.h:3122 include/asm-generic/tlb.h:220 mm/mmu_gather.c:227 mm/mmu_gather.c:290)   ? __cfi_tlb_remove_table_rcu (mm/mmu_gather.c:289)   ? rcu_core (kernel/rcu/tree.c:?)   rcu_core (include/linux/rcupdate.h:341 kernel/rcu/tree.c:2607 kernel/rcu/tree.c:2861)   rcu_core_si (kernel/rcu/tree.c:2879)   handle_softirqs (arch/x86/include/asm/jump_label.h:36 include/trace/events/irq.h:142 kernel/softirq.c:623)   __irq_exit_rcu (arch/x86/include/asm/jump_label.h:36 kernel/softirq.c:725)   irq_exit_rcu (kernel/softirq.c:741)   sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1052)   </IRQ>   <TASK>  RIP: 0010:_raw_spin_unlock_irqrestore (arch/x86/include/asm/preempt.h:95 include/linux/spinlock_api_smp.h:152 kernel/locking/spinlock.c:194)   free_pcppages_bulk (mm/page_alloc.c:1494)   drain_pages_zone (include/linux/spinlock.h:391 mm/page_alloc.c:2632)   __drain_all_pages (mm/page_alloc.c:2731)   drain_all_pages (mm/page_alloc.c:2747)   kcompactd (mm/compaction.c:3115)   kthread (kernel/kthread.c:465)   ? __cfi_kcompactd (mm/compaction.c:3166)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork (arch/x86/kernel/process.c:164)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork_asm (arch/x86/entry/entry_64.S:255)   </TASK>  Matthew has analyzed the report and identified that in drain_page_zone() we are in a section protected by spin_lock(&pcp->lock) and then get an interrupt that attempts spin_trylock() on the same lock.  The code is designed to work this way without disabling IRQs and occasionally fail the trylock with a fallback.  However, the SMP=n spinlock implementation assumes spin_trylock() will always succeed, and thus it's normally a no-op.  Here the enabled lock debugging catches the problem, but otherwise it could cause a corruption of the pcp structure.  The problem has been introduced by commit 574907741599 (\"mm/page_alloc: leave IRQs enabled for per-cpu page allocations\").  The pcp locking scheme recognizes the need for disabling IRQs to prevent nesting spin_trylock() sections on SMP=n, but the need to prevent the nesting in spin_lock() has not been recognized.  Fix it by introducing local wrappers that change the spin_lock() to spin_lock_iqsave() with SMP=n and use them in all places that do spin_lock(&pcp->lock).  [vbabka@suse.cz: add pcp_ prefix to the spin_lock_irqsave wrappers, per Steven]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71186",
                                "url": "https://ubuntu.com/security/CVE-2025-71186",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: stm32: dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23078",
                                "url": "https://ubuntu.com/security/CVE-2026-23078",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: scarlett2: Fix buffer overflow in config retrieval  The scarlett2_usb_get_config() function has a logic error in the endianness conversion code that can cause buffer overflows when count > 1.  The code checks `if (size == 2)` where `size` is the total buffer size in bytes, then loops `count` times treating each element as u16 (2 bytes). This causes the loop to access `count * 2` bytes when the buffer only has `size` bytes allocated.  Fix by checking the element size (config_item->size) instead of the total buffer size. This ensures the endianness conversion matches the actual element type.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23142",
                                "url": "https://ubuntu.com/security/CVE-2026-23142",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs-scheme: cleanup access_pattern subdirs on scheme dir setup failure  When a DAMOS-scheme DAMON sysfs directory setup fails after setup of access_pattern/ directory, subdirectories of access_pattern/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23075",
                                "url": "https://ubuntu.com/security/CVE-2026-23075",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: esd_usb: esd_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In esd_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback esd_usb_read_bulk_callback(), the URBs are processed and resubmitted. In esd_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in esd_usb_close().  Fix the memory leak by anchoring the URB in the esd_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68725",
                                "url": "https://ubuntu.com/security/CVE-2025-68725",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Do not let BPF test infra emit invalid GSO types to stack  Yinhao et al. reported that their fuzzer tool was able to trigger a skb_warn_bad_offload() from netif_skb_features() -> gso_features_check(). When a BPF program - triggered via BPF test infra - pushes the packet to the loopback device via bpf_clone_redirect() then mentioned offload warning can be seen. GSO-related features are then rightfully disabled.  We get into this situation due to convert___skb_to_skb() setting gso_segs and gso_size but not gso_type. Technically, it makes sense that this warning triggers since the GSO properties are malformed due to the gso_type. Potentially, the gso_type could be marked non-trustworthy through setting it at least to SKB_GSO_DODGY without any other specific assumptions, but that also feels wrong given we should not go further into the GSO engine in the first place.  The checks were added in 121d57af308d (\"gso: validate gso_type in GSO handlers\") because there were malicious (syzbot) senders that combine a protocol with a non-matching gso_type. If we would want to drop such packets, gso_features_check() currently only returns feature flags via netif_skb_features(), so one location for potentially dropping such skbs could be validate_xmit_unreadable_skb(), but then otoh it would be an additional check in the fast-path for a very corner case. Given bpf_clone_redirect() is the only place where BPF test infra could emit such packets, lets reject them right there.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23097",
                                "url": "https://ubuntu.com/security/CVE-2026-23097",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  migrate: correct lock ordering for hugetlb file folios  Syzbot has found a deadlock (analyzed by Lance Yang):  1) Task (5749): Holds folio_lock, then tries to acquire i_mmap_rwsem(read lock). 2) Task (5754): Holds i_mmap_rwsem(write lock), then tries to acquire folio_lock.  migrate_pages()   -> migrate_hugetlbs()     -> unmap_and_move_huge_page()     <- Takes folio_lock!       -> remove_migration_ptes()         -> __rmap_walk_file()           -> i_mmap_lock_read()       <- Waits for i_mmap_rwsem(read lock)!  hugetlbfs_fallocate()   -> hugetlbfs_punch_hole()           <- Takes i_mmap_rwsem(write lock)!     -> hugetlbfs_zero_partial_page()      -> filemap_lock_hugetlb_folio()       -> filemap_lock_folio()         -> __filemap_get_folio        <- Waits for folio_lock!  The migration path is the one taking locks in the wrong order according to the documentation at the top of mm/rmap.c.  So expand the scope of the existing i_mmap_lock to cover the calls to remove_migration_ptes() too.  This is (mostly) how it used to be after commit c0d0381ade79.  That was removed by 336bf30eb765 for both file & anon hugetlb pages when it should only have been removed for anon hugetlb pages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23108",
                                "url": "https://ubuntu.com/security/CVE-2026-23108",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: usb_8dev: usb_8dev_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In usb_8dev_open() -> usb_8dev_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback usb_8dev_read_bulk_callback(), the URBs are processed and resubmitted. In usb_8dev_close() -> unlink_all_urbs() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the usb_8dev_read_bulk_callback() to the priv->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23080",
                                "url": "https://ubuntu.com/security/CVE-2026-23080",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: mcba_usb: mcba_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In mcba_usb_probe() -> mcba_usb_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback mcba_usb_read_bulk_callback(), the URBs are processed and resubmitted. In mcba_usb_close() -> mcba_urb_unlink() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the mcba_usb_read_bulk_callback()to the priv->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23061",
                                "url": "https://ubuntu.com/security/CVE-2026-23061",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In kvaser_usb_set_{,data_}bittiming() -> kvaser_usb_setup_rx_urbs(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback kvaser_usb_read_bulk_callback(), the URBs are processed and resubmitted. In kvaser_usb_remove_interfaces() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the kvaser_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23058",
                                "url": "https://ubuntu.com/security/CVE-2026-23058",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In ems_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback ems_usb_read_bulk_callback(), the URBs are processed and resubmitted. In ems_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in ems_usb_close().  Fix the memory leak by anchoring the URB in the ems_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23085",
                                "url": "https://ubuntu.com/security/CVE-2026-23085",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/gic-v3-its: Avoid truncating memory addresses  On 32-bit machines with CONFIG_ARM_LPAE, it is possible for lowmem allocations to be backed by addresses physical memory above the 32-bit address limit, as found while experimenting with larger VMSPLIT configurations.  This caused the qemu virt model to crash in the GICv3 driver, which allocates the 'itt' object using GFP_KERNEL. Since all memory below the 4GB physical address limit is in ZONE_DMA in this configuration, kmalloc() defaults to higher addresses for ZONE_NORMAL, and the ITS driver stores the physical address in a 32-bit 'unsigned long' variable.  Change the itt_addr variable to the correct phys_addr_t type instead, along with all other variables in this driver that hold a physical address.  The gicv5 driver correctly uses u64 variables, while all other irqchip drivers don't call virt_to_phys or similar interfaces. It's expected that other device drivers have similar issues, but fixing this one is sufficient for booting a virtio based guest.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23116",
                                "url": "https://ubuntu.com/security/CVE-2026-23116",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu  For i.MX8MQ platform, the ADB in the VPUMIX domain has no separate reset and clock enable bits, but is ungated and reset together with the VPUs. So we can't reset G1 or G2 separately, it may led to the system hang. Remove rst_mask and clk_mask of imx8mq_vpu_blk_ctl_domain_data. Let imx8mq_vpu_power_notifier() do really vpu reset.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23098",
                                "url": "https://ubuntu.com/security/CVE-2026-23098",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: fix double-free in nr_route_frame()  In nr_route_frame(), old_skb is immediately freed without checking if nr_neigh->ax25 pointer is NULL. Therefore, if nr_neigh->ax25 is NULL, the caller function will free old_skb again, causing a double-free bug.  Therefore, to prevent this, we need to modify it to check whether nr_neigh->ax25 is NULL before freeing old_skb.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23063",
                                "url": "https://ubuntu.com/security/CVE-2026-23063",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: ensure safe queue release with state management  Directly calling `put_queue` carries risks since it cannot guarantee that resources of `uacce_queue` have been fully released beforehand. So adding a `stop_queue` operation for the UACCE_CMD_PUT_Q command and leaving the `put_queue` operation to the final resource release ensures safety.  Queue states are defined as follows: - UACCE_Q_ZOMBIE: Initial state - UACCE_Q_INIT: After opening `uacce` - UACCE_Q_STARTED: After `start` is issued via `ioctl`  When executing `poweroff -f` in virt while accelerator are still working, `uacce_fops_release` and `uacce_remove` may execute concurrently. This can cause `uacce_put_queue` within `uacce_fops_release` to access a NULL `ops` pointer. Therefore, add state checks to prevent accessing freed pointers.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23056",
                                "url": "https://ubuntu.com/security/CVE-2026-23056",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: implement mremap in uacce_vm_ops to return -EPERM  The current uacce_vm_ops does not support the mremap operation of vm_operations_struct. Implement .mremap to return -EPERM to remind users.  The reason we need to explicitly disable mremap is that when the driver does not implement .mremap, it uses the default mremap method. This could lead to a risk scenario:  An application might first mmap address p1, then mremap to p2, followed by munmap(p1), and finally munmap(p2). Since the default mremap copies the original vma's vm_private_data (i.e., q) to the new vma, both munmap operations would trigger vma_close, causing q->qfr to be freed twice(qfr will be set to null here, so repeated release is ok).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23094",
                                "url": "https://ubuntu.com/security/CVE-2026-23094",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix isolate sysfs check condition  uacce supports the device isolation feature. If the driver implements the isolate_err_threshold_read and isolate_err_threshold_write callback functions, uacce will create sysfs files now. Users can read and configure the isolation policy through sysfs. Currently, sysfs files are created as long as either isolate_err_threshold_read or isolate_err_threshold_write callback functions are present.  However, accessing a non-existent callback function may cause the system to crash. Therefore, intercept the creation of sysfs if neither read nor write exists; create sysfs if either is supported, but intercept unsupported operations at the call site.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23096",
                                "url": "https://ubuntu.com/security/CVE-2026-23096",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix cdev handling in the cleanup path  When cdev_device_add fails, it internally releases the cdev memory, and if cdev_device_del is then executed, it will cause a hang error. To fix it, we check the return value of cdev_device_add() and clear uacce->cdev to avoid calling cdev_device_del in the uacce_remove.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23091",
                                "url": "https://ubuntu.com/security/CVE-2026-23091",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  intel_th: fix device leak on output open()  Make sure to drop the reference taken when looking up the th device during output device open() on errors and on close().  Note that a recent commit fixed the leak in a couple of open() error paths but not all of them, and the reference is still leaking on successful open().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23088",
                                "url": "https://ubuntu.com/security/CVE-2026-23088",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Fix crash on synthetic stacktrace field usage  When creating a synthetic event based on an existing synthetic event that had a stacktrace field and the new synthetic event used that field a kernel crash occurred:   ~# cd /sys/kernel/tracing  ~# echo 's:stack unsigned long stack[];' > dynamic_events  ~# echo 'hist:keys=prev_pid:s0=common_stacktrace if prev_state & 3' >> events/sched/sched_switch/trigger  ~# echo 'hist:keys=next_pid:s1=$s0:onmatch(sched.sched_switch).trace(stack,$s1)' >> events/sched/sched_switch/trigger  The above creates a synthetic event that takes a stacktrace when a task schedules out in a non-running state and passes that stacktrace to the sched_switch event when that task schedules back in. It triggers the \"stack\" synthetic event that has a stacktrace as its field (called \"stack\").   ~# echo 's:syscall_stack s64 id; unsigned long stack[];' >> dynamic_events  ~# echo 'hist:keys=common_pid:s2=stack' >> events/synthetic/stack/trigger  ~# echo 'hist:keys=common_pid:s3=$s2,i0=id:onmatch(synthetic.stack).trace(syscall_stack,$i0,$s3)' >> events/raw_syscalls/sys_exit/trigger  The above makes another synthetic event called \"syscall_stack\" that attaches the first synthetic event (stack) to the sys_exit trace event and records the stacktrace from the stack event with the id of the system call that is exiting.  When enabling this event (or using it in a historgram):   ~# echo 1 > events/synthetic/syscall_stack/enable  Produces a kernel crash!   BUG: unable to handle page fault for address: 0000000000400010  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP PTI  CPU: 6 UID: 0 PID: 1257 Comm: bash Not tainted 6.16.3+deb14-amd64 #1 PREEMPT(lazy)  Debian 6.16.3-1  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:trace_event_raw_event_synth+0x90/0x380  Code: c5 00 00 00 00 85 d2 0f 84 e1 00 00 00 31 db eb 34 0f 1f 00 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 <49> 8b 04 24 48 83 c3 01 8d 0c c5 08 00 00 00 01 cd 41 3b 5d 40 0f  RSP: 0018:ffffd2670388f958 EFLAGS: 00010202  RAX: ffff8ba1065cc100 RBX: 0000000000000000 RCX: 0000000000000000  RDX: 0000000000000001 RSI: fffff266ffda7b90 RDI: ffffd2670388f9b0  RBP: 0000000000000010 R08: ffff8ba104e76000 R09: ffffd2670388fa50  R10: ffff8ba102dd42e0 R11: ffffffff9a908970 R12: 0000000000400010  R13: ffff8ba10a246400 R14: ffff8ba10a710220 R15: fffff266ffda7b90  FS:  00007fa3bc63f740(0000) GS:ffff8ba2e0f48000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000400010 CR3: 0000000107f9e003 CR4: 0000000000172ef0  Call Trace:   <TASK>   ? __tracing_map_insert+0x208/0x3a0   action_trace+0x67/0x70   event_hist_trigger+0x633/0x6d0   event_triggers_call+0x82/0x130   trace_event_buffer_commit+0x19d/0x250   trace_event_raw_event_sys_exit+0x62/0xb0   syscall_exit_work+0x9d/0x140   do_syscall_64+0x20a/0x2f0   ? trace_event_raw_event_sched_switch+0x12b/0x170   ? save_fpregs_to_fpstate+0x3e/0x90   ? _raw_spin_unlock+0xe/0x30   ? finish_task_switch.isra.0+0x97/0x2c0   ? __rseq_handle_notify_resume+0xad/0x4c0   ? __schedule+0x4b8/0xd00   ? restore_fpregs_from_fpstate+0x3c/0x90   ? switch_fpu_return+0x5b/0xe0   ? do_syscall_64+0x1ef/0x2f0   ? do_fault+0x2e9/0x540   ? __handle_mm_fault+0x7d1/0xf70   ? count_memcg_events+0x167/0x1d0   ? handle_mm_fault+0x1d7/0x2e0   ? do_user_addr_fault+0x2c3/0x7f0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  The reason is that the stacktrace field is not labeled as such, and is treated as a normal field and not as a dynamic event that it is.  In trace_event_raw_event_synth() the event is field is still treated as a dynamic array, but the retrieval of the data is considered a normal field, and the reference is just the meta data:  // Meta data is retrieved instead of a dynamic array ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23090",
                                "url": "https://ubuntu.com/security/CVE-2026-23090",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  slimbus: core: fix device reference leak on report present  Slimbus devices can be allocated dynamically upon reception of report-present messages.  Make sure to drop the reference taken when looking up already registered devices.  Note that this requires taking an extra reference in case the device has not yet been registered and has to be allocated.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23128",
                                "url": "https://ubuntu.com/security/CVE-2026-23128",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64: Set __nocfi on swsusp_arch_resume()  A DABT is reported[1] on an android based system when resume from hiberate. This happens because swsusp_arch_suspend_exit() is marked with SYM_CODE_*() and does not have a CFI hash, but swsusp_arch_resume() will attempt to verify the CFI hash when calling a copy of swsusp_arch_suspend_exit().  Given that there's an existing requirement that the entrypoint to swsusp_arch_suspend_exit() is the first byte of the .hibernate_exit.text section, we cannot fix this by marking swsusp_arch_suspend_exit() with SYM_FUNC_*(). The simplest fix for now is to disable the CFI check in swsusp_arch_resume().  Mark swsusp_arch_resume() as __nocfi to disable the CFI check.  [1] [   22.991934][    T1] Unable to handle kernel paging request at virtual address 0000000109170ffc [   22.991934][    T1] Mem abort info: [   22.991934][    T1]   ESR = 0x0000000096000007 [   22.991934][    T1]   EC = 0x25: DABT (current EL), IL = 32 bits [   22.991934][    T1]   SET = 0, FnV = 0 [   22.991934][    T1]   EA = 0, S1PTW = 0 [   22.991934][    T1]   FSC = 0x07: level 3 translation fault [   22.991934][    T1] Data abort info: [   22.991934][    T1]   ISV = 0, ISS = 0x00000007, ISS2 = 0x00000000 [   22.991934][    T1]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [   22.991934][    T1]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [   22.991934][    T1] [0000000109170ffc] user address but active_mm is swapper [   22.991934][    T1] Internal error: Oops: 0000000096000007 [#1] PREEMPT SMP [   22.991934][    T1] Dumping ftrace buffer: [   22.991934][    T1]    (ftrace buffer empty) [   22.991934][    T1] Modules linked in: [   22.991934][    T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.6.98-android15-8-g0b1d2aee7fc3-dirty-4k #1 688c7060a825a3ac418fe53881730b355915a419 [   22.991934][    T1] Hardware name: Unisoc UMS9360-base Board (DT) [   22.991934][    T1] pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [   22.991934][    T1] pc : swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1] lr : swsusp_arch_resume+0x294/0x344 [   22.991934][    T1] sp : ffffffc08006b960 [   22.991934][    T1] x29: ffffffc08006b9c0 x28: 0000000000000000 x27: 0000000000000000 [   22.991934][    T1] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000820 [   22.991934][    T1] x23: ffffffd0817e3000 x22: ffffffd0817e3000 x21: 0000000000000000 [   22.991934][    T1] x20: ffffff8089171000 x19: ffffffd08252c8c8 x18: ffffffc080061058 [   22.991934][    T1] x17: 00000000529c6ef0 x16: 00000000529c6ef0 x15: 0000000000000004 [   22.991934][    T1] x14: ffffff8178c88000 x13: 0000000000000006 x12: 0000000000000000 [   22.991934][    T1] x11: 0000000000000015 x10: 0000000000000001 x9 : ffffffd082533000 [   22.991934][    T1] x8 : 0000000109171000 x7 : 205b5d3433393139 x6 : 392e32322020205b [   22.991934][    T1] x5 : 000000010916f000 x4 : 000000008164b000 x3 : ffffff808a4e0530 [   22.991934][    T1] x2 : ffffffd08058e784 x1 : 0000000082326000 x0 : 000000010a283000 [   22.991934][    T1] Call trace: [   22.991934][    T1]  swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1]  hibernation_restore+0x158/0x18c [   22.991934][    T1]  load_image_and_restore+0xb0/0xec [   22.991934][    T1]  software_resume+0xf4/0x19c [   22.991934][    T1]  software_resume_initcall+0x34/0x78 [   22.991934][    T1]  do_one_initcall+0xe8/0x370 [   22.991934][    T1]  do_initcall_level+0xc8/0x19c [   22.991934][    T1]  do_initcalls+0x70/0xc0 [   22.991934][    T1]  do_basic_setup+0x1c/0x28 [   22.991934][    T1]  kernel_init_freeable+0xe0/0x148 [   22.991934][    T1]  kernel_init+0x20/0x1a8 [   22.991934][    T1]  ret_from_fork+0x10/0x20 [   22.991934][    T1] Code: a9400a61 f94013e0 f9438923 f9400a64 (b85fc110)  [catalin.marinas@arm.com: commit log updated by Mark Rutland]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23107",
                                "url": "https://ubuntu.com/security/CVE-2026-23107",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Allocate SSVE storage when restoring ZA  The code to restore a ZA context doesn't attempt to allocate the task's sve_state before setting TIF_SME. Consequently, restoring a ZA context can place a task into an invalid state where TIF_SME is set but the task's sve_state is NULL.  In legitimate but uncommon cases where the ZA signal context was NOT created by the kernel in the context of the same task (e.g. if the task is saved/restored with something like CRIU), we have no guarantee that sve_state had been allocated previously. In these cases, userspace can enter streaming mode without trapping while sve_state is NULL, causing a later NULL pointer dereference when the kernel attempts to store the register state:  | # ./sigreturn-za | Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 | Mem abort info: |   ESR = 0x0000000096000046 |   EC = 0x25: DABT (current EL), IL = 32 bits |   SET = 0, FnV = 0 |   EA = 0, S1PTW = 0 |   FSC = 0x06: level 2 translation fault | Data abort info: |   ISV = 0, ISS = 0x00000046, ISS2 = 0x00000000 |   CM = 0, WnR = 1, TnD = 0, TagAccess = 0 |   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 | user pgtable: 4k pages, 52-bit VAs, pgdp=0000000101f47c00 | [0000000000000000] pgd=08000001021d8403, p4d=0800000102274403, pud=0800000102275403, pmd=0000000000000000 | Internal error: Oops: 0000000096000046 [#1]  SMP | Modules linked in: | CPU: 0 UID: 0 PID: 153 Comm: sigreturn-za Not tainted 6.19.0-rc1 #1 PREEMPT | Hardware name: linux,dummy-virt (DT) | pstate: 214000c9 (nzCv daIF +PAN -UAO -TCO +DIT -SSBS BTYPE=--) | pc : sve_save_state+0x4/0xf0 | lr : fpsimd_save_user_state+0xb0/0x1c0 | sp : ffff80008070bcc0 | x29: ffff80008070bcc0 x28: fff00000c1ca4c40 x27: 63cfa172fb5cf658 | x26: fff00000c1ca5228 x25: 0000000000000000 x24: 0000000000000000 | x23: 0000000000000000 x22: fff00000c1ca4c40 x21: fff00000c1ca4c40 | x20: 0000000000000020 x19: fff00000ff6900f0 x18: 0000000000000000 | x17: fff05e8e0311f000 x16: 0000000000000000 x15: 028fca8f3bdaf21c | x14: 0000000000000212 x13: fff00000c0209f10 x12: 0000000000000020 | x11: 0000000000200b20 x10: 0000000000000000 x9 : fff00000ff69dcc0 | x8 : 00000000000003f2 x7 : 0000000000000001 x6 : fff00000c1ca5b48 | x5 : fff05e8e0311f000 x4 : 0000000008000000 x3 : 0000000000000000 | x2 : 0000000000000001 x1 : fff00000c1ca5970 x0 : 0000000000000440 | Call trace: |  sve_save_state+0x4/0xf0 (P) |  fpsimd_thread_switch+0x48/0x198 |  __switch_to+0x20/0x1c0 |  __schedule+0x36c/0xce0 |  schedule+0x34/0x11c |  exit_to_user_mode_loop+0x124/0x188 |  el0_interrupt+0xc8/0xd8 |  __el0_irq_handler_common+0x18/0x24 |  el0t_64_irq_handler+0x10/0x1c |  el0t_64_irq+0x198/0x19c | Code: 54000040 d51b4408 d65f03c0 d503245f (e5bb5800) | ---[ end trace 0000000000000000 ]---  Fix this by having restore_za_context() ensure that the task's sve_state is allocated, matching what we do when taking an SME trap. Any live SVE/SSVE state (which is restored earlier from a separate signal context) must be preserved, and hence this is not zeroed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23073",
                                "url": "https://ubuntu.com/security/CVE-2026-23073",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rsi: Fix memory corruption due to not set vif driver data size  The struct ieee80211_vif contains trailing space for vif driver data, when struct ieee80211_vif is allocated, the total memory size that is allocated is sizeof(struct ieee80211_vif) + size of vif driver data. The size of vif driver data is set by each WiFi driver as needed.  The RSI911x driver does not set vif driver data size, no trailing space for vif driver data is therefore allocated past struct ieee80211_vif . The RSI911x driver does however use the vif driver data to store its vif driver data structure \"struct vif_priv\". An access to vif->drv_priv leads to access out of struct ieee80211_vif bounds and corruption of some memory.  In case of the failure observed locally, rsi_mac80211_add_interface() would write struct vif_priv *vif_info = (struct vif_priv *)vif->drv_priv; vif_info->vap_id = vap_idx. This write corrupts struct fq_tin member struct list_head new_flows . The flow = list_first_entry(head, struct fq_flow, flowchain); in fq_tin_reset() then reports non-NULL bogus address, which when accessed causes a crash.  The trigger is very simple, boot the machine with init=/bin/sh , mount devtmpfs, sysfs, procfs, and then do \"ip link set wlan0 up\", \"sleep 1\", \"ip link set wlan0 down\" and the crash occurs.  Fix this by setting the correct size of vif driver data, which is the size of \"struct vif_priv\", so that memory is allocated and the driver can store its driver data in it, instead of corrupting memory around it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23135",
                                "url": "https://ubuntu.com/security/CVE-2026-23135",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath12k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23133",
                                "url": "https://ubuntu.com/security/CVE-2026-23133",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath10k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71200",
                                "url": "https://ubuntu.com/security/CVE-2025-71200",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: sdhci-of-dwcmshc: Prevent illegal clock reduction in HS200/HS400 mode  When operating in HS200 or HS400 timing modes, reducing the clock frequency below 52MHz will lead to link broken as the Rockchip DWC MSHC controller requires maintaining a minimum clock of 52MHz in these modes.  Add a check to prevent illegal clock reduction through debugfs:  root@debian:/# echo 50000000 > /sys/kernel/debug/mmc0/clock root@debian:/# [   30.090146] mmc0: running CQE recovery mmc0: cqhci: Failed to halt mmc0: cqhci: spurious TCN for tag 0 WARNING: drivers/mmc/host/cqhci-core.c:797 at cqhci_irq+0x254/0x818, CPU#1: kworker/1:0H/24 Modules linked in: CPU: 1 UID: 0 PID: 24 Comm: kworker/1:0H Not tainted 6.19.0-rc1-00001-g09db0998649d-dirty #204 PREEMPT Hardware name: Rockchip RK3588 EVB1 V10 Board (DT) Workqueue: kblockd blk_mq_run_work_fn pstate: 604000c9 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : cqhci_irq+0x254/0x818 lr : cqhci_irq+0x254/0x818 ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23089",
                                "url": "https://ubuntu.com/security/CVE-2026-23089",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix use-after-free in snd_usb_mixer_free()  When snd_usb_create_mixer() fails, snd_usb_mixer_free() frees mixer->id_elems but the controls already added to the card still reference the freed memory. Later when snd_card_register() runs, the OSS mixer layer calls their callbacks and hits a use-after-free read.  Call trace:   get_ctl_value+0x63f/0x820 sound/usb/mixer.c:411   get_min_max_with_quirks.isra.0+0x240/0x1f40 sound/usb/mixer.c:1241   mixer_ctl_feature_info+0x26b/0x490 sound/usb/mixer.c:1381   snd_mixer_oss_build_test+0x174/0x3a0 sound/core/oss/mixer_oss.c:887   ...   snd_card_register+0x4ed/0x6d0 sound/core/init.c:923   usb_audio_probe+0x5ef/0x2a90 sound/usb/card.c:1025  Fix by calling snd_ctl_remove() for all mixer controls before freeing id_elems. We save the next pointer first because snd_ctl_remove() frees the current element.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23076",
                                "url": "https://ubuntu.com/security/CVE-2026-23076",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ctxfi: Fix potential OOB access in audio mixer handling  In the audio mixer handling code of ctxfi driver, the conf field is used as a kind of loop index, and it's referred in the index callbacks (amixer_index() and sum_index()).  As spotted recently by fuzzers, the current code causes OOB access at those functions. | UBSAN: array-index-out-of-bounds in /build/reproducible-path/linux-6.17.8/sound/pci/ctxfi/ctamixer.c:347:48 | index 8 is out of range for type 'unsigned char [8]'  After the analysis, the cause was found to be the lack of the proper (re-)initialization of conj field.  This patch addresses those OOB accesses by adding the proper initializations of the loop indices.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71199",
                                "url": "https://ubuntu.com/security/CVE-2025-71199",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc driver  at91_adc_interrupt can call at91_adc_touch_data_handler function to start the work by schedule_work(&st->touch_st.workq).  If we remove the module which will call at91_adc_remove to make cleanup, it will free indio_dev through iio_device_unregister but quite a bit later. While the work mentioned above will be used. The sequence of operations that may lead to a UAF bug is as follows:  CPU0                                      CPU1                                       | at91_adc_workq_handler at91_adc_remove                      | iio_device_unregister(indio_dev)     | //free indio_dev a bit later         |                                      | iio_push_to_buffers(indio_dev)                                      | //use indio_dev  Fix it by ensuring that the work is canceled before proceeding with the cleanup in at91_adc_remove.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23101",
                                "url": "https://ubuntu.com/security/CVE-2026-23101",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  leds: led-class: Only Add LED to leds_list when it is fully ready  Before this change the LED was added to leds_list before led_init_core() gets called adding it the list before led_classdev.set_brightness_work gets initialized.  This leaves a window where led_trigger_register() of a LED's default trigger will call led_trigger_set() which calls led_set_brightness() which in turn will end up queueing the *uninitialized* led_classdev.set_brightness_work.  This race gets hit by the lenovo-thinkpad-t14s EC driver which registers 2 LEDs with a default trigger provided by snd_ctl_led.ko in quick succession. The first led_classdev_register() causes an async modprobe of snd_ctl_led to run and that async modprobe manages to exactly hit the window where the second LED is on the leds_list without led_init_core() being called for it, resulting in:   ------------[ cut here ]------------  WARNING: CPU: 11 PID: 5608 at kernel/workqueue.c:4234 __flush_work+0x344/0x390  Hardware name: LENOVO 21N2S01F0B/21N2S01F0B, BIOS N42ET93W (2.23 ) 09/01/2025  ...  Call trace:   __flush_work+0x344/0x390 (P)   flush_work+0x2c/0x50   led_trigger_set+0x1c8/0x340   led_trigger_register+0x17c/0x1c0   led_trigger_register_simple+0x84/0xe8   snd_ctl_led_init+0x40/0xf88 [snd_ctl_led]   do_one_initcall+0x5c/0x318   do_init_module+0x9c/0x2b8   load_module+0x7e0/0x998  Close the race window by moving the adding of the LED to leds_list to after the led_init_core() call.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23064",
                                "url": "https://ubuntu.com/security/CVE-2026-23064",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: act_ife: avoid possible NULL deref  tcf_ife_encode() must make sure ife_encode() does not return NULL.  syzbot reported:  Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]  RIP: 0010:ife_tlv_meta_encode+0x41/0xa0 net/ife/ife.c:166 CPU: 3 UID: 0 PID: 8990 Comm: syz.0.696 Not tainted syzkaller #0 PREEMPT(full) Call Trace:  <TASK>   ife_encode_meta_u32+0x153/0x180 net/sched/act_ife.c:101   tcf_ife_encode net/sched/act_ife.c:841 [inline]   tcf_ife_act+0x1022/0x1de0 net/sched/act_ife.c:877   tc_act include/net/tc_wrapper.h:130 [inline]   tcf_action_exec+0x1c0/0xa20 net/sched/act_api.c:1152   tcf_exts_exec include/net/pkt_cls.h:349 [inline]   mall_classify+0x1a0/0x2a0 net/sched/cls_matchall.c:42   tc_classify include/net/tc_wrapper.h:197 [inline]   __tcf_classify net/sched/cls_api.c:1764 [inline]   tcf_classify+0x7f2/0x1380 net/sched/cls_api.c:1860   multiq_classify net/sched/sch_multiq.c:39 [inline]   multiq_enqueue+0xe0/0x510 net/sched/sch_multiq.c:66   dev_qdisc_enqueue+0x45/0x250 net/core/dev.c:4147   __dev_xmit_skb net/core/dev.c:4262 [inline]   __dev_queue_xmit+0x2998/0x46c0 net/core/dev.c:4798",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23086",
                                "url": "https://ubuntu.com/security/CVE-2026-23086",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: cap TX credit to local buffer size  The virtio transports derives its TX credit directly from peer_buf_alloc, which is set from the remote endpoint's SO_VM_SOCKETS_BUFFER_SIZE value.  On the host side this means that the amount of data we are willing to queue for a connection is scaled by a guest-chosen buffer size, rather than the host's own vsock configuration. A malicious guest can advertise a large buffer and read slowly, causing the host to allocate a correspondingly large amount of sk_buff memory. The same thing would happen in the guest with a malicious host, since virtio transports share the same code base.  Introduce a small helper, virtio_transport_tx_buf_size(), that returns min(peer_buf_alloc, buf_alloc), and use it wherever we consume peer_buf_alloc.  This ensures the effective TX window is bounded by both the peer's advertised buffer and our own buf_alloc (already clamped to buffer_max_size via SO_VM_SOCKETS_BUFFER_MAX_SIZE), so a remote peer cannot force the other to queue more data than allowed by its own vsock settings.  On an unpatched Ubuntu 22.04 host (~64 GiB RAM), running a PoC with 32 guest vsock connections advertising 2 GiB each and reading slowly drove Slab/SUnreclaim from ~0.5 GiB to ~57 GiB; the system only recovered after killing the QEMU process. That said, if QEMU memory is limited with cgroups, the maximum memory used will be limited.  With this patch applied:    Before:     MemFree:        ~61.6 GiB     Slab:           ~142 MiB     SUnreclaim:     ~117 MiB    After 32 high-credit connections:     MemFree:        ~61.5 GiB     Slab:           ~178 MiB     SUnreclaim:     ~152 MiB  Only ~35 MiB increase in Slab/SUnreclaim, no host OOM, and the guest remains responsive.  Compatibility with non-virtio transports:    - VMCI uses the AF_VSOCK buffer knobs to size its queue pairs per     socket based on the local vsk->buffer_* values; the remote side     cannot enlarge those queues beyond what the local endpoint     configured.    - Hyper-V's vsock transport uses fixed-size VMBus ring buffers and     an MTU bound; there is no peer-controlled credit field comparable     to peer_buf_alloc, and the remote endpoint cannot drive in-flight     kernel memory above those ring sizes.    - The loopback path reuses virtio_transport_common.c, so it     naturally follows the same semantics as the virtio transport.  This change is limited to virtio_transport_common.c and thus affects virtio-vsock, vhost-vsock, and loopback, bringing them in line with the \"remote window intersected with local policy\" behaviour that VMCI and Hyper-V already effectively have.  [Stefano: small adjustments after changing the previous patch] [Stefano: tweak the commit message]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23069",
                                "url": "https://ubuntu.com/security/CVE-2026-23069",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: fix potential underflow in virtio_transport_get_credit()  The credit calculation in virtio_transport_get_credit() uses unsigned arithmetic:    ret = vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt);  If the peer shrinks its advertised buffer (peer_buf_alloc) while bytes are in flight, the subtraction can underflow and produce a large positive value, potentially allowing more data to be queued than the peer can handle.  Reuse virtio_transport_has_space() which already handles this case and add a comment to make it clear why we are doing that.  [Stefano: use virtio_transport_has_space() instead of duplicating the code] [Stefano: tweak the commit message]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23119",
                                "url": "https://ubuntu.com/security/CVE-2026-23119",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: provide a net pointer to __skb_flow_dissect()  After 3cbf4ffba5ee (\"net: plumb network namespace into __skb_flow_dissect\") we have to provide a net pointer to __skb_flow_dissect(), either via skb->dev, skb->sk, or a user provided pointer.  In the following case, syzbot was able to cook a bare skb.  WARNING: net/core/flow_dissector.c:1131 at __skb_flow_dissect+0xb57/0x68b0 net/core/flow_dissector.c:1131, CPU#1: syz.2.1418/11053 Call Trace:  <TASK>   bond_flow_dissect drivers/net/bonding/bond_main.c:4093 [inline]   __bond_xmit_hash+0x2d7/0xba0 drivers/net/bonding/bond_main.c:4157   bond_xmit_hash_xdp drivers/net/bonding/bond_main.c:4208 [inline]   bond_xdp_xmit_3ad_xor_slave_get drivers/net/bonding/bond_main.c:5139 [inline]   bond_xdp_get_xmit_slave+0x1fd/0x710 drivers/net/bonding/bond_main.c:5515   xdp_master_redirect+0x13f/0x2c0 net/core/filter.c:4388   bpf_prog_run_xdp include/net/xdp.h:700 [inline]   bpf_test_run+0x6b2/0x7d0 net/bpf/test_run.c:421   bpf_prog_test_run_xdp+0x795/0x10e0 net/bpf/test_run.c:1390   bpf_prog_test_run+0x2c7/0x340 kernel/bpf/syscall.c:4703   __sys_bpf+0x562/0x860 kernel/bpf/syscall.c:6182   __do_sys_bpf kernel/bpf/syscall.c:6274 [inline]   __se_sys_bpf kernel/bpf/syscall.c:6272 [inline]   __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:6272   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xec/0xf80 arch/x86/entry/syscall_64.c:94",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23084",
                                "url": "https://ubuntu.com/security/CVE-2026-23084",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list  When the parameter pmac_id_valid argument of be_cmd_get_mac_from_list() is set to false, the driver may request the PMAC_ID from the firmware of the network card, and this function will store that PMAC_ID at the provided address pmac_id. This is the contract of this function.  However, there is a location within the driver where both pmac_id_valid == false and pmac_id == NULL are being passed. This could result in dereferencing a NULL pointer.  To resolve this issue, it is necessary to pass the address of a stub variable to the function.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23124",
                                "url": "https://ubuntu.com/security/CVE-2026-23124",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: annotate data-race in ndisc_router_discovery()  syzbot found that ndisc_router_discovery() could read and write in6_dev->ra_mtu without holding a lock [1]  This looks fine, IFLA_INET6_RA_MTU is best effort.  Add READ_ONCE()/WRITE_ONCE() to document the race.  Note that we might also reject illegal MTU values (mtu < IPV6_MIN_MTU || mtu > skb->dev->mtu) in a future patch.  [1] BUG: KCSAN: data-race in ndisc_router_discovery / ndisc_router_discovery  read to 0xffff888119809c20 of 4 bytes by task 25817 on cpu 1:   ndisc_router_discovery+0x151d/0x1c90 net/ipv6/ndisc.c:1558   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  write to 0xffff888119809c20 of 4 bytes by task 25816 on cpu 0:   ndisc_router_discovery+0x155a/0x1c90 net/ipv6/ndisc.c:1559   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  value changed: 0x00000000 -> 0xe5400659",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23121",
                                "url": "https://ubuntu.com/security/CVE-2026-23121",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mISDN: annotate data-race around dev->work  dev->work can re read locklessly in mISDN_read() and mISDN_poll(). Add READ_ONCE()/WRITE_ONCE() annotations.  BUG: KCSAN: data-race in mISDN_ioctl / mISDN_read  write to 0xffff88812d848280 of 4 bytes by task 10864 on cpu 1:   misdn_add_timer drivers/isdn/mISDN/timerdev.c:175 [inline]   mISDN_ioctl+0x2fb/0x550 drivers/isdn/mISDN/timerdev.c:233   vfs_ioctl fs/ioctl.c:51 [inline]   __do_sys_ioctl fs/ioctl.c:597 [inline]   __se_sys_ioctl+0xce/0x140 fs/ioctl.c:583   __x64_sys_ioctl+0x43/0x50 fs/ioctl.c:583   x64_sys_call+0x14b0/0x3000 arch/x86/include/generated/asm/syscalls_64.h:17   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88812d848280 of 4 bytes by task 10857 on cpu 0:   mISDN_read+0x1f2/0x470 drivers/isdn/mISDN/timerdev.c:112   do_loop_readv_writev fs/read_write.c:847 [inline]   vfs_readv+0x3fb/0x690 fs/read_write.c:1020   do_readv+0xe7/0x210 fs/read_write.c:1080   __do_sys_readv fs/read_write.c:1165 [inline]   __se_sys_readv fs/read_write.c:1162 [inline]   __x64_sys_readv+0x45/0x50 fs/read_write.c:1162   x64_sys_call+0x2831/0x3000 arch/x86/include/generated/asm/syscalls_64.h:20   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  value changed: 0x00000000 -> 0x00000001",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23126",
                                "url": "https://ubuntu.com/security/CVE-2026-23126",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netdevsim: fix a race issue related to the operation on bpf_bound_progs list  The netdevsim driver lacks a protection mechanism for operations on the bpf_bound_progs list. When the nsim_bpf_create_prog() performs list_add_tail, it is possible that nsim_bpf_destroy_prog() is simultaneously performs list_del. Concurrent operations on the list may lead to list corruption and trigger a kernel crash as follows:  [  417.290971] kernel BUG at lib/list_debug.c:62! [  417.290983] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI [  417.290992] CPU: 10 PID: 168 Comm: kworker/10:1 Kdump: loaded Not tainted 6.19.0-rc5 #1 [  417.291003] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [  417.291007] Workqueue: events bpf_prog_free_deferred [  417.291021] RIP: 0010:__list_del_entry_valid_or_report+0xa7/0xc0 [  417.291034] Code: a8 ff 0f 0b 48 89 fe 48 89 ca 48 c7 c7 48 a1 eb ae e8 ed fb a8 ff 0f 0b 48 89 fe 48 89 c2 48 c7 c7 80 a1 eb ae e8 d9 fb a8 ff <0f> 0b 48 89 d1 48 c7 c7 d0 a1 eb ae 48 89 f2 48 89 c6 e8 c2 fb a8 [  417.291040] RSP: 0018:ffffb16a40807df8 EFLAGS: 00010246 [  417.291046] RAX: 000000000000006d RBX: ffff8e589866f500 RCX: 0000000000000000 [  417.291051] RDX: 0000000000000000 RSI: ffff8e59f7b23180 RDI: ffff8e59f7b23180 [  417.291055] RBP: ffffb16a412c9000 R08: 0000000000000000 R09: 0000000000000003 [  417.291059] R10: ffffb16a40807c80 R11: ffffffffaf9edce8 R12: ffff8e594427ac20 [  417.291063] R13: ffff8e59f7b44780 R14: ffff8e58800b7a05 R15: 0000000000000000 [  417.291074] FS:  0000000000000000(0000) GS:ffff8e59f7b00000(0000) knlGS:0000000000000000 [  417.291079] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [  417.291083] CR2: 00007fc4083efe08 CR3: 00000001c3626006 CR4: 0000000000770ee0 [  417.291088] PKRU: 55555554 [  417.291091] Call Trace: [  417.291096]  <TASK> [  417.291103]  nsim_bpf_destroy_prog+0x31/0x80 [netdevsim] [  417.291154]  __bpf_prog_offload_destroy+0x2a/0x80 [  417.291163]  bpf_prog_dev_bound_destroy+0x6f/0xb0 [  417.291171]  bpf_prog_free_deferred+0x18e/0x1a0 [  417.291178]  process_one_work+0x18a/0x3a0 [  417.291188]  worker_thread+0x27b/0x3a0 [  417.291197]  ? __pfx_worker_thread+0x10/0x10 [  417.291207]  kthread+0xe5/0x120 [  417.291214]  ? __pfx_kthread+0x10/0x10 [  417.291221]  ret_from_fork+0x31/0x50 [  417.291230]  ? __pfx_kthread+0x10/0x10 [  417.291236]  ret_from_fork_asm+0x1a/0x30 [  417.291246]  </TASK>  Add a mutex lock, to prevent simultaneous addition and deletion operations on the list.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23059",
                                "url": "https://ubuntu.com/security/CVE-2026-23059",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Sanitize payload size to prevent member overflow  In qla27xx_copy_fpin_pkt() and qla27xx_copy_multiple_pkt(), the frame_size reported by firmware is used to calculate the copy length into item->iocb. However, the iocb member is defined as a fixed-size 64-byte array within struct purex_item.  If the reported frame_size exceeds 64 bytes, subsequent memcpy calls will overflow the iocb member boundary. While extra memory might be allocated, this cross-member write is unsafe and triggers warnings under CONFIG_FORTIFY_SOURCE.  Fix this by capping total_bytes to the size of the iocb member (64 bytes) before allocation and copying. This ensures all copies remain within the bounds of the destination structure member.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23110",
                                "url": "https://ubuntu.com/security/CVE-2026-23110",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: core: Wake up the error handler when final completions race against each other  The fragile ordering between marking commands completed or failed so that the error handler only wakes when the last running command completes or times out has race conditions. These race conditions can cause the SCSI layer to fail to wake the error handler, leaving I/O through the SCSI host stuck as the error state cannot advance.  First, there is an memory ordering issue within scsi_dec_host_busy(). The write which clears SCMD_STATE_INFLIGHT may be reordered with reads counting in scsi_host_busy(). While the local CPU will see its own write, reordering can allow other CPUs in scsi_dec_host_busy() or scsi_eh_inc_host_failed() to see a raised busy count, causing no CPU to see a host busy equal to the host_failed count.  This race condition can be prevented with a memory barrier on the error path to force the write to be visible before counting host busy commands.  Second, there is a general ordering issue with scsi_eh_inc_host_failed(). By counting busy commands before incrementing host_failed, it can race with a final command in scsi_dec_host_busy(), such that scsi_dec_host_busy() does not see host_failed incremented but scsi_eh_inc_host_failed() counts busy commands before SCMD_STATE_INFLIGHT is cleared by scsi_dec_host_busy(), resulting in neither waking the error handler task.  This needs the call to scsi_host_busy() to be moved after host_failed is incremented to close the race condition.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23071",
                                "url": "https://ubuntu.com/security/CVE-2026-23071",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: Fix race condition in hwspinlock irqsave routine  Previously, the address of the shared member '&map->spinlock_flags' was passed directly to 'hwspin_lock_timeout_irqsave'. This creates a race condition where multiple contexts contending for the lock could overwrite the shared flags variable, potentially corrupting the state for the current lock owner.  Fix this by using a local stack variable 'flags' to store the IRQ state temporarily.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23068",
                                "url": "https://ubuntu.com/security/CVE-2026-23068",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: spi-sprd-adi: Fix double free in probe error path  The driver currently uses spi_alloc_host() to allocate the controller but registers it using devm_spi_register_controller().  If devm_register_restart_handler() fails, the code jumps to the put_ctlr label and calls spi_controller_put(). However, since the controller was registered via a devm function, the device core will automatically call spi_controller_put() again when the probe fails. This results in a double-free of the spi_controller structure.  Fix this by switching to devm_spi_alloc_host() and removing the manual spi_controller_put() call.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23123",
                                "url": "https://ubuntu.com/security/CVE-2026-23123",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  interconnect: debugfs: initialize src_node and dst_node to empty strings  The debugfs_create_str() API assumes that the string pointer is either NULL or points to valid kmalloc() memory. Leaving the pointer uninitialized can cause problems.  Initialize src_node and dst_node to empty strings before creating the debugfs entries to guarantee that reads and writes are safe.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71198",
                                "url": "https://ubuntu.com/security/CVE-2025-71198",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event detection  The st_lsm6dsx_acc_channels array of struct iio_chan_spec has a non-NULL event_spec field, indicating support for IIO events. However, event detection is not supported for all sensors, and if userspace tries to configure accelerometer wakeup events on a sensor device that does not support them (e.g. LSM6DS0), st_lsm6dsx_write_event() dereferences a NULL pointer when trying to write to the wakeup register. Define an additional struct iio_chan_spec array whose members have a NULL event_spec field, and use this array instead of st_lsm6dsx_acc_channels for sensors without event detection capability.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23113",
                                "url": "https://ubuntu.com/security/CVE-2026-23113",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop  Currently this is checked before running the pending work. Normally this is quite fine, as work items either end up blocking (which will create a new worker for other items), or they complete fairly quickly. But syzbot reports an issue where io-wq takes seemingly forever to exit, and with a bit of debugging, this turns out to be because it queues a bunch of big (2GB - 4096b) reads with a /dev/msr* file. Since this file type doesn't support ->read_iter(), loop_rw_iter() ends up handling them. Each read returns 16MB of data read, which takes 20 (!!) seconds. With a bunch of these pending, processing the whole chain can take a long time. Easily longer than the syzbot uninterruptible sleep timeout of 140 seconds. This then triggers a complaint off the io-wq exit path:  INFO: task syz.4.135:6326 blocked for more than 143 seconds.       Not tainted syzkaller #0       Blocked by coredump. \"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\" disables this message. task:syz.4.135       state:D stack:26824 pid:6326  tgid:6324  ppid:5957  task_flags:0x400548 flags:0x00080000 Call Trace:  <TASK>  context_switch kernel/sched/core.c:5256 [inline]  __schedule+0x1139/0x6150 kernel/sched/core.c:6863  __schedule_loop kernel/sched/core.c:6945 [inline]  schedule+0xe7/0x3a0 kernel/sched/core.c:6960  schedule_timeout+0x257/0x290 kernel/time/sleep_timeout.c:75  do_wait_for_common kernel/sched/completion.c:100 [inline]  __wait_for_common+0x2fc/0x4e0 kernel/sched/completion.c:121  io_wq_exit_workers io_uring/io-wq.c:1328 [inline]  io_wq_put_and_exit+0x271/0x8a0 io_uring/io-wq.c:1356  io_uring_clean_tctx+0x10d/0x190 io_uring/tctx.c:203  io_uring_cancel_generic+0x69c/0x9a0 io_uring/cancel.c:651  io_uring_files_cancel include/linux/io_uring.h:19 [inline]  do_exit+0x2ce/0x2bd0 kernel/exit.c:911  do_group_exit+0xd3/0x2a0 kernel/exit.c:1112  get_signal+0x2671/0x26d0 kernel/signal.c:3034  arch_do_signal_or_restart+0x8f/0x7e0 arch/x86/kernel/signal.c:337  __exit_to_user_mode_loop kernel/entry/common.c:41 [inline]  exit_to_user_mode_loop+0x8c/0x540 kernel/entry/common.c:75  __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]  syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]  syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]  syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]  do_syscall_64+0x4ee/0xf80 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa02738f749 RSP: 002b:00007fa0281ae0e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca RAX: fffffffffffffe00 RBX: 00007fa0275e6098 RCX: 00007fa02738f749 RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007fa0275e6098 RBP: 00007fa0275e6090 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fa0275e6128 R14: 00007fff14e4fcb0 R15: 00007fff14e4fd98  There's really nothing wrong here, outside of processing these reads will take a LONG time. However, we can speed up the exit by checking the IO_WQ_BIT_EXIT inside the io_worker_handle_work() loop, as syzbot will exit the ring after queueing up all of these reads. Then once the first item is processed, io-wq will simply cancel the rest. That should avoid syzbot running into this complaint again.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23062",
                                "url": "https://ubuntu.com/security/CVE-2026-23062",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro  The GET_INSTANCE_ID macro that caused a kernel panic when accessing sysfs attributes:  1. Off-by-one error: The loop condition used '<=' instead of '<',    causing access beyond array bounds. Since array indices are 0-based    and go from 0 to instances_count-1, the loop should use '<'.  2. Missing NULL check: The code dereferenced attr_name_kobj->name    without checking if attr_name_kobj was NULL, causing a null pointer    dereference in min_length_show() and other attribute show functions.  The panic occurred when fwupd tried to read BIOS configuration attributes:    Oops: general protection fault [#1] SMP KASAN NOPTI   KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]   RIP: 0010:min_length_show+0xcf/0x1d0 [hp_bioscfg]  Add a NULL check for attr_name_kobj before dereferencing and corrects the loop boundary to match the pattern used elsewhere in the driver.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23131",
                                "url": "https://ubuntu.com/security/CVE-2026-23131",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kobject warnings for empty attribute names  The hp-bioscfg driver attempts to register kobjects with empty names when the HP BIOS returns attributes with empty name strings. This causes multiple kernel warnings:    kobject: (00000000135fb5e6): attempted to be registered with empty name!   WARNING: CPU: 14 PID: 3336 at lib/kobject.c:219 kobject_add_internal+0x2eb/0x310  Add validation in hp_init_bios_buffer_attribute() to check if the attribute name is empty after parsing it from the WMI buffer. If empty, log a debug message and skip registration of that attribute, allowing the module to continue processing other valid attributes.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23087",
                                "url": "https://ubuntu.com/security/CVE-2026-23087",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: xen: scsiback: Fix potential memory leak in scsiback_remove()  Memory allocated for struct vscsiblk_info in scsiback_probe() is not freed in scsiback_remove() leading to potential memory leaks on remove, as well as in the scsiback_probe() error paths. Fix that by freeing it in scsiback_remove().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71197",
                                "url": "https://ubuntu.com/security/CVE-2025-71197",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  w1: therm: Fix off-by-one buffer overflow in alarms_store  The sysfs buffer passed to alarms_store() is allocated with 'size + 1' bytes and a NUL terminator is appended. However, the 'size' argument does not account for this extra byte. The original code then allocated 'size' bytes and used strcpy() to copy 'buf', which always writes one byte past the allocated buffer since strcpy() copies until the NUL terminator at index 'size'.  Fix this by parsing the 'buf' parameter directly using simple_strtoll() without allocating any intermediate memory or string copying. This removes the overflow while simplifying the code.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23105",
                                "url": "https://ubuntu.com/security/CVE-2026-23105",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag  This is more of a preventive patch to make the code more consistent and to prevent possible exploits that employ child qlen manipulations on qfq. use cl_is_active instead of relying on the child qdisc's qlen to determine class activation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23103",
                                "url": "https://ubuntu.com/security/CVE-2026-23103",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvlan: Make the addrs_lock be per port  Make the addrs_lock be per port, not per ipvlan dev.  Initial code seems to be written in the assumption, that any address change must occur under RTNL. But it is not so for the case of IPv6. So  1) Introduce per-port addrs_lock.  2) It was needed to fix places where it was forgotten to take lock (ipvlan_open/ipvlan_close)  This appears to be a very minor problem though. Since it's highly unlikely that ipvlan_add_addr() will be called on 2 CPU simultaneously. But nevertheless, this could cause:  1) False-negative of ipvlan_addr_busy(): one interface iterated through all port->ipvlans + ipvlan->addrs under some ipvlan spinlock, and another added IP under its own lock. Though this is only possible for IPv6, since looks like only ipvlan_addr6_event() can be called without rtnl_lock.  2) Race since ipvlan_ht_addr_add(port) is called under different ipvlan->addrs_lock locks  This should not affect performance, since add/remove IP is a rare situation and spinlock is not taken on fast paths.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23120",
                                "url": "https://ubuntu.com/security/CVE-2026-23120",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  l2tp: avoid one data-race in l2tp_tunnel_del_work()  We should read sk->sk_socket only when dealing with kernel sockets.  syzbot reported the following data-race:  BUG: KCSAN: data-race in l2tp_tunnel_del_work / sk_common_release  write to 0xffff88811c182b20 of 8 bytes by task 5365 on cpu 0:   sk_set_socket include/net/sock.h:2092 [inline]   sock_orphan include/net/sock.h:2118 [inline]   sk_common_release+0xae/0x230 net/core/sock.c:4003   udp_lib_close+0x15/0x20 include/net/udp.h:325   inet_release+0xce/0xf0 net/ipv4/af_inet.c:437   __sock_release net/socket.c:662 [inline]   sock_close+0x6b/0x150 net/socket.c:1455   __fput+0x29b/0x650 fs/file_table.c:468   ____fput+0x1c/0x30 fs/file_table.c:496   task_work_run+0x131/0x1a0 kernel/task_work.c:233   resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]   __exit_to_user_mode_loop kernel/entry/common.c:44 [inline]   exit_to_user_mode_loop+0x1fe/0x740 kernel/entry/common.c:75   __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]   syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]   syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]   syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]   do_syscall_64+0x1e1/0x2b0 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88811c182b20 of 8 bytes by task 827 on cpu 1:   l2tp_tunnel_del_work+0x2f/0x1a0 net/l2tp/l2tp_core.c:1418   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0x4ce/0x9d0 kernel/workqueue.c:3340   worker_thread+0x582/0x770 kernel/workqueue.c:3421   kthread+0x489/0x510 kernel/kthread.c:463   ret_from_fork+0x149/0x290 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246  value changed: 0xffff88811b818000 -> 0x0000000000000000",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23083",
                                "url": "https://ubuntu.com/security/CVE-2026-23083",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fou: Don't allow 0 for FOU_ATTR_IPPROTO.  fou_udp_recv() has the same problem mentioned in the previous patch.  If FOU_ATTR_IPPROTO is set to 0, skb is not freed by fou_udp_recv() nor \"resubmit\"-ted in ip_protocol_deliver_rcu().  Let's forbid 0 for FOU_ATTR_IPPROTO.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23095",
                                "url": "https://ubuntu.com/security/CVE-2026-23095",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gue: Fix skb memleak with inner IP protocol 0.  syzbot reported skb memleak below. [0]  The repro generated a GUE packet with its inner protocol 0.  gue_udp_recv() returns -guehdr->proto_ctype for \"resubmit\" in ip_protocol_deliver_rcu(), but this only works with non-zero protocol number.  Let's drop such packets.  Note that 0 is a valid number (IPv6 Hop-by-Hop Option).  I think it is not practical to encap HOPOPT in GUE, so once someone starts to complain, we could pass down a resubmit flag pointer to distinguish two zeros from the upper layer:    * no error   * resubmit HOPOPT  [0] BUG: memory leak unreferenced object 0xffff888109695a00 (size 240):   comm \"syz.0.17\", pid 6088, jiffies 4294943096   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 40 c2 10 81 88 ff ff 00 00 00 00 00 00 00 00  .@..............   backtrace (crc a84b336f):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4958 [inline]     slab_alloc_node mm/slub.c:5263 [inline]     kmem_cache_alloc_noprof+0x3b4/0x590 mm/slub.c:5270     __build_skb+0x23/0x60 net/core/skbuff.c:474     build_skb+0x20/0x190 net/core/skbuff.c:490     __tun_build_skb drivers/net/tun.c:1541 [inline]     tun_build_skb+0x4a1/0xa40 drivers/net/tun.c:1636     tun_get_user+0xc12/0x2030 drivers/net/tun.c:1770     tun_chr_write_iter+0x71/0x120 drivers/net/tun.c:1999     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0xa7/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xf80 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23125",
                                "url": "https://ubuntu.com/security/CVE-2026-23125",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT  A null-ptr-deref was reported in the SCTP transmit path when SCTP-AUTH key initialization fails:    ==================================================================   KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]   CPU: 0 PID: 16 Comm: ksoftirqd/0 Tainted: G W 6.6.0 #2   RIP: 0010:sctp_packet_bundle_auth net/sctp/output.c:264 [inline]   RIP: 0010:sctp_packet_append_chunk+0xb36/0x1260 net/sctp/output.c:401   Call Trace:    sctp_packet_transmit_chunk+0x31/0x250 net/sctp/output.c:189   sctp_outq_flush_data+0xa29/0x26d0 net/sctp/outqueue.c:1111   sctp_outq_flush+0xc80/0x1240 net/sctp/outqueue.c:1217   sctp_cmd_interpreter.isra.0+0x19a5/0x62c0 net/sctp/sm_sideeffect.c:1787   sctp_side_effects net/sctp/sm_sideeffect.c:1198 [inline]   sctp_do_sm+0x1a3/0x670 net/sctp/sm_sideeffect.c:1169   sctp_assoc_bh_rcv+0x33e/0x640 net/sctp/associola.c:1052   sctp_inq_push+0x1dd/0x280 net/sctp/inqueue.c:88   sctp_rcv+0x11ae/0x3100 net/sctp/input.c:243   sctp6_rcv+0x3d/0x60 net/sctp/ipv6.c:1127  The issue is triggered when sctp_auth_asoc_init_active_key() fails in sctp_sf_do_5_1C_ack() while processing an INIT_ACK. In this case, the command sequence is currently:  - SCTP_CMD_PEER_INIT - SCTP_CMD_TIMER_STOP (T1_INIT) - SCTP_CMD_TIMER_START (T1_COOKIE) - SCTP_CMD_NEW_STATE (COOKIE_ECHOED) - SCTP_CMD_ASSOC_SHKEY - SCTP_CMD_GEN_COOKIE_ECHO  If SCTP_CMD_ASSOC_SHKEY fails, asoc->shkey remains NULL, while asoc->peer.auth_capable and asoc->peer.peer_chunks have already been set by SCTP_CMD_PEER_INIT. This allows a DATA chunk with auth = 1 and shkey = NULL to be queued by sctp_datamsg_from_user().  Since command interpretation stops on failure, no COOKIE_ECHO should been sent via SCTP_CMD_GEN_COOKIE_ECHO. However, the T1_COOKIE timer has already been started, and it may enqueue a COOKIE_ECHO into the outqueue later. As a result, the DATA chunk can be transmitted together with the COOKIE_ECHO in sctp_outq_flush_data(), leading to the observed issue.  Similar to the other places where it calls sctp_auth_asoc_init_active_key() right after sctp_process_init(), this patch moves the SCTP_CMD_ASSOC_SHKEY immediately after SCTP_CMD_PEER_INIT, before stopping T1_INIT and starting T1_COOKIE. This ensures that if shared key generation fails, authenticated DATA cannot be sent. It also allows the T1_INIT timer to retransmit INIT, giving the client another chance to process INIT_ACK and retry key setup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23099",
                                "url": "https://ubuntu.com/security/CVE-2026-23099",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: limit BOND_MODE_8023AD to Ethernet devices  BOND_MODE_8023AD makes sense for ARPHRD_ETHER only.  syzbot reported:   BUG: KASAN: global-out-of-bounds in __hw_addr_create net/core/dev_addr_lists.c:63 [inline]  BUG: KASAN: global-out-of-bounds in __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118 Read of size 16 at addr ffffffff8bf94040 by task syz.1.3580/19497  CPU: 1 UID: 0 PID: 19497 Comm: syz.1.3580 Tainted: G             L     syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>   dump_stack_lvl+0xe8/0x150 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  check_region_inline mm/kasan/generic.c:-1 [inline]   kasan_check_range+0x2b0/0x2c0 mm/kasan/generic.c:200   __asan_memcpy+0x29/0x70 mm/kasan/shadow.c:105   __hw_addr_create net/core/dev_addr_lists.c:63 [inline]   __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118   __dev_mc_add net/core/dev_addr_lists.c:868 [inline]   dev_mc_add+0xa1/0x120 net/core/dev_addr_lists.c:886   bond_enslave+0x2b8b/0x3ac0 drivers/net/bonding/bond_main.c:2180   do_set_master+0x533/0x6d0 net/core/rtnetlink.c:2963   do_setlink+0xcf0/0x41c0 net/core/rtnetlink.c:3165   rtnl_changelink net/core/rtnetlink.c:3776 [inline]   __rtnl_newlink net/core/rtnetlink.c:3935 [inline]   rtnl_newlink+0x161c/0x1c90 net/core/rtnetlink.c:4072   rtnetlink_rcv_msg+0x7cf/0xb70 net/core/rtnetlink.c:6958   netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2550   netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline]   netlink_unicast+0x82f/0x9e0 net/netlink/af_netlink.c:1344   netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1894   sock_sendmsg_nosec net/socket.c:727 [inline]   __sock_sendmsg+0x21c/0x270 net/socket.c:742   ____sys_sendmsg+0x505/0x820 net/socket.c:2592   ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2646   __sys_sendmsg+0x164/0x220 net/socket.c:2678   do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]   __do_fast_syscall_32+0x1dc/0x560 arch/x86/entry/syscall_32.c:307   do_fast_syscall_32+0x34/0x80 arch/x86/entry/syscall_32.c:332  entry_SYSENTER_compat_after_hwframe+0x84/0x8e  </TASK>  The buggy address belongs to the variable:  lacpdu_mcast_addr+0x0/0x40",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71194",
                                "url": "https://ubuntu.com/security/CVE-2025-71194",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix deadlock in wait_current_trans() due to ignored transaction type  When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans().  This can lead to a deadlock scenario involving two transactions and pending ordered extents:    1. Transaction A is in TRANS_STATE_COMMIT_DOING state    2. A worker processing an ordered extent calls start_transaction()      with TRANS_JOIN    3. join_transaction() returns -EBUSY because Transaction A is in      TRANS_STATE_COMMIT_DOING    4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes    5. A new Transaction B is created (TRANS_STATE_RUNNING)    6. The ordered extent from step 2 is added to Transaction B's      pending ordered extents    7. Transaction B immediately starts commit by another task and      enters TRANS_STATE_COMMIT_START    8. The worker finally reaches wait_current_trans(), sees Transaction B      in TRANS_STATE_COMMIT_START (a blocked state), and waits      unconditionally    9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START      according to btrfs_blocked_trans_types[]    10. Transaction B is waiting for pending ordered extents to complete    11. Deadlock: Transaction B waits for ordered extent, ordered extent       waits for Transaction B  This can be illustrated by the following call stacks:   CPU0                              CPU1                                     btrfs_finish_ordered_io()                                       start_transaction(TRANS_JOIN)                                         join_transaction()                                           # -EBUSY (Transaction A is                                           # TRANS_STATE_COMMIT_DOING)   # Transaction A completes   # Transaction B created   # ordered extent added to   # Transaction B's pending list   btrfs_commit_transaction()     # Transaction B enters     # TRANS_STATE_COMMIT_START     # waiting for pending ordered     # extents                                         wait_current_trans()                                           # waits for Transaction B                                           # (should not wait!)  Task bstore_kv_sync in btrfs_commit_transaction waiting for ordered extents:    __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   btrfs_commit_transaction+0xbf7/0xda0 [btrfs]   btrfs_sync_file+0x342/0x4d0 [btrfs]   __x64_sys_fdatasync+0x4b/0x80   do_syscall_64+0x33/0x40   entry_SYSCALL_64_after_hwframe+0x44/0xa9  Task kworker in wait_current_trans waiting for transaction commit:    Workqueue: btrfs-syno_nocow btrfs_work_helper [btrfs]   __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   wait_current_trans+0xb0/0x110 [btrfs]   start_transaction+0x346/0x5b0 [btrfs]   btrfs_finish_ordered_io.isra.0+0x49b/0x9c0 [btrfs]   btrfs_work_helper+0xe8/0x350 [btrfs]   process_one_work+0x1d3/0x3c0   worker_thread+0x4d/0x3e0   kthread+0x12d/0x150   ret_from_fork+0x1f/0x30  Fix this by passing the transaction type to wait_current_trans() and checking btrfs_blocked_trans_types[cur_trans->state] against the given type before deciding to wait. This ensures that transaction types which are allowed to join during certain blocked states will not unnecessarily wait and cause deadlocks.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71185",
                                "url": "https://ubuntu.com/security/CVE-2025-71185",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation  Make sure to drop the reference taken when looking up the crossbar platform device during am335x route allocation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23026",
                                "url": "https://ubuntu.com/security/CVE-2026-23026",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config()  Fix a memory leak in gpi_peripheral_config() where the original memory pointed to by gchan->config could be lost if krealloc() fails.  The issue occurs when: 1. gchan->config points to previously allocated memory 2. krealloc() fails and returns NULL 3. The function directly assigns NULL to gchan->config, losing the    reference to the original memory 4. The original memory becomes unreachable and cannot be freed  Fix this by using a temporary variable to hold the krealloc() result and only updating gchan->config when the allocation succeeds.  Found via static analysis and code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71188",
                                "url": "https://ubuntu.com/security/CVE-2025-71188",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: lpc18xx-dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71163",
                                "url": "https://ubuntu.com/security/CVE-2025-71163",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: idxd: fix device leaks on compat bind and unbind  Make sure to drop the reference taken when looking up the idxd device as part of the compat bind and unbind sysfs interface.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71189",
                                "url": "https://ubuntu.com/security/CVE-2025-71189",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: dw: dmamux: fix OF node leak on route allocation failure  Make sure to drop the reference taken to the DMA master OF node also on late route allocation failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71190",
                                "url": "https://ubuntu.com/security/CVE-2025-71190",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: bcm-sba-raid: fix device leak on probe  Make sure to drop the reference taken when looking up the mailbox device during probe on probe failures and on driver unbind.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71191",
                                "url": "https://ubuntu.com/security/CVE-2025-71191",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: at_hdmac: fix device leak on of_dma_xlate()  Make sure to drop the reference taken when looking up the DMA platform device during of_dma_xlate() when releasing channel resources.  Note that commit 3832b78b3ec2 (\"dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()\") fixed the leak in a couple of error paths but the reference is still leaking on successful allocation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23049",
                                "url": "https://ubuntu.com/security/CVE-2026-23049",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel  The connector type for the DataImage SCF0700C48GGU18 panel is missing and devm_drm_panel_bridge_add() requires connector type to be set. This leads to a warning and a backtrace in the kernel log and panel does not work: \" WARNING: CPU: 3 PID: 38 at drivers/gpu/drm/bridge/panel.c:379 devm_drm_of_get_bridge+0xac/0xb8 \" The warning is triggered by a check for valid connector type in devm_drm_panel_bridge_add(). If there is no valid connector type set for a panel, the warning is printed and panel is not added. Fill in the missing connector type to fix the warning and make the panel operational once again.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23144",
                                "url": "https://ubuntu.com/security/CVE-2026-23144",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure  When a context DAMON sysfs directory setup is failed after setup of attrs/ directory, subdirectories of attrs/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23145",
                                "url": "https://ubuntu.com/security/CVE-2026-23145",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref  The error branch for ext4_xattr_inode_update_ref forget to release the refcount for iloc.bh. Find this when review code.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22997",
                                "url": "https://ubuntu.com/security/CVE-2026-22997",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session upon receiving the second rts  Since j1939_session_deactivate_activate_next() in j1939_tp_rxtimer() is called only when the timer is enabled, we need to call j1939_session_deactivate_activate_next() if we cancelled the timer. Otherwise, refcount for j1939_session leaks, which will later appear as  | unregister_netdevice: waiting for vcan0 to become free. Usage count = 2.  problem.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23031",
                                "url": "https://ubuntu.com/security/CVE-2026-23031",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak  In gs_can_open(), the URBs for USB-in transfers are allocated, added to the parent->rx_submitted anchor and submitted. In the complete callback gs_usb_receive_bulk_callback(), the URB is processed and resubmitted. In gs_can_close() the URBs are freed by calling usb_kill_anchored_urbs(parent->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in gs_can_close().  Fix the memory leak by anchoring the URB in the gs_usb_receive_bulk_callback() to the parent->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23032",
                                "url": "https://ubuntu.com/security/CVE-2026-23032",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  null_blk: fix kmemleak by releasing references to fault configfs items  When CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is enabled, the null-blk driver sets up fault injection support by creating the timeout_inject, requeue_inject, and init_hctx_fault_inject configfs items as children of the top-level nullbX configfs group.  However, when the nullbX device is removed, the references taken to these fault-config configfs items are not released. As a result, kmemleak reports a memory leak, for example:  unreferenced object 0xc00000021ff25c40 (size 32):   comm \"mkdir\", pid 10665, jiffies 4322121578   hex dump (first 32 bytes):     69 6e 69 74 5f 68 63 74 78 5f 66 61 75 6c 74 5f  init_hctx_fault_     69 6e 6a 65 63 74 00 88 00 00 00 00 00 00 00 00  inject..........   backtrace (crc 1a018c86):     __kmalloc_node_track_caller_noprof+0x494/0xbd8     kvasprintf+0x74/0xf4     config_item_set_name+0xf0/0x104     config_group_init_type_name+0x48/0xfc     fault_config_init+0x48/0xf0     0xc0080000180559e4     configfs_mkdir+0x304/0x814     vfs_mkdir+0x49c/0x604     do_mkdirat+0x314/0x3d0     sys_mkdir+0xa0/0xd8     system_call_exception+0x1b0/0x4f0     system_call_vectored_common+0x15c/0x2ec  Fix this by explicitly releasing the references to the fault-config configfs items when dropping the reference to the top-level nullbX configfs group.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23033",
                                "url": "https://ubuntu.com/security/CVE-2026-23033",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: omap-dma: fix dma_pool resource leak in error paths  The dma_pool created by dma_pool_create() is not destroyed when dma_async_device_register() or of_dma_controller_register() fails, causing a resource leak in the probe error paths.  Add dma_pool_destroy() in both error paths to properly release the allocated dma_pool resource.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71196",
                                "url": "https://ubuntu.com/security/CVE-2025-71196",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: stm32-usphyc: Fix off by one in probe()  The \"index\" variable is used as an index into the usbphyc->phys[] array which has usbphyc->nphys elements.  So if it is equal to usbphyc->nphys then it is one element out of bounds.  The \"index\" comes from the device tree so it's data that we trust and it's unlikely to be wrong, however it's obviously still worth fixing the bug.  Change the > to >=.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71193",
                                "url": "https://ubuntu.com/security/CVE-2025-71193",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: qcom-qusb2: Fix NULL pointer dereference on early suspend  Enabling runtime PM before attaching the QPHY instance as driver data can lead to a NULL pointer dereference in runtime PM callbacks that expect valid driver data. There is a small window where the suspend callback may run after PM runtime enabling and before runtime forbid. This causes a sporadic crash during boot:  ``` Unable to handle kernel NULL pointer dereference at virtual address 00000000000000a1 [...] CPU: 0 UID: 0 PID: 11 Comm: kworker/0:1 Not tainted 6.16.7+ #116 PREEMPT Workqueue: pm pm_runtime_work pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : qusb2_phy_runtime_suspend+0x14/0x1e0 [phy_qcom_qusb2] lr : pm_generic_runtime_suspend+0x2c/0x44 [...] ```  Attach the QPHY instance as driver data before enabling runtime PM to prevent NULL pointer dereference in runtime PM callbacks.  Reorder pm_runtime_enable() and pm_runtime_forbid() to prevent a short window where an unnecessary runtime suspend can occur.  Use the devres-managed version to ensure PM runtime is symmetrically disabled during driver removal for proper cleanup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71162",
                                "url": "https://ubuntu.com/security/CVE-2025-71162",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: tegra-adma: Fix use-after-free  A use-after-free bug exists in the Tegra ADMA driver when audio streams are terminated, particularly during XRUN conditions. The issue occurs when the DMA buffer is freed by tegra_adma_terminate_all() before the vchan completion tasklet finishes accessing it.  The race condition follows this sequence:    1. DMA transfer completes, triggering an interrupt that schedules the      completion tasklet (tasklet has not executed yet)   2. Audio playback stops, calling tegra_adma_terminate_all() which      frees the DMA buffer memory via kfree()   3. The scheduled tasklet finally executes, calling vchan_complete()      which attempts to access the already-freed memory  Since tasklets can execute at any time after being scheduled, there is no guarantee that the buffer will remain valid when vchan_complete() runs.  Fix this by properly synchronizing the virtual channel completion:  - Calling vchan_terminate_vdesc() in tegra_adma_stop() to mark the    descriptors as terminated instead of freeing the descriptor.  - Add the callback tegra_adma_synchronize() that calls    vchan_synchronize() which kills any pending tasklets and frees any    terminated descriptors.  Crash logs: [  337.427523] BUG: KASAN: use-after-free in vchan_complete+0x124/0x3b0 [  337.427544] Read of size 8 at addr ffff000132055428 by task swapper/0/0  [  337.427562] Call trace: [  337.427564]  dump_backtrace+0x0/0x320 [  337.427571]  show_stack+0x20/0x30 [  337.427575]  dump_stack_lvl+0x68/0x84 [  337.427584]  print_address_description.constprop.0+0x74/0x2b8 [  337.427590]  kasan_report+0x1f4/0x210 [  337.427598]  __asan_load8+0xa0/0xd0 [  337.427603]  vchan_complete+0x124/0x3b0 [  337.427609]  tasklet_action_common.constprop.0+0x190/0x1d0 [  337.427617]  tasklet_action+0x30/0x40 [  337.427623]  __do_softirq+0x1a0/0x5c4 [  337.427628]  irq_exit+0x110/0x140 [  337.427633]  handle_domain_irq+0xa4/0xe0 [  337.427640]  gic_handle_irq+0x64/0x160 [  337.427644]  call_on_irq_stack+0x20/0x4c [  337.427649]  do_interrupt_handler+0x7c/0x90 [  337.427654]  el1_interrupt+0x30/0x80 [  337.427659]  el1h_64_irq_handler+0x18/0x30 [  337.427663]  el1h_64_irq+0x7c/0x80 [  337.427667]  cpuidle_enter_state+0xe4/0x540 [  337.427674]  cpuidle_enter+0x54/0x80 [  337.427679]  do_idle+0x2e0/0x380 [  337.427685]  cpu_startup_entry+0x2c/0x70 [  337.427690]  rest_init+0x114/0x130 [  337.427695]  arch_call_rest_init+0x18/0x24 [  337.427702]  start_kernel+0x380/0x3b4 [  337.427706]  __primary_switched+0xc0/0xc8",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71195",
                                "url": "https://ubuntu.com/security/CVE-2025-71195",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: xilinx: xdma: Fix regmap max_register  The max_register field is assigned the size of the register memory region instead of the offset of the last register. The result is that reading from the regmap via debugfs can cause a segmentation fault:  tail /sys/kernel/debug/regmap/xdma.1.auto/registers Unable to handle kernel paging request at virtual address ffff800082f70000 Mem abort info:   ESR = 0x0000000096000007   EC = 0x25: DABT (current EL), IL = 32 bits   SET = 0, FnV = 0   EA = 0, S1PTW = 0   FSC = 0x07: level 3 translation fault [...] Call trace:  regmap_mmio_read32le+0x10/0x30  _regmap_bus_reg_read+0x74/0xc0  _regmap_read+0x68/0x198  regmap_read+0x54/0x88  regmap_read_debugfs+0x140/0x380  regmap_map_read_file+0x30/0x48  full_proxy_read+0x68/0xc8  vfs_read+0xcc/0x310  ksys_read+0x7c/0x120  __arm64_sys_read+0x24/0x40  invoke_syscall.constprop.0+0x64/0x108  do_el0_svc+0xb0/0xd8  el0_svc+0x38/0x130  el0t_64_sync_handler+0x120/0x138  el0t_64_sync+0x194/0x198 Code: aa1e03e9 d503201f f9400000 8b214000 (b9400000) ---[ end trace 0000000000000000 ]--- note: tail[1217] exited with irqs disabled note: tail[1217] exited with preempt_count 1 Segmentation fault",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23006",
                                "url": "https://ubuntu.com/security/CVE-2026-23006",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: tlv320adcx140: fix null pointer  The \"snd_soc_component\" in \"adcx140_priv\" was only used once but never set. It was only used for reaching \"dev\" which is already present in \"adcx140_priv\".",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22999",
                                "url": "https://ubuntu.com/security/CVE-2026-22999",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: do not free existing class in qfq_change_class()  Fixes qfq_change_class() error case.  cl->qdisc and cl should only be freed if a new class and qdisc were allocated, or we risk various UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23010",
                                "url": "https://ubuntu.com/security/CVE-2026-23010",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix use-after-free in inet6_addr_del().  syzbot reported use-after-free of inet6_ifaddr in inet6_addr_del(). [0]  The cited commit accidentally moved ipv6_del_addr() for mngtmpaddr before reading its ifp->flags for temporary addresses in inet6_addr_del().  Let's move ipv6_del_addr() down to fix the UAF.  [0]: BUG: KASAN: slab-use-after-free in inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117 Read of size 4 at addr ffff88807b89c86c by task syz.3.1618/9593  CPU: 0 UID: 0 PID: 9593 Comm: syz.3.1618 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>  __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:378 [inline]  print_report+0xcd/0x630 mm/kasan/report.c:482  kasan_report+0xe0/0x110 mm/kasan/report.c:595  inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117  addrconf_del_ifaddr+0x11e/0x190 net/ipv6/addrconf.c:3181  inet6_ioctl+0x1e5/0x2b0 net/ipv6/af_inet6.c:582  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f164cf8f749 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f164de64038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007f164d1e5fa0 RCX: 00007f164cf8f749 RDX: 0000200000000000 RSI: 0000000000008936 RDI: 0000000000000003 RBP: 00007f164d013f91 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f164d1e6038 R14: 00007f164d1e5fa0 R15: 00007ffde15c8288  </TASK>  Allocated by task 9593:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  poison_kmalloc_redzone mm/kasan/common.c:397 [inline]  __kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:414  kmalloc_noprof include/linux/slab.h:957 [inline]  kzalloc_noprof include/linux/slab.h:1094 [inline]  ipv6_add_addr+0x4e3/0x2010 net/ipv6/addrconf.c:1120  inet6_addr_add+0x256/0x9b0 net/ipv6/addrconf.c:3050  addrconf_add_ifaddr+0x1fc/0x450 net/ipv6/addrconf.c:3160  inet6_ioctl+0x103/0x2b0 net/ipv6/af_inet6.c:580  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 6099:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  kasan_save_free_info+0x3b/0x60 mm/kasan/generic.c:584  poison_slab_object mm/kasan/common.c:252 [inline]  __kasan_slab_free+0x5f/0x80 mm/kasan/common.c:284  kasan_slab_free include/linux/kasan.h:234 [inline]  slab_free_hook mm/slub.c:2540 [inline]  slab_free_freelist_hook mm/slub.c:2569 [inline]  slab_free_bulk mm/slub.c:6696 [inline]  kmem_cache_free_bulk mm/slub.c:7383 [inline]  kmem_cache_free_bulk+0x2bf/0x680 mm/slub.c:7362  kfree_bulk include/linux/slab.h:830 [inline]  kvfree_rcu_bulk+0x1b7/0x1e0 mm/slab_common.c:1523  kvfree_rcu_drain_ready mm/slab_common.c:1728 [inline]  kfree_rcu_monitor+0x1d0/0x2f0 mm/slab_common.c:1801  process_one_work+0x9ba/0x1b20 kernel/workqueue.c:3257  process_scheduled_works kernel/workqu ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23054",
                                "url": "https://ubuntu.com/security/CVE-2026-23054",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hv_netvsc: reject RSS hash key programming without RX indirection table  RSS configuration requires a valid RX indirection table. When the device reports a single receive queue, rndis_filter_device_add() does not allocate an indirection table, accepting RSS hash key updates in this state leads to a hang.  Fix this by gating netvsc_set_rxfh() on ndc->rx_table_sz and return -EOPNOTSUPP when the table is absent. This aligns set_rxfh with the device capabilities and prevents incorrect behavior.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23011",
                                "url": "https://ubuntu.com/security/CVE-2026-23011",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: ip_gre: make ipgre_header() robust  Analog to commit db5b4e39c4e6 (\"ip6_gre: make ip6gre_header() robust\")  Over the years, syzbot found many ways to crash the kernel in ipgre_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 ipgre device.  [1] skbuff: skb_under_panic: text:ffffffff89ea3cb7 len:2030915468 put:2030915372 head:ffff888058b43000 data:ffff887fdfa6e194 tail:0x120 end:0x6c0 dev:team0  kernel BUG at net/core/skbuff.c:213 ! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 1 UID: 0 PID: 1322 Comm: kworker/1:9 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Workqueue: mld mld_ifc_work  RIP: 0010:skb_panic+0x157/0x160 net/core/skbuff.c:213 Call Trace:  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ipgre_header+0x67/0x290 net/ipv4/ip_gre.c:897   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   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   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0xad1/0x1770 kernel/workqueue.c:3340   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23001",
                                "url": "https://ubuntu.com/security/CVE-2026-23001",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix possible UAF in macvlan_forward_source()  Add RCU protection on (struct macvlan_source_entry)->vlan.  Whenever macvlan_hash_del_source() is called, we must clear entry->vlan pointer before RCU grace period starts.  This allows macvlan_forward_source() to skip over entries queued for freeing.  Note that macvlan_dev are already RCU protected, as they are embedded in a standard netdev (netdev_priv(ndev)).  https: //lore.kernel.org/netdev/695fb1e8.050a0220.1c677c.039f.GAE@google.com/T/#u",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23003",
                                "url": "https://ubuntu.com/security/CVE-2026-23003",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv()  Blamed commit did not take care of VLAN encapsulations as spotted by syzbot [1].  Use skb_vlan_inet_prepare() instead of pskb_inet_may_pull().  [1]  BUG: KMSAN: uninit-value in __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]  BUG: KMSAN: uninit-value in INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]  BUG: KMSAN: uninit-value in IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]   INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]   IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   ip6ip6_dscp_ecn_decapsulate+0x16f/0x1b0 net/ipv6/ip6_tunnel.c:729   __ip6_tnl_rcv+0xed9/0x1b50 net/ipv6/ip6_tunnel.c:860   ip6_tnl_rcv+0xc3/0x100 net/ipv6/ip6_tunnel.c:903  gre_rcv+0x1529/0x1b90 net/ipv6/ip6_gre.c:-1   ip6_protocol_deliver_rcu+0x1c89/0x2c60 net/ipv6/ip6_input.c:438   ip6_input_finish+0x1f4/0x4a0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x9c/0x330 net/ipv6/ip6_input.c:500   ip6_mc_input+0x7ca/0xc10 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x958/0x990 net/ipv6/ip6_input.c:79   NF_HOOK include/linux/netfilter.h:318 [inline]   ipv6_rcv+0xf1/0x3c0 net/ipv6/ip6_input.c:311   __netif_receive_skb_one_core net/core/dev.c:6139 [inline]   __netif_receive_skb+0x1df/0xac0 net/core/dev.c:6252   netif_receive_skb_internal net/core/dev.c:6338 [inline]   netif_receive_skb+0x57/0x630 net/core/dev.c:6397   tun_rx_batched+0x1df/0x980 drivers/net/tun.c:1485   tun_get_user+0x5c0e/0x6c60 drivers/net/tun.c:1953   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Uninit was created at:   slab_post_alloc_hook mm/slub.c:4960 [inline]   slab_alloc_node mm/slub.c:5263 [inline]   kmem_cache_alloc_node_noprof+0x9e7/0x17a0 mm/slub.c:5315   kmalloc_reserve+0x13c/0x4b0 net/core/skbuff.c:586   __alloc_skb+0x805/0x1040 net/core/skbuff.c:690   alloc_skb include/linux/skbuff.h:1383 [inline]   alloc_skb_with_frags+0xc5/0xa60 net/core/skbuff.c:6712   sock_alloc_send_pskb+0xacc/0xc60 net/core/sock.c:2995   tun_alloc_skb drivers/net/tun.c:1461 [inline]   tun_get_user+0x1142/0x6c60 drivers/net/tun.c:1794   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  CPU: 0 UID: 0 PID: 6465 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(none) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23141",
                                "url": "https://ubuntu.com/security/CVE-2026-23141",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: send: check for inline extents in range_is_hole_in_parent()  Before accessing the disk_bytenr field of a file extent item we need to check if we are dealing with an inline extent. This is because for inline extents their data starts at the offset of the disk_bytenr field. So accessing the disk_bytenr means we are accessing inline data or in case the inline data is less than 8 bytes we can actually cause an invalid memory access if this inline extent item is the first item in the leaf or access metadata from other items.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22998",
                                "url": "https://ubuntu.com/security/CVE-2026-22998",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec  Commit efa56305908b (\"nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length\") added ttag bounds checking and data_offset validation in nvmet_tcp_handle_h2c_data_pdu(), but it did not validate whether the command's data structures (cmd->req.sg and cmd->iov) have been properly initialized before processing H2C_DATA PDUs.  The nvmet_tcp_build_pdu_iovec() function dereferences these pointers without NULL checks. This can be triggered by sending H2C_DATA PDU immediately after the ICREQ/ICRESP handshake, before sending a CONNECT command or NVMe write command.  Attack vectors that trigger NULL pointer dereferences: 1. H2C_DATA PDU sent before CONNECT → both pointers NULL 2. H2C_DATA PDU for READ command → cmd->req.sg allocated, cmd->iov NULL 3. H2C_DATA PDU for uninitialized command slot → both pointers NULL  The fix validates both cmd->req.sg and cmd->iov before calling nvmet_tcp_build_pdu_iovec(). Both checks are required because: - Uninitialized commands: both NULL - READ commands: cmd->req.sg allocated, cmd->iov NULL - WRITE commands: both allocated",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23037",
                                "url": "https://ubuntu.com/security/CVE-2026-23037",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: etas_es58x: allow partial RX URB allocation to succeed  When es58x_alloc_rx_urbs() fails to allocate the requested number of URBs but succeeds in allocating some, it returns an error code. This causes es58x_open() to return early, skipping the cleanup label 'free_urbs', which leads to the anchored URBs being leaked.  As pointed out by maintainer Vincent Mailhol, the driver is designed to handle partial URB allocation gracefully. Therefore, partial allocation should not be treated as a fatal error.  Modify es58x_alloc_rx_urbs() to return 0 if at least one URB has been allocated, restoring the intended behavior and preventing the leak in es58x_open().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23038",
                                "url": "https://ubuntu.com/security/CVE-2026-23038",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node()  In nfs4_ff_alloc_deviceid_node(), if the allocation for ds_versions fails, the function jumps to the out_scratch label without freeing the already allocated dsaddrs list, leading to a memory leak.  Fix this by jumping to the out_err_drain_dsaddrs label, which properly frees the dsaddrs list before cleaning up other resources.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71184",
                                "url": "https://ubuntu.com/security/CVE-2025-71184",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix NULL dereference on root when tracing inode eviction  When evicting an inode the first thing we do is to setup tracing for it, which implies fetching the root's id. But in btrfs_evict_inode() the root might be NULL, as implied in the next check that we do in btrfs_evict_inode().  Hence, we either should set the ->root_objectid to 0 in case the root is NULL, or we move tracing setup after checking that the root is not NULL. Setting the rootid to 0 at least gives us the possibility to trace this call even in the case when the root is NULL, so that's the solution taken here.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "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-2025-71160",
                                "url": "https://ubuntu.com/security/CVE-2025-71160",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: avoid chain re-validation if possible  Hamza Mahfooz reports cpu soft lock-ups in nft_chain_validate():   watchdog: BUG: soft lockup - CPU#1 stuck for 27s! [iptables-nft-re:37547] [..]  RIP: 0010:nft_chain_validate+0xcb/0x110 [nf_tables] [..]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_table_validate+0x6b/0xb0 [nf_tables]   nf_tables_validate+0x8b/0xa0 [nf_tables]   nf_tables_commit+0x1df/0x1eb0 [nf_tables] [..]  Currently nf_tables will traverse the entire table (chain graph), starting from the entry points (base chains), exploring all possible paths (chain jumps).  But there are cases where we could avoid revalidation.  Consider: 1  input -> j2 -> j3 2  input -> j2 -> j3 3  input -> j1 -> j2 -> j3  Then the second rule does not need to revalidate j2, and, by extension j3, because this was already checked during validation of the first rule. We need to validate it only for rule 3.  This is needed because chain loop detection also ensures we do not exceed the jump stack: Just because we know that j2 is cycle free, its last jump might now exceed the allowed stack size.  We also need to update all reachable chains with the new largest observed call depth.  Care has to be taken to revalidate even if the chain depth won't be an issue: chain validation also ensures that expressions are not called from invalid base chains.  For example, the masquerade expression can only be called from NAT postrouting base chains.  Therefore we also need to keep record of the base chain context (type, hooknum) and revalidate if the chain becomes reachable from a different hook location.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22994",
                                "url": "https://ubuntu.com/security/CVE-2026-22994",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix reference count leak in bpf_prog_test_run_xdp()  syzbot is reporting    unregister_netdevice: waiting for sit0 to become free. Usage count = 2  problem. A debug printk() patch found that a refcount is obtained at xdp_convert_md_to_buff() from bpf_prog_test_run_xdp().  According to commit ec94670fcb3b (\"bpf: Support specifying ingress via xdp_md context in BPF_PROG_TEST_RUN\"), the refcount obtained by xdp_convert_md_to_buff() will be released by xdp_convert_buff_to_md().  Therefore, we can consider that the error handling path introduced by commit 1c1949982524 (\"bpf: introduce frags support to bpf_prog_test_run_xdp()\") forgot to call xdp_convert_buff_to_md().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23140",
                                "url": "https://ubuntu.com/security/CVE-2026-23140",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf, test_run: Subtract size of xdp_frame from allowed metadata size  The xdp_frame structure takes up part of the XDP frame headroom, limiting the size of the metadata. However, in bpf_test_run, we don't take this into account, which makes it possible for userspace to supply a metadata size that is too large (taking up the entire headroom).  If userspace supplies such a large metadata size in live packet mode, the xdp_update_frame_from_buff() call in xdp_test_run_init_page() call will fail, after which packet transmission proceeds with an uninitialised frame structure, leading to the usual Bad Stuff.  The commit in the Fixes tag fixed a related bug where the second check in xdp_update_frame_from_buff() could fail, but did not add any additional constraints on the metadata size. Complete the fix by adding an additional check on the metadata size. Reorder the checks slightly to make the logic clearer and add a comment.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71192",
                                "url": "https://ubuntu.com/security/CVE-2025-71192",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ac97: fix a double free in snd_ac97_controller_register()  If ac97_add_adapter() fails, put_device() is the correct way to drop the device reference. kfree() is not required. Add kfree() if idr_alloc() fails and in ac97_adapter_release() to do the cleanup.  Found by code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 16:16: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-22979",
                                "url": "https://ubuntu.com/security/CVE-2026-22979",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix memory leak in skb_segment_list for GRO packets  When skb_segment_list() is called during packet forwarding, it handles packets that were aggregated by the GRO engine.  Historically, the segmentation logic in skb_segment_list assumes that individual segments are split from a parent SKB and may need to carry their own socket memory accounting. Accordingly, the code transfers truesize from the parent to the newly created segments.  Prior to commit ed4cccef64c1 (\"gro: fix ownership transfer\"), this truesize subtraction in skb_segment_list() was valid because fragments still carry a reference to the original socket.  However, commit ed4cccef64c1 (\"gro: fix ownership transfer\") changed this behavior by ensuring that fraglist entries are explicitly orphaned (skb->sk = NULL) to prevent illegal orphaning later in the stack. This change meant that the entire socket memory charge remained with the head SKB, but the corresponding accounting logic in skb_segment_list() was never updated.  As a result, the current code unconditionally adds each fragment's truesize to delta_truesize and subtracts it from the parent SKB. Since the fragments are no longer charged to the socket, this subtraction results in an effective under-count of memory when the head is freed. This causes sk_wmem_alloc to remain non-zero, preventing socket destruction and leading to a persistent memory leak.  The leak can be observed via KMEMLEAK when tearing down the networking environment:  unreferenced object 0xffff8881e6eb9100 (size 2048):   comm \"ping\", pid 6720, jiffies 4295492526   backtrace:     kmem_cache_alloc_noprof+0x5c6/0x800     sk_prot_alloc+0x5b/0x220     sk_alloc+0x35/0xa00     inet6_create.part.0+0x303/0x10d0     __sock_create+0x248/0x640     __sys_socket+0x11b/0x1d0  Since skb_segment_list() is exclusively used for SKB_GSO_FRAGLIST packets constructed by GRO, the truesize adjustment is removed.  The call to skb_release_head_state() must be preserved. As documented in commit cf673ed0e057 (\"net: fix fraglist segmentation reference count leak\"), it is still required to correctly drop references to SKB extensions that may be overwritten during __copy_skb_header().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15: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-2026-23139",
                                "url": "https://ubuntu.com/security/CVE-2026-23139",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_conncount: update last_gc only when GC has been performed  Currently last_gc is being updated everytime a new connection is tracked, that means that it is updated even if a GC wasn't performed. With a sufficiently high packet rate, it is possible to always bypass the GC, causing the list to grow infinitely.  Update the last_gc value only when a GC has been actually performed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40149",
                                "url": "https://ubuntu.com/security/CVE-2025-40149",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock().  get_netdev_for_sock() is called during setsockopt(), so not under RCU.  Using sk_dst_get(sk)->dev could trigger UAF.  Let's use __sk_dst_get() and dst_dev_rcu().  Note that the only ->ndo_sk_get_lower_dev() user is bond_sk_get_lower_dev(), which uses RCU.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-12 11:15: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-2026-23047",
                                "url": "https://ubuntu.com/security/CVE-2026-23047",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make calc_target() set t->paused, not just clear it  Currently calc_target() clears t->paused if the request shouldn't be paused anymore, but doesn't ever set t->paused even though it's able to determine when the request should be paused.  Setting t->paused is left to __submit_request() which is fine for regular requests but doesn't work for linger requests -- since __submit_request() doesn't operate on linger requests, there is nowhere for lreq->t.paused to be set. One consequence of this is that watches don't get reestablished on paused -> unpaused transitions in cases where requests have been paused long enough for the (paused) unwatch request to time out and for the subsequent (re)watch request to enter the paused state.  On top of the watch not getting reestablished, rbd_reregister_watch() gets stuck with rbd_dev->watch_mutex held:    rbd_register_watch     __rbd_register_watch       ceph_osdc_watch         linger_reg_commit_wait  It's waiting for lreq->reg_commit_wait to be completed, but for that to happen the respective request needs to end up on need_resend_linger list and be kicked when requests are unpaused.  There is no chance for that if the request in question is never marked paused in the first place.  The fact that rbd_dev->watch_mutex remains taken out forever then prevents the image from getting unmapped -- \"rbd unmap\" would inevitably hang in D state on an attempt to grab the mutex.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23136",
                                "url": "https://ubuntu.com/security/CVE-2026-23136",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: reset sparse-read state in osd_fault()  When a fault occurs, the connection is abandoned, reestablished, and any pending operations are retried. The OSD client tracks the progress of a sparse-read reply using a separate state machine, largely independent of the messenger's state.  If a connection is lost mid-payload or the sparse-read state machine returns an error, the sparse-read state is not reset. The OSD client will then interpret the beginning of a new reply as the continuation of the old one. If this makes the sparse-read machinery enter a failure state, it may never recover, producing loops like:    libceph:  [0] got 0 extents   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read  Therefore, reset the sparse-read state in osd_fault(), ensuring retries start from a clean state.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15: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": "high",
                                "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-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-2025-71183",
                                "url": "https://ubuntu.com/security/CVE-2025-71183",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: always detect conflicting inodes when logging inode refs  After rename exchanging (either with the rename exchange operation or regular renames in multiple non-atomic steps) two inodes and at least one of them is a directory, we can end up with a log tree that contains only of the inodes and after a power failure that can result in an attempt to delete the other inode when it should not because it was not deleted before the power failure. In some case that delete attempt fails when the target inode is a directory that contains a subvolume inside it, since the log replay code is not prepared to deal with directory entries that point to root items (only inode items).  1) We have directories \"dir1\" (inode A) and \"dir2\" (inode B) under the    same parent directory;  2) We have a file (inode C) under directory \"dir1\" (inode A);  3) We have a subvolume inside directory \"dir2\" (inode B);  4) All these inodes were persisted in a past transaction and we are    currently at transaction N;  5) We rename the file (inode C), so at btrfs_log_new_name() we update    inode C's last_unlink_trans to N;  6) We get a rename exchange for \"dir1\" (inode A) and \"dir2\" (inode B),    so after the exchange \"dir1\" is inode B and \"dir2\" is inode A.    During the rename exchange we call btrfs_log_new_name() for inodes    A and B, but because they are directories, we don't update their    last_unlink_trans to N;  7) An fsync against the file (inode C) is done, and because its inode    has a last_unlink_trans with a value of N we log its parent directory    (inode A) (through btrfs_log_all_parents(), called from    btrfs_log_inode_parent()).  8) So we end up with inode B not logged, which now has the old name    of inode A. At copy_inode_items_to_log(), when logging inode A, we    did not check if we had any conflicting inode to log because inode    A has a generation lower than the current transaction (created in    a past transaction);  9) After a power failure, when replaying the log tree, since we find that    inode A has a new name that conflicts with the name of inode B in the    fs tree, we attempt to delete inode B... this is wrong since that    directory was never deleted before the power failure, and because there    is a subvolume inside that directory, attempting to delete it will fail    since replay_dir_deletes() and btrfs_unlink_inode() are not prepared    to deal with dir items that point to roots instead of inodes.     When that happens the mount fails and we get a stack trace like the    following:     [87.2314] BTRFS info (device dm-0): start tree-log replay    [87.2318] BTRFS critical (device dm-0): failed to delete reference to subvol, root 5 inode 256 parent 259    [87.2332] ------------[ cut here ]------------    [87.2338] BTRFS: Transaction aborted (error -2)    [87.2346] WARNING: CPU: 1 PID: 638968 at fs/btrfs/inode.c:4345 __btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2368] Modules linked in: btrfs loop dm_thin_pool (...)    [87.2470] CPU: 1 UID: 0 PID: 638968 Comm: mount Tainted: G        W          6.18.0-rc7-btrfs-next-218+ #2 PREEMPT(full)    [87.2489] Tainted: [W]=WARN    [87.2494] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014    [87.2514] RIP: 0010:__btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2538] Code: c0 89 04 24 (...)    [87.2568] RSP: 0018:ffffc0e741f4b9b8 EFLAGS: 00010286    [87.2574] RAX: 0000000000000000 RBX: ffff9d3ec8a6cf60 RCX: 0000000000000000    [87.2582] RDX: 0000000000000002 RSI: ffffffff84ab45a1 RDI: 00000000ffffffff    [87.2591] RBP: ffff9d3ec8a6ef20 R08: 0000000000000000 R09: ffffc0e741f4b840    [87.2599] R10: ffff9d45dc1fffa8 R11: 0000000000000003 R12: ffff9d3ee26d77e0    [87.2608] R13: ffffc0e741f4ba98 R14: ffff9d4458040800 R15: ffff9d44b6b7ca10    [87.2618] FS:  00007f7b9603a840(0000) GS:ffff9d4658982000(0000) knlGS:0000000000000000    [87. ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16: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-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-2024-50004",
                                "url": "https://ubuntu.com/security/CVE-2024-50004",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: update DML2 policy EnhancedPrefetchScheduleAccelerationFinal DCN35  [WHY & HOW] Mismatch in DCN35 DML2 cause bw validation failed to acquire unexpected DPP pipe to cause grey screen and system hang. Remove EnhancedPrefetchScheduleAccelerationFinal value override to match HW spec.  (cherry picked from commit 9dad21f910fcea2bdcff4af46159101d7f9cd8ba)",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-10-21 19:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23274",
                                "url": "https://ubuntu.com/security/CVE-2026-23274",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels  IDLETIMER revision 0 rules reuse existing timers by label and always call mod_timer() on timer->timer.  If the label was created first by revision 1 with XT_IDLETIMER_ALARM, the object uses alarm timer semantics and timer->timer is never initialized. Reusing that object from revision 0 causes mod_timer() on an uninitialized timer_list, triggering debugobjects warnings and possible panic when panic_on_warn=1.  Fix this by rejecting revision 0 rule insertion when an existing timer with the same label is of ALARM type.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-20 09:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23351",
                                "url": "https://ubuntu.com/security/CVE-2026-23351",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: split gc into unlink and reclaim phase  Yiming Qian reports Use-after-free in the pipapo set type:   Under a large number of expired elements, commit-time GC can run for a very   long time in a non-preemptible context, triggering soft lockup warnings and   RCU stall reports (local denial of service).  We must split GC in an unlink and a reclaim phase.  We cannot queue elements for freeing until pointers have been swapped. Expired elements are still exposed to both the packet path and userspace dumpers via the live copy of the data structure.  call_rcu() does not protect us: dump operations or element lookups starting after call_rcu has fired can still observe the free'd element, unless the commit phase has made enough progress to swap the clone and live pointers before any new reader has picked up the old version.  This a similar approach as done recently for the rbtree backend in commit 35f83a75529a (\"netfilter: nft_set_rbtree: don't gc elements on insert\").",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-25 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23231",
                                "url": "https://ubuntu.com/security/CVE-2026-23231",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-03-04 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23209",
                                "url": "https://ubuntu.com/security/CVE-2026-23209",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23112",
                                "url": "https://ubuntu.com/security/CVE-2026-23112",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-114.114~22.04.1 -proposed tracker (LP: #2147981)",
                            "",
                            "  [ Ubuntu: 6.8.0-114.114 ]",
                            "",
                            "  * noble/linux: 6.8.0-114.114 -proposed tracker (LP: #2148397)",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465)",
                            "    - SAUCE: Fix skb_vlan_inet_prepare() usage",
                            "",
                            "  [ Ubuntu: 6.8.0-112.112 ]",
                            "",
                            "  * noble/linux: 6.8.0-112.112 -proposed tracker (LP: #2147982)",
                            "  * Canonical Kmod 2025 key rotation (LP: #2147447)",
                            "    - [Packaging] ubuntu-compatible-signing -- make Ubuntu-Compatible-Signing",
                            "      extensible",
                            "    - [Packaging] ubuntu-compatible-signing -- allow consumption of positive",
                            "      certs",
                            "    - [Packaging] ubuntu-compatible-signing -- report the livepatch:2025 key",
                            "    - [Config] prepare for Canonical Kmod key rotation",
                            "    - [Packaging] ubuntu-compatible-signing -- report the kmod:2025 key",
                            "  * Remount ext4 to readonly with data=journal mode may dump call trace",
                            "    (LP: #2147400)",
                            "    - ext4: fix stale xarray tags after writeback",
                            "  * Compile error due to nonexistent struct member with CONFIG_PCI_EPF_TEST",
                            "    (LP: #2147065)",
                            "    - SAUCE: Revert \"PCI: endpoint: pci-epf-test: Limit PCIe BAR size for",
                            "      fixed BARs\"",
                            "  * BUG: kernel NULL pointer dereference in amdgpu (LP: #2144577)",
                            "    - drm/amdgpu: validate the flush_gpu_tlb_pasid()",
                            "    - drm/amdgpu: Fix validating flush_gpu_tlb_pasid()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841)",
                            "    - x86/kfence: fix booting on 32bit non-PAE systems",
                            "    - platform/x86: intel_telemetry: Fix swapped arrays in PSS output",
                            "    - pmdomain: qcom: rpmpd: fix off-by-one error in clamping to the highest",
                            "      state",
                            "    - pmdomain: imx8mp-blk-ctrl: Keep gpc power domain on for system wakeup",
                            "    - pmdomain: imx: gpcv2: Fix the imx8mm gpu hang due to wrong adb400 reset",
                            "    - pmdomain: imx8mp-blk-ctrl: Keep usb phy power domain on for system",
                            "      wakeup",
                            "    - rbd: check for EOD after exclusive lock is ensured to be held",
                            "    - ARM: 9468/1: fix memset64() on big-endian",
                            "    - hfsplus: fix slab-out-of-bounds read in hfsplus_uni2asc()",
                            "    - binder: fix BR_FROZEN_REPLY error log",
                            "    - binderfs: fix ida_alloc_max() upper bound",
                            "    - KVM: selftests: Add -U_FORTIFY_SOURCE to avoid some unpredictable test",
                            "      failures",
                            "    - tracing: Fix ftrace event field alignments",
                            "    - net: usb: sr9700: support devices with virtual driver CD",
                            "    - block,bfq: fix aux stat accumulation destination",
                            "    - LoongArch: Set correct protection_map[] for VM_NONE/VM_SHARED",
                            "    - HID: intel-ish-hid: Update ishtp bus match to support device ID table",
                            "    - HID: multitouch: add MT_QUIRK_STICKY_FINGERS to MT_CLS_VTL",
                            "    - HID: intel-ish-hid: Reset enum_devices_done before enumeration",
                            "    - HID: playstation: Center initial joystick axes to prevent spurious",
                            "      events",
                            "    - ALSA: hda/realtek: add HP Laptop 15s-eq1xxx mute LED quirk",
                            "    - netfilter: replace -EEXIST with -EBUSY",
                            "    - HID: quirks: Add another Chicony HP 5MP Cameras to hid_ignore_list",
                            "    - HID: Apply quirk HID_QUIRK_ALWAYS_POLL to Edifier QR30 (2d99:a101)",
                            "    - ring-buffer: Avoid softlockup in ring_buffer_resize() during memory free",
                            "    - wifi: mac80211: collect station statistics earlier when disconnect",
                            "    - ASoC: davinci-evm: Fix reference leak in davinci_evm_probe",
                            "    - ASoC: amd: yc: Fix microphone on ASUS M6500RE",
                            "    - ASoC: tlv320adcx140: Propagate error codes during probe",
                            "    - spi: hisi-kunpeng: Fixed the wrong debugfs node name in hisi_spi debugfs",
                            "      initialization",
                            "    - wifi: cfg80211: Fix bitrate calculation overflow for HE rates",
                            "    - ALSA: hda/realtek: Fix headset mic for TongFang X6AR55xU",
                            "    - wifi: mac80211: correctly check if CSA is active",
                            "    - wifi: mac80211: don't increment crypto_tx_tailroom_needed_cnt twice",
                            "    - platform/x86: intel_telemetry: Fix PSS event register mask",
                            "    - platform/x86: hp-bioscfg: Skip empty attribute names",
                            "    - net: add skb_header_pointer_careful() helper",
                            "    - net: don't touch dev->stats in BPF redirect paths",
                            "    - tipc: use kfree_sensitive() for session key material",
                            "    - net: ethernet: adi: adin1110: Check return value of",
                            "      devm_gpiod_get_optional() in adin1110_check_spi()",
                            "    - drm/mgag200: fix mgag200_bmc_stop_scanout()",
                            "    - hwmon: (occ) Mark occ_init_attribute() as __printf",
                            "    - ipv6: Fix ECMP sibling count mismatch when clearing RTF_ADDRCONF",
                            "    - gve: Correct ethtool rx_dropped calculation",
                            "    - spi: tegra210-quad: Return IRQ_HANDLED when timeout already processed",
                            "      transfer",
                            "    - spi: tegra210-quad: Move curr_xfer read inside spinlock",
                            "    - spi: tegra210-quad: Protect curr_xfer assignment in",
                            "      tegra_qspi_setup_transfer_one",
                            "    - spi: tegra210-quad: Protect curr_xfer in tegra_qspi_combined_seq_xfer",
                            "    - spi: tegra210-quad: Protect curr_xfer clearing in",
                            "      tegra_qspi_non_combined_seq_xfer",
                            "    - spi: tegra114: Preserve SPI mode bits in def_command1_reg",
                            "    - ALSA: hda/realtek: Really fix headset mic for TongFang X6AR55xU.",
                            "    - PCI/ERR: Ensure error recoverability at all times",
                            "    - ALSA: hda/realtek: Add quirk for Acer Nitro AN517-55",
                            "    - PCI: qcom: Remove ASPM L0s support for MSM8996 SoC",
                            "    - HID: logitech: add HID++ support for Logitech MX Anywhere 3S",
                            "    - ALSA: hda/realtek: ALC269 fixup for Lenovo Yoga Book 9i 13IRU8 audio",
                            "    - net: phy: add phy_interface_weight()",
                            "    - net: phy: add phy_interface_copy()",
                            "    - net: sfp: pre-parse the module support",
                            "    - net: sfp: enhance quirk for Fibrestore 2.5G copper SFP module",
                            "    - net: sfp: convert sfp quirks to modify struct sfp_module_support",
                            "    - net: sfp: Fix quirk for Ubiquiti U-Fiber Instant SFP module",
                            "    - drm/amd/display: fix wrong color value mapping on MCM shaper LUT",
                            "    - drm/xe/query: Fix topology query pointer advance",
                            "    - ALSA: usb-audio: fix broken logic in snd_audigy2nx_led_update()",
                            "    - gpiolib-acpi: Update file references in the Documentation and",
                            "      MAINTAINERS",
                            "    - Upstream stable to v6.6.124, v6.12.70",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23214",
                            "    - btrfs: reject new transactions if the fs is fully read-only",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23213",
                            "    - drm/amd/pm: Disable MMIO access during SMU Mode 1 reset",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71225",
                            "    - md: suspend array while updating raid_disks via sysfs",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-68823",
                            "    - ublk: fix deadlock when reading partition table",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23191",
                            "    - ALSA: aloop: Fix racy access at PCM trigger",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23215",
                            "    - x86/vmware: Fix hypercall clobbers",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23182",
                            "    - spi: tegra: Fix a memory leak in tegra_slink_probe()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23190",
                            "    - ASoC: amd: fix memory leak in acp3x pdm dma ops",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23254",
                            "    - net: gro: fix outer network offset",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23180",
                            "    - dpaa2-switch: add bounds check for if_id in IRQ handler",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23256",
                            "    - net: liquidio: Fix off-by-one error in VF setup_nic_devices() cleanup",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23257",
                            "    - net: liquidio: Fix off-by-one error in PF setup_nic_devices() cleanup",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23258",
                            "    - net: liquidio: Initialize netdev pointer before queue setup",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23206",
                            "    - dpaa2-switch: prevent ZERO_SIZE_PTR dereference when num_ifs is zero",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23204",
                            "    - net/sched: cls_u32: use skb_header_pointer_careful()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23205",
                            "    - smb/client: fix memory leak in smb2_open_file()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23176",
                            "    - platform/x86: toshiba_haps: Fix memory leaks in add/remove routines",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23216",
                            "    - scsi: target: iscsi: Fix use-after-free in iscsit_dec_conn_usage_count()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23193",
                            "    - scsi: target: iscsi: Fix use-after-free in",
                            "      iscsit_dec_session_usage_count()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23260",
                            "    - regmap: maple: free entry on mas_store_gfp() failure",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23179",
                            "    - nvmet-tcp: fixup hang in nvmet_tcp_listen_data_ready()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23261",
                            "    - nvme-fc: release admin tagset if init fails",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23178",
                            "    - HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71268",
                            "    - btrfs: fix reservation leak in some error paths when inserting inline",
                            "      extent",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71270",
                            "    - LoongArch: Enable exception fixup for specific ADE subcode",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71220",
                            "    - smb/server: call ksmbd_session_rpc_close() on error path in",
                            "      create_smb2_pipe()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71222",
                            "    - wifi: wlcore: ensure skb headroom before skb_push",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71224",
                            "    - wifi: mac80211: ocb: skip rx_no_sta when interface is not joined",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23262",
                            "    - gve: Fix stats report corruption on queue count change",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-38201",
                            "    - netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23198",
                            "    - KVM: Don't clobber irqfd routing type when deassigning irqfd",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23264",
                            "    - Revert \"drm/amd: Check if ASPM is enabled from PCIe subsystem\"",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23187",
                            "    - pmdomain: imx8m-blk-ctrl: fix out-of-range access of bc->domains",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543)",
                            "    - net/mlx5: Fix memory leak in esw_acl_ingress_lgcy_setup()",
                            "    - can: gs_usb: gs_usb_receive_bulk_callback(): fix error message",
                            "    - net: bcmasp: fix early exit leak with fixed phy",
                            "    - net: mvpp2: cls: Fix memory leak in mvpp2_ethtool_cls_rule_ins()",
                            "    - ipv6: use the right ifindex when replying to icmpv6 from localhost",
                            "    - ice: stop counting UDP csum mismatch as rx_errors",
                            "    - net/mlx5e: Report rx_discards_phy via rx_dropped",
                            "    - net/mlx5e: Account for netdev stats in ndo_get_stats64",
                            "    - net: bridge: fix static key check",
                            "    - net/mlx5e: Skip ESN replay window setup for IPsec crypto offload",
                            "    - scsi: firewire: sbp-target: Fix overflow in sbp_make_tpg()",
                            "    - ASoC: Intel: sof_es8336: fix headphone GPIO logic inversion",
                            "    - gpiolib: acpi: use BIT_ULL() for u64 mask in address space handler",
                            "    - dma/pool: distinguish between missing and exhausted atomic pools",
                            "    - pinctrl: meson: mark the GPIO controller as sleeping",
                            "    - riscv: compat: fix COMPAT_UTS_MACHINE definition",
                            "    - rust: kbuild: give `--config-path` to `rustfmt` in `.rsi` target",
                            "    - ASoC: fsl: imx-card: Do not force slot width to sample width",
                            "    - scsi: be2iscsi: Fix a memory leak in beiscsi_boot_get_sinfo()",
                            "    - ASoC: amd: yc: Add DMI quirk for Acer TravelMate P216-41-TCO",
                            "    - gpio: pca953x: mask interrupts in irq shutdown",
                            "    - scsi: qla2xxx: edif: Fix dma_free_coherent() size",
                            "    - mptcp: only reset subflow errors when propagated",
                            "    - selftests: mptcp: check no dup close events after error",
                            "    - selftests: mptcp: check subflow errors in close events",
                            "    - selftests: mptcp: join: fix local endp not being tracked",
                            "    - scripts: generate_rust_analyzer: Add compiler_builtins -> core dep",
                            "    - drm/amdgpu/soc21: fix xclk for APUs",
                            "    - drm/amdgpu/gfx10: fix wptr reset in KGQ init",
                            "    - drm/amdgpu/gfx11: fix wptr reset in KGQ init",
                            "    - mm/kfence: randomize the freelist on initialization",
                            "    - arm64/fpsimd: signal: Mandate SVE payload for streaming-mode state",
                            "    - arm64/fpsimd: signal: Consistently read FPSIMD context",
                            "    - btrfs: prevent use-after-free on page private data in",
                            "      btrfs_subpage_clear_uptodate()",
                            "    - net/sched: act_ife: convert comma to semicolon",
                            "    - pinctrl: lpass-lpi: implement .get_direction() for the GPIO driver",
                            "    - drm/msm/a6xx: fix bogus hwcg register updates",
                            "    - writeback: fix 100% CPU usage when dirtytime_expire_interval is 0",
                            "    - mptcp: avoid dup SUB_CLOSED events after disconnect",
                            "    - ksmbd: fix recursive locking in RPC handle list access",
                            "    - bpf/selftests: test_select_reuseport_kern: Remove unused header",
                            "    - can: at91_can: Fix memory leak in at91_can_probe()",
                            "    - net: phy: micrel: fix clk warning when removing the driver",
                            "    - net/mlx5: fs, Fix inverted cap check in tx flow table root disconnect",
                            "    - net/mlx5: Initialize events outside devlink lock",
                            "    - net/mlx5: Fix vhca_id access call trace use before alloc",
                            "    - bcache: fix improper use of bi_end_io",
                            "    - bcache: use bio cloning for detached device requests",
                            "    - bcache: fix I/O accounting leak in detached_dev_do_request",
                            "    - gpio: rockchip: Stop calling pinctrl for set_direction",
                            "    - mm/memory-failure: improve memory failure action_result messages",
                            "    - mm/memory-failure: fix redundant updates for already poisoned pages",
                            "    - mm/memory-failure: fix missing ->mf_stats count in hugetlb poison",
                            "    - mm/memory-failure: teach kill_accessing_process to accept hugetlb tail",
                            "      page pfn",
                            "    - gpiolib: acpi: Fix potential out-of-boundary left shift",
                            "    - rust: kbuild: support `-Cjump-tables=n` for Rust 1.93.0",
                            "    - pinctrl: qcom: sm8350-lpass-lpi: Merge with SC7280 to fix I2S2 and SWR",
                            "      TX pins",
                            "    - [Config] remove PINCTRL_SM8350_LPASS_LPI",
                            "    - Upstream stable to v6.6.123, v6.12.69",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23148",
                            "    - nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23166",
                            "    - ice: Fix NULL pointer dereference in ice_vsi_set_napi_queues",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23151",
                            "    - Bluetooth: MGMT: Fix memory leak in set_ssp_complete",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23163",
                            "    - drm/amdgpu: fix NULL pointer dereference in",
                            "      amdgpu_gmc_filter_faults_remove",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23159",
                            "    - perf: sched: Fix perf crash with new is_user_task() helper",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2024-58096",
                            "    - wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2025-40039",
                            "    - ksmbd: Fix race condition in RPC handle list access",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23093",
                            "    - ksmbd: smbd: fix dma_unmap_sg() nents",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23102",
                            "    - arm64/fpsimd: signal: Fix restoration of SVE context",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23170",
                            "    - drm/imx/tve: fix probe device leak",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23168",
                            "    - flex_proportions: make fprop_new_period() hardirq safe",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23156",
                            "    - efivarfs: fix error propagation in efivar_entry_get()",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23167",
                            "    - nfc: nci: Fix race between rfkill and nci_unregister_device().",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23173",
                            "    - net/mlx5e: TC, delete flows only for existing peers",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23150",
                            "    - nfc: llcp: Fix memleak in nfc_llcp_send_ui_frame().",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23164",
                            "    - rocker: fix memory leak in rocker_world_port_post_fini()",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23172",
                            "    - net: wwan: t7xx: fix potential skb->frags overflow in RX path",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23212",
                            "    - bonding: annotate data-races around slave->last_rx",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23160",
                            "    - octeon_ep: Fix memory leak in octep_device_setup()",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23146",
                            "    - Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work",
                            "  * CVE-2026-23394",
                            "    - af_unix: Give up GC if MSG_PEEK intervened.",
                            "  * [SRU] MIPI camera is not working after upgrading to 6.17-oem",
                            "    (LP: #2145171)",
                            "    - SAUCE: ACPI: respect items already in honor_dep before skipping",
                            "  * ADATA SU680 causes repeated SATA resets and I/O errors on Ubuntu unless",
                            "    link power management is forced to max_performance (LP: #2144060)",
                            "    - ata: libata-core: disable LPM on ADATA SU680 SSD",
                            "  *  intel_idle: add Clearwater Forest SoC support (LP: #2144006)",
                            "    - intel_idle: add Clearwater Forest SoC support",
                            "  * Noble kernel 6.8.0-108 does not compile when KASAN enabled (LP: #2144914)",
                            "    - mm/kasan: fix incorrect unpoisoning in vrealloc for KASAN",
                            "  * Generic noble linux throws warning from file tegra-i2c.c (LP: #2143152)",
                            "    - i2c: tegra: Use internal reset when reset property is not available",
                            "  * [SRU] Duplicated entries in /proc/<pid>/mountinfo (LP: #2143083)",
                            "    - namespace: fix proc mount iteration",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465)",
                            "    - firmware: imx: scu-irq: Set mu_resource_id before get handle",
                            "    - efi/cper: Fix cper_bits_to_str buffer handling and return value",
                            "    - ASoC: codecs: wsa884x: fix codec initialisation",
                            "    - xfrm: Fix inner mode lookup in tunnel mode GSO segmentation",
                            "    - net: bridge: annotate data-races around fdb->{updated,used}",
                            "    - net: update netdev_lock_{type,name}",
                            "    - vsock/test: add a final full barrier after run all tests",
                            "    - net/mlx5e: Restore destroying state bit after profile cleanup",
                            "    - btrfs: store fs_info in space_info",
                            "    - btrfs: factor out init_space_info() from create_space_info()",
                            "    - btrfs: factor out check_removing_space_info() from",
                            "      btrfs_free_block_groups()",
                            "    - btrfs: introduce btrfs_space_info sub-group",
                            "    - btrfs: fix memory leaks in create_space_info() error paths",
                            "    - selftests: drv-net: fix RPS mask handling for high CPU numbers",
                            "    - ASoC: tlv320adcx140: fix word length",
                            "    - textsearch: describe @list member in ts_ops search",
                            "    - mm, kfence: describe @slab parameter in __kfence_obj_info()",
                            "    - dmaengine: xilinx_dma: Fix uninitialized addr_width when",
                            "      \"xlnx,addrwidth\" property is missing",
                            "    - phy: fsl-imx8mq-usb: Clear the PCS_TX_SWING_FULL field before using it",
                            "    - phy: phy-snps-eusb2: refactor constructs names",
                            "    - phy: drop probe registration printks",
                            "    - phy: broadcom: ns-usb3: Fix Wvoid-pointer-to-enum-cast warning (again)",
                            "    - i2c: qcom-geni: make sure I2C hub controllers can't use SE DMA",
                            "    - HID: usbhid: paper over wrong bNumDescriptor field",
                            "    - scsi: core: Fix error handler encryption support",
                            "    - ALSA: pcm: Improve the fix for race of buffer access at PCM OSS layer",
                            "    - can: ctucanfd: fix SSP_SRC in cases when bit-rate is higher than 1 MBit.",
                            "    - x86/kaslr: Recognize all ZONE_DEVICE users as physaddr consumers",
                            "    - phy: rockchip: inno-usb2: fix communication disruption in gadget mode",
                            "    - phy: freescale: imx8m-pcie: assert phy reset during power on",
                            "    - phy: rockchip: inno-usb2: fix disconnection in gadget mode",
                            "    - phy: tegra: xusb: Explicitly configure HS_DISCON_LEVEL to 0x7",
                            "    - usb: dwc3: Check for USB4 IP_NAME",
                            "    - usb: core: add USB_QUIRK_NO_BOS for devices that hang on BOS descriptor",
                            "    - USB: OHCI/UHCI: Add soft dependencies on ehci_platform",
                            "    - USB: serial: option: add Telit LE910 MBIM composition",
                            "    - USB: serial: ftdi_sio: add support for PICAXE AXE027 cable",
                            "    - nvme-pci: disable secondary temp for Wodposit WPBSNM8",
                            "    - hrtimer: Fix softirq base check in update_needs_ipi()",
                            "    - EDAC/x38: Fix a resource leak in x38_probe1()",
                            "    - EDAC/i3200: Fix a resource leak in i3200_probe1()",
                            "    - tcpm: allow looking for role_sw device in the main node",
                            "    - x86/resctrl: Add missing resctrl initialization for Hygon",
                            "    - x86/resctrl: Fix memory bandwidth counter width for Hygon",
                            "    - mm/page_alloc: make percpu_pagelist_high_fraction reads lock-free",
                            "    - LoongArch: Fix PMU counter allocation for mixed-type event groups",
                            "    - drm/amd/display: Bump the HDMI clock to 340MHz",
                            "    - drm/amd: Clean up kfd node on surprise disconnect",
                            "    - drm/amdkfd: fix a memory leak in device_queue_manager_init()",
                            "    - drm/nouveau/disp/nv50-: Set lock_core in curs507a_prepare",
                            "    - drm/vmwgfx: Fix an error return check in vmw_compat_shader_add()",
                            "    - dmaengine: apple-admac: Add \"apple,t8103-admac\" compatible",
                            "    - dmaengine: sh: rz-dmac: Fix rz_dmac_terminate_all()",
                            "    - dmaengine: ti: dma-crossbar: fix device leak on dra7x route allocation",
                            "    - dmaengine: ti: k3-udma: fix device leak on udma lookup",
                            "    - io_uring: move local task_work in exit cancel loop",
                            "    - posix-clock: Store file pointer in struct posix_clock_context",
                            "    - ptp: Add PHC file mode checks. Allow RO adjtime() without FMODE_WRITE.",
                            "    - selftest/ptp: update ptp selftest to exercise the gettimex options",
                            "    - testptp: Add option to open PHC in readonly mode",
                            "    - arm64: dts: qcom: sc8280xp: Add missing VDD_MXC links",
                            "    - hyperv-tlfs: Change prefix of generic HV_REGISTER_* MSRs to HV_MSR_*",
                            "    - Drivers: hv: Always do Hyper-V panic notification in hv_kmsg_dump()",
                            "    - btrfs: fix missing fields in superblock backup with BLOCK_GROUP_TREE",
                            "    - dt-bindings: power: qcom,rpmpd: document the SM8750 RPMh Power Domains",
                            "    - dt-bindings: power: qcom,rpmpd: add Turbo L5 corner",
                            "    - dt-bindings: power: qcom-rpmpd: split RPMh domains definitions",
                            "    - dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO",
                            "    - pmdomain: qcom: rpmhpd: Add MXC to SC8280XP",
                            "    - ata: libata: Add cpr_log to ata_dev_print_features() early return",
                            "    - ata: libata-core: Introduce ata_dev_config_lpm()",
                            "    - ata: libata: Call ata_dev_config_lpm() for ATAPI devices",
                            "    - ata: libata: Print features also for ATAPI devices",
                            "    - ice: initialize ring_stats->syncp",
                            "    - ice: Avoid detrimental cleanup for bond during interface stop",
                            "    - igc: fix race condition in TX timestamp read for register 0",
                            "    - net: usb: dm9601: remove broken SR9700 support",
                            "    - selftests: net: fib-onlink-tests: Convert to use namespaces by default",
                            "    - can: gs_usb: gs_usb_receive_bulk_callback(): unanchor URL on",
                            "      usb_submit_urb() error",
                            "    - amd-xgbe: avoid misleading per-packet error log",
                            "    - tools: ynl: Specify --no-line-number in ynl-regen.sh.",
                            "    - veth: fix data race in veth_get_ethtool_stats",
                            "    - octeontx2: cn10k: fix RX flowid TCAM mask handling",
                            "    - serial: 8250_pci: Fix broken RS485 for F81504/508/512",
                            "    - comedi: dmm32at: serialize use of paged registers",
                            "    - w1: fix redundant counter decrement in w1_attach_slave_device()",
                            "    - Revert \"nfc/nci: Add the inconsistency check between the input data",
                            "      length and count\"",
                            "    - Input: i8042 - add quirks for MECHREVO Wujie 15X Pro",
                            "    - Input: i8042 - add quirk for ASUS Zenbook UX425QA_UM425QA",
                            "    - scsi: storvsc: Process unsupported MODE_SENSE_10",
                            "    - arm64: dts: rockchip: remove dangerous max-link-speed from helios64",
                            "    - arm64: dts: rockchip: Fix voltage threshold for volume keys for",
                            "      Pinephone Pro",
                            "    - x86/kfence: avoid writing L1TF-vulnerable PTEs",
                            "    - comedi: Fix getting range information for subdevices 16 to 255",
                            "    - iio: adc: ad7280a: handle spi_setup() errors in probe()",
                            "    - kconfig: fix static linking of nconf",
                            "    - riscv: clocksource: Fix stimecmp update hazard on RV32",
                            "    - ALSA: usb: Increase volume range that triggers a warning",
                            "    - net: hns3: fix data race in hns3_fetch_stats",
                            "    - be2net: fix data race in be_get_new_eqd",
                            "    - net: hns3: fix wrong GENMASK() for HCLGE_FD_AD_COUNTER_NUM_M",
                            "    - net: hns3: fix the HCLGE_FD_AD_NXT_KEY error setting issue",
                            "    - usbnet: limit max_mtu based on device's hard_mtu",
                            "    - drm/amd/pm: Don't clear SI SMC table when setting power limit",
                            "    - drm/amd/pm: Workaround SI powertune issue on Radeon 430 (v2)",
                            "    - selftests: net: amt: wait longer for connection before sending packets",
                            "    - net: dsa: fix off-by-one in maximum bridge ID determination",
                            "    - octeontx2-af: Fix error handling",
                            "    - net: openvswitch: fix data race in ovs_vport_get_upcall_stats",
                            "    - vsock/test: fix seqpacket message bounds test",
                            "    - x86: make page fault handling disable interrupts properly",
                            "    - of: fix reference count leak in of_alias_scan()",
                            "    - of: platform: Use default match table for /firmware",
                            "    - iio: accel: iis328dq: fix gain values",
                            "    - iio: adc: ad9467: fix ad9434 vref mask",
                            "    - iio: chemical: scd4x: fix reported channel endianness",
                            "    - iio: dac: ad5686: add AD5695R to ad5686_chip_info_tbl",
                            "    - mmc: rtsx_pci_sdmmc: implement sdmmc_card_busy function",
                            "    - wifi: mwifiex: Fix a loop in mwifiex_update_ampdu_rxwinsize()",
                            "    - octeontx2: Fix otx2_dma_map_page() error return code",
                            "    - slimbus: core: fix runtime PM imbalance on report present",
                            "    - platform/x86: hp-bioscfg: Fix automatic module loading",
                            "    - perf/x86/intel: Do not enable BTS for guests",
                            "    - selftests/bpf: Check for timeout in perf_link test",
                            "    - mm/damon/sysfs-scheme: cleanup quotas subdirs on scheme dir setup",
                            "      failure",
                            "    - iio: core: add missing mutex_destroy in iio_dev_release()",
                            "    - iio: core: add separate lockdep class for info_exist_lock",
                            "    - mm/rmap: fix two comments related to huge_pmd_unshare()",
                            "    - arm64: dts: rockchip: remove redundant max-link-speed from nanopi-r4s",
                            "    - iio: adc: exynos_adc: fix OF populate on driver rebind",
                            "    - dmaengine: stm32: dmamux: fix OF node leak on route allocation failure",
                            "    - mm: kmsan: fix poisoning of high-order non-compound pages",
                            "    - phy: phy-rockchip-inno-usb2: Use dev_err_probe() in the probe path",
                            "    - ASoC: codecs: wsa881x: Drop unused version readout",
                            "    - ASoC: codecs: wsa881x: fix unnecessary initialisation",
                            "    - ASoC: codecs: wsa883x: fix unnecessary initialisation",
                            "    - nvme-fc: rename free_ctrl callback to match name pattern",
                            "    - nvme-pci: do not directly handle subsys reset fallout",
                            "    - nvme: fix PCIe subsystem reset controller state transition",
                            "    - net: phy: fix phy_uses_state_machine()",
                            "    - pnfs/blocklayout: Fix memory leak in bl_parse_scsi()",
                            "    - drm/vmwgfx: Merge vmw_bo_release and vmw_bo_free functions",
                            "    - ALSA: hda/cirrus_scodec_test: Fix incorrect setup of gpiochip",
                            "    - ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type",
                            "    - selftests/landlock: Fix TCP bind(AF_UNSPEC) test case",
                            "    - xfs: Fix the return value of xfs_rtcopy_summary()",
                            "    - phy: ti: gmii-sel: fix regmap leak on probe failure",
                            "    - LoongArch: dts: loongson-2k0500: Add default interrupt controller",
                            "      address cells",
                            "    - LoongArch: dts: loongson-2k1000: Add default interrupt controller",
                            "      address cells",
                            "    - LoongArch: dts: loongson-2k1000: Fix i2c-gpio node names",
                            "    - LoongArch: dts: loongson-2k2000: Add default interrupt controller",
                            "      address cells",
                            "    - HID: intel-ish-hid: Use dedicated unbound workqueues to prevent resume",
                            "      blocking",
                            "    - HID: intel-ish-hid: Fix -Wcast-function-type-strict in",
                            "      devm_ishtp_alloc_workqueue()",
                            "    - xfs: set max_agbno to allow sparse alloc of last full inode chunk",
                            "    - selftests/bpf: Test invalid narrower ctx load",
                            "    - mm/page_alloc/vmstat: simplify refresh_cpu_vm_stats change detection",
                            "    - mm/page_alloc: batch page freeing in decay_pcp_high",
                            "    - ata: libata-sata: Improve link_power_management_supported sysfs",
                            "      attribute",
                            "    - igc: Restore default Qbv schedule when changing channels",
                            "    - vsock/virtio: Coalesce only linear skb",
                            "    - platform/x86/amd: Fix memory leak in wbrf_record()",
                            "    - drm/imagination: Wait for FW trace update command completion",
                            "    - ice: Fix persistent failure in ice_get_rxfh",
                            "    - sched/fair: Fix pelt clock sync when entering idle",
                            "    - drm/nouveau: add missing DCB connector types",
                            "    - drm/nouveau: implement missing DCB connector types; gracefully handle",
                            "      unknown connectors",
                            "    - dpll: Prevent duplicate registrations",
                            "    - mei: trace: treat reg parameter as string",
                            "    - s390/ap: Fix wrong APQN fill calculation",
                            "    - net: sfp: add potron quirk to the H-COM SPP425H-GAB4 SFP+ Stick",
                            "    - gpio: cdev: Correct return code on memory allocation failure",
                            "    - dmaengine: ti: k3-udma: Enable second resource range for BCDMA and",
                            "      PKTDMA",
                            "    - exfat: fix refcount leak in exfat_find",
                            "    - accel/ivpu: Fix race condition when unbinding BOs",
                            "    - btrfs: fix racy bitfield write in btrfs_clear_space_info_full()",
                            "    - vsock/virtio: Move length check to callers of virtio_vsock_skb_rx_put()",
                            "    - vsock/virtio: Rename virtio_vsock_alloc_skb()",
                            "    - vsock/virtio: Move SKB allocation lower-bound check to callers",
                            "    - vsock/virtio: Rename virtio_vsock_skb_rx_put()",
                            "    - vhost/vsock: Allocate nonlinear SKBs for handling large receive buffers",
                            "    - vsock/virtio: Allocate nonlinear SKBs for handling large transmit",
                            "      buffers",
                            "    - net: Introduce skb_copy_datagram_from_iter_full()",
                            "    - vsock/virtio: Fix message iterator handling on transmit path",
                            "    - Upstream stable to v6.6.122, v6.12.67, v6.12.68",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-38591",
                            "    - bpf: Reject narrower access to pointer ctx fields",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23035",
                            "    - net/mlx5e: Pass netdev to mlx5e_destroy_netdev instead of priv",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22996",
                            "    - net/mlx5e: Don't store mlx5e_priv in mlx5e_dev devlink priv",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23000",
                            "    - net/mlx5e: Fix crash on profile change rollback failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23053",
                            "    - NFS: Fix a deadlock involving nfs_release_folio()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23050",
                            "    - pNFS: Fix a deadlock when returning a delegation during open()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23005",
                            "    - x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2024-58097",
                            "    - wifi: ath11k: fix RCU stall while reaping monitor destination ring",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-68365",
                            "    - fs/ntfs3: Initialize allocated memory before use",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-37926",
                            "    - ksmbd: fix use-after-free in ksmbd_session_rpc_open",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23030",
                            "    - phy: rockchip: inno-usb2: Fix a double free bug in",
                            "      rockchip_usb2phy_probe()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23025",
                            "    - mm/page_alloc: prevent pcp corruption with SMP=n",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71186",
                            "    - dmaengine: stm32: dmamux: fix device leak on route allocation",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23078",
                            "    - ALSA: scarlett2: Fix buffer overflow in config retrieval",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23142",
                            "    - mm/damon/sysfs-scheme: cleanup access_pattern subdirs on scheme dir",
                            "      setup failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23075",
                            "    - can: esd_usb: esd_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-68725",
                            "    - bpf: Do not let BPF test infra emit invalid GSO types to stack",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23097",
                            "    - migrate: correct lock ordering for hugetlb file folios",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23108",
                            "    - can: usb_8dev: usb_8dev_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23080",
                            "    - can: mcba_usb: mcba_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23061",
                            "    - can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23058",
                            "    - can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23085",
                            "    - irqchip/gic-v3-its: Avoid truncating memory addresses",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23116",
                            "    - pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23098",
                            "    - netrom: fix double-free in nr_route_frame()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23063",
                            "    - uacce: ensure safe queue release with state management",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23056",
                            "    - uacce: implement mremap in uacce_vm_ops to return -EPERM",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23094",
                            "    - uacce: fix isolate sysfs check condition",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23096",
                            "    - uacce: fix cdev handling in the cleanup path",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23091",
                            "    - intel_th: fix device leak on output open()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23088",
                            "    - tracing: Fix crash on synthetic stacktrace field usage",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23090",
                            "    - slimbus: core: fix device reference leak on report present",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23128",
                            "    - arm64: Set __nocfi on swsusp_arch_resume()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23107",
                            "    - arm64/fpsimd: signal: Allocate SSVE storage when restoring ZA",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23073",
                            "    - wifi: rsi: Fix memory corruption due to not set vif driver data size",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23135",
                            "    - wifi: ath12k: fix dma_free_coherent() pointer",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23133",
                            "    - wifi: ath10k: fix dma_free_coherent() pointer",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71200",
                            "    - mmc: sdhci-of-dwcmshc: Prevent illegal clock reduction in HS200/HS400",
                            "      mode",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23089",
                            "    - ALSA: usb-audio: Fix use-after-free in snd_usb_mixer_free()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23076",
                            "    - ALSA: ctxfi: Fix potential OOB access in audio mixer handling",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71199",
                            "    - iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc",
                            "      driver",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23101",
                            "    - leds: led-class: Only Add LED to leds_list when it is fully ready",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23064",
                            "    - net/sched: act_ife: avoid possible NULL deref",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23086",
                            "    - vsock/virtio: cap TX credit to local buffer size",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23069",
                            "    - vsock/virtio: fix potential underflow in virtio_transport_get_credit()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23119",
                            "    - bonding: provide a net pointer to __skb_flow_dissect()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23084",
                            "    - be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23124",
                            "    - ipv6: annotate data-race in ndisc_router_discovery()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23121",
                            "    - mISDN: annotate data-race around dev->work",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23126",
                            "    - netdevsim: fix a race issue related to the operation on bpf_bound_progs",
                            "      list",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23059",
                            "    - scsi: qla2xxx: Sanitize payload size to prevent member overflow",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23110",
                            "    - scsi: core: Wake up the error handler when final completions race",
                            "      against each other",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23071",
                            "    - regmap: Fix race condition in hwspinlock irqsave routine",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23068",
                            "    - spi: spi-sprd-adi: Fix double free in probe error path",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23123",
                            "    - interconnect: debugfs: initialize src_node and dst_node to empty strings",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71198",
                            "    - iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event",
                            "      detection",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23113",
                            "    - io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23062",
                            "    - platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23131",
                            "    - platform/x86: hp-bioscfg: Fix kobject warnings for empty attribute names",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23087",
                            "    - scsi: xen: scsiback: Fix potential memory leak in scsiback_remove()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71197",
                            "    - w1: therm: Fix off-by-one buffer overflow in alarms_store",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23105",
                            "    - net/sched: qfq: Use cl_is_active to determine whether class is active in",
                            "      qfq_rm_from_ag",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23103",
                            "    - ipvlan: Make the addrs_lock be per port",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23120",
                            "    - l2tp: avoid one data-race in l2tp_tunnel_del_work()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23083",
                            "    - fou: Don't allow 0 for FOU_ATTR_IPPROTO.",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23095",
                            "    - gue: Fix skb memleak with inner IP protocol 0.",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23125",
                            "    - sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23099",
                            "    - bonding: limit BOND_MODE_8023AD to Ethernet devices",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71194",
                            "    - btrfs: fix deadlock in wait_current_trans() due to ignored transaction",
                            "      type",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71185",
                            "    - dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23026",
                            "    - dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71188",
                            "    - dmaengine: lpc18xx-dmamux: fix device leak on route allocation",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71163",
                            "    - dmaengine: idxd: fix device leaks on compat bind and unbind",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71189",
                            "    - dmaengine: dw: dmamux: fix OF node leak on route allocation failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71190",
                            "    - dmaengine: bcm-sba-raid: fix device leak on probe",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71191",
                            "    - dmaengine: at_hdmac: fix device leak on of_dma_xlate()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23049",
                            "    - drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23144",
                            "    - mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23145",
                            "    - ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22997",
                            "    - net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session",
                            "      upon receiving the second rts",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23031",
                            "    - can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23032",
                            "    - null_blk: fix kmemleak by releasing references to fault configfs items",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23033",
                            "    - dmaengine: omap-dma: fix dma_pool resource leak in error paths",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71196",
                            "    - phy: stm32-usphyc: Fix off by one in probe()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71193",
                            "    - phy: qcom-qusb2: Fix NULL pointer dereference on early suspend",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71162",
                            "    - dmaengine: tegra-adma: Fix use-after-free",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71195",
                            "    - dmaengine: xilinx: xdma: Fix regmap max_register",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23006",
                            "    - ASoC: tlv320adcx140: fix null pointer",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22999",
                            "    - net/sched: sch_qfq: do not free existing class in qfq_change_class()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23010",
                            "    - ipv6: Fix use-after-free in inet6_addr_del().",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23054",
                            "    - net: hv_netvsc: reject RSS hash key programming without RX indirection",
                            "      table",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23011",
                            "    - ipv4: ip_gre: make ipgre_header() robust",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23001",
                            "    - macvlan: fix possible UAF in macvlan_forward_source()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23003",
                            "    - ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23141",
                            "    - btrfs: send: check for inline extents in range_is_hole_in_parent()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22998",
                            "    - nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23037",
                            "    - can: etas_es58x: allow partial RX URB allocation to succeed",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23038",
                            "    - pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058)",
                            "    - NFSD: Fix permission check for read access to executable-only files",
                            "    - 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",
                            "    - counter: 104-quad-8: Fix incorrect return value in IRQ handler",
                            "    - drm/pl111: Fix error handling in pl111_amba_probe",
                            "    - drm/radeon: Remove __counted_by from ClockInfoArray.clockInfo[]",
                            "    - gpio: rockchip: mark the GPIO controller as sleeping",
                            "    - pinctrl: qcom: lpass-lpi: mark the GPIO controller as sleeping",
                            "    - net: Add locking to protect skb->dev access in ip_output",
                            "    - nfsd: Fix a regression in nfsd_setattr()",
                            "    - nfsd: Fix NFSv3 atomicity bugs in nfsd_setattr()",
                            "    - nfsd: set security label during create operations",
                            "    - 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",
                            "    - dm-snapshot: fix 'scheduling while atomic' on real-time kernels",
                            "    - NFSv4: ensure the open stateid seqid doesn't go backwards",
                            "    - NFS: Fix up the automount fs_context to use the correct cred",
                            "    - smb/client: fix NT_STATUS_UNABLE_TO_FREE_VM value",
                            "    - smb/client: fix NT_STATUS_DEVICE_DOOR_OPEN value",
                            "    - smb/client: fix NT_STATUS_NO_DATA_DETECTED value",
                            "    - scsi: ipr: Enable/disable IRQD_NO_BALANCING during reset",
                            "    - scsi: ufs: core: Fix EH failure after W-LUN resume error",
                            "    - 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",
                            "    - arm64: dts: imx8mp: Fix LAN8740Ai PHY reference clock on DH electronics",
                            "      i.MX8M Plus DHCOM",
                            "    - netfilter: nft_synproxy: avoid possible data-race on update operation",
                            "    - gpio: pca953x: Add support for level-triggered interrupts",
                            "    - gpio: pca953x: handle short interrupt pulses on PCAL devices",
                            "    - netfilter: nf_tables: fix memory leak in nf_tables_newrule()",
                            "    - 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",
                            "    - net: wwan: iosm: Fix memory leak in ipc_mux_deinit()",
                            "    - bnxt_en: Fix potential data corruption with HW GRO/LRO",
                            "    - net: enetc: fix build warning when PAGE_SIZE is greater than 128K",
                            "    - arp: do not assume dev_hard_header() does not change skb->head",
                            "    - ALSA: ac97bus: Use guard() for mutex locks",
                            "    - NFS: trace: show TIMEDOUT instead of 0x6e",
                            "    - nfs_common: factor out nfs_errtbl and nfs_stat_to_errno",
                            "    - NFSD: Remove NFSERR_EAGAIN",
                            "    - bpf: Fix an issue in bpf_prog_test_run_xdp when page size greater than",
                            "      4K",
                            "    - bpf: Make variables in bpf_prog_test_run_xdp less confusing",
                            "    - bpf: Support specifying linear xdp packet data size for",
                            "      BPF_PROG_TEST_RUN",
                            "    - powercap: fix race condition in register_control_type()",
                            "    - powercap: fix sscanf() error return value handling",
                            "    - ALSA: usb-audio: Update for native DSD support quirks",
                            "    - ASoC: amd: yc: Add quirk for Honor MagicBook X16 2025",
                            "    - ASoC: fsl_sai: Add missing registers to cache default",
                            "    - scsi: sg: Fix occasional bogus elapsed time that exceeds timeout",
                            "    - bpf: test_run: Fix ctx leak in bpf_prog_test_run_xdp error path",
                            "    - ASoC: rockchip: Fix Wvoid-pointer-to-enum-cast warning (again)",
                            "    - btrfs: tracepoints: use btrfs_root_id() to get the id of a root",
                            "    - crypto: qat - fix duplicate restarting msg during AER error",
                            "    - netfilter: nft_set_pipapo: fix range overlap detection",
                            "    - vsock: Make accept()ed sockets use custom setsockopt()",
                            "    - btrfs: only enforce free space tree if v1 cache is required for bs < ps",
                            "      cases",
                            "    - riscv: pgtable: Cleanup useless VA_USER_XXX definitions",
                            "    - idpf: keep the netdev when a reset fails",
                            "    - net: sfp: extend Potron XGSPON quirk to cover additional EEPROM variant",
                            "    - ata: libata-core: Disable LPM on ST2000DM008-2FR102",
                            "    - drm/amd/display: Fix DP no audio issue",
                            "    - ALSA: hda/realtek: enable woofer speakers on Medion NM14LNL",
                            "    - spi: cadence-quadspi: Prevent lost complete() call during indirect read",
                            "    - ALSA: hda: intel-dsp-config: Prefer legacy driver as fallback",
                            "    - Upstream stable to v6.6.121, v6.12.66",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71184",
                            "    - btrfs: fix NULL dereference on root when tracing inode eviction",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71182",
                            "    - can: j1939: make j1939_session_activate() fail if device is no longer",
                            "      registered",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71160",
                            "    - netfilter: nf_tables: avoid chain re-validation if possible",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22994",
                            "    - bpf: Fix reference count leak in bpf_prog_test_run_xdp()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23140",
                            "    - bpf, test_run: Subtract size of xdp_frame from allowed metadata size",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71192",
                            "    - ALSA: ac97: fix a double free in snd_ac97_controller_register()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23021",
                            "    - net: usb: pegasus: fix memory leak in update_eth_regs_async()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22976",
                            "    - net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate",
                            "      in qfq_reset",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22979",
                            "    - net: fix memory leak in skb_segment_list for GRO packets",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22977",
                            "    - net: sock: fix hardened usercopy panic in sock_recv_errqueue",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22982",
                            "    - net: mscc: ocelot: Fix crash when adding interface under a lag",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23019",
                            "    - net: marvell: prestera: fix NULL dereference on devlink_alloc() failure",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23139",
                            "    - netfilter: nf_conncount: update last_gc only when GC has been performed",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-40149",
                            "    - tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock().",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-68803",
                            "    - NFSD: NFSv4 file creation neglects setting ACL",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23047",
                            "    - libceph: make calc_target() set t->paused, not just clear it",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23136",
                            "    - libceph: reset sparse-read state in osd_fault()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22992",
                            "    - libceph: return the handler error from mon_handle_auth_done()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22991",
                            "    - libceph: make free_choose_arg_map() resilient to partial allocation",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22990",
                            "    - libceph: replace overzealous BUG_ON in osdmap_apply_incremental()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22984",
                            "    - libceph: prevent potential out-of-bounds reads in handle_auth_done()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22978",
                            "    - wifi: avoid kernel-infoleak from struct iw_point",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71180",
                            "    - counter: interrupt-cnt: Drop IRQF_NO_THREAD flag",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71183",
                            "    - btrfs: always detect conflicting inodes when logging inode refs",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23020",
                            "    - net: 3com: 3c59x: fix possible null dereference in vortex_probe1()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22980",
                            "    - nfsd: provide locking for v4_end_grace",
                            "  * CVE-2024-50004",
                            "    - drm/amd/display: update DML2 policy",
                            "      EnhancedPrefetchScheduleAccelerationFinal DCN35",
                            "  * CVE-2026-23274",
                            "    - netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels",
                            "  * CVE-2026-23351",
                            "    - netfilter: nft_set_pipapo: split gc into unlink and reclaim phase",
                            "  * CVE-2026-23231",
                            "    - netfilter: nf_tables: fix use-after-free in nf_tables_addchain()",
                            "  * macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "    path (LP: #2144380) // CVE-2026-23209",
                            "    - macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "      path",
                            "  * CVE-2026-23112",
                            "    - nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-114.114~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2147981,
                            2148397,
                            2146465,
                            2147982,
                            2147447,
                            2147400,
                            2147065,
                            2144577,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2145171,
                            2144060,
                            2144006,
                            2144914,
                            2143152,
                            2143083,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144380
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 17 Apr 2026 10:49:46 +0200"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23231",
                                "url": "https://ubuntu.com/security/CVE-2026-23231",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-03-04 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23209",
                                "url": "https://ubuntu.com/security/CVE-2026-23209",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23112",
                                "url": "https://ubuntu.com/security/CVE-2026-23112",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-111.111~22.04.1 -proposed tracker (LP: #2147889)",
                            "",
                            "  [ Ubuntu: 6.8.0-111.111 ]",
                            "",
                            "  * noble/linux: 6.8.0-111.111 -proposed tracker (LP: #2147890)",
                            "  * CVE-2026-23231",
                            "    - netfilter: nf_tables: fix use-after-free in nf_tables_addchain()",
                            "  * macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "    path (LP: #2144380) // CVE-2026-23209",
                            "    - macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "      path",
                            "  * CVE-2026-23112",
                            "    - nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-111.111~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2147889,
                            2147890,
                            2144380
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Tue, 14 Apr 2026 17:47:01 +0200"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2024-36347",
                                "url": "https://ubuntu.com/security/CVE-2024-36347",
                                "cve_description": "Improper signature verification in AMD CPU ROM microcode patch loader may allow an attacker with local administrator privilege to load malicious microcode, potentially resulting in loss of integrity of x86 instruction execution, loss of confidentiality and integrity of data in x86 CPU privileged context and compromise of SMM execution environment.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-06-27 23:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40164",
                                "url": "https://ubuntu.com/security/CVE-2025-40164",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Fix using smp_processor_id() in preemptible code warnings  Syzbot reported the following warning:  BUG: using smp_processor_id() in preemptible [00000000] code: dhcpcd/2879 caller is usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331 CPU: 1 UID: 0 PID: 2879 Comm: dhcpcd Not tainted 6.15.0-rc4-syzkaller-00098-g615dca38c2ea #0 PREEMPT(voluntary) Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120  check_preemption_disabled+0xd0/0xe0 lib/smp_processor_id.c:49  usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331  usbnet_resume_rx+0x4b/0x170 drivers/net/usb/usbnet.c:708  usbnet_change_mtu+0x1be/0x220 drivers/net/usb/usbnet.c:417  __dev_set_mtu net/core/dev.c:9443 [inline]  netif_set_mtu_ext+0x369/0x5c0 net/core/dev.c:9496  netif_set_mtu+0xb0/0x160 net/core/dev.c:9520  dev_set_mtu+0xae/0x170 net/core/dev_api.c:247  dev_ifsioc+0xa31/0x18d0 net/core/dev_ioctl.c:572  dev_ioctl+0x223/0x10e0 net/core/dev_ioctl.c:821  sock_do_ioctl+0x19d/0x280 net/socket.c:1204  sock_ioctl+0x42f/0x6a0 net/socket.c:1311  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+0x190/0x200 fs/ioctl.c:892  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  For historical and portability reasons, the netif_rx() is usually run in the softirq or interrupt context, this commit therefore add local_bh_disable/enable() protection in the usbnet_resume_rx().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-12 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40325",
                                "url": "https://ubuntu.com/security/CVE-2025-40325",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid10: wait barrier before returning discard request with REQ_NOWAIT  raid10_handle_discard should wait barrier before returning a discard bio which has REQ_NOWAIT. And there is no need to print warning calltrace if a discard bio has REQ_NOWAIT flag. Quality engineer usually checks dmesg and reports error if dmesg has warning/error calltrace.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-18 07:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68206",
                                "url": "https://ubuntu.com/security/CVE-2025-68206",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_ct: add seqadj extension for natted connections  Sequence adjustment may be required for FTP traffic with PASV/EPSV modes. due to need to re-write packet payload (IP, port) on the ftp control connection. This can require changes to the TCP length and expected seq / ack_seq.  The easiest way to reproduce this issue is with PASV mode. Example ruleset: table inet ftp_nat {         ct helper ftp_helper {                 type \"ftp\" protocol tcp                 l3proto inet         }          chain prerouting {                 type filter hook prerouting priority 0; policy accept;                 tcp dport 21 ct state new ct helper set \"ftp_helper\"         } } table ip nat {         chain prerouting {                 type nat hook prerouting priority -100; policy accept;                 tcp dport 21 dnat ip prefix to ip daddr map { \t\t\t192.168.100.1 : 192.168.13.2/32 }         }          chain postrouting {                 type nat hook postrouting priority 100 ; policy accept;                 tcp sport 21 snat ip prefix to ip saddr map { \t\t\t192.168.13.2 : 192.168.100.1/32 }         } }  Note that the ftp helper gets assigned *after* the dnat setup.  The inverse (nat after helper assign) is handled by an existing check in nf_nat_setup_info() and will not show the problem.  Topoloy:   +-------------------+     +----------------------------------+  | FTP: 192.168.13.2 | <-> | NAT: 192.168.13.3, 192.168.100.1 |  +-------------------+     +----------------------------------+                                       |                          +-----------------------+                          | Client: 192.168.100.2 |                          +-----------------------+  ftp nat changes do not work as expected in this case: Connected to 192.168.100.1. [..] ftp> epsv EPSV/EPRT on IPv4 off. ftp> ls 227 Entering passive mode (192,168,100,1,209,129). 421 Service not available, remote server has closed connection.  Kernel logs: Missing nfct_seqadj_ext_add() setup call WARNING: CPU: 1 PID: 0 at net/netfilter/nf_conntrack_seqadj.c:41 [..]  __nf_nat_mangle_tcp_packet+0x100/0x160 [nf_nat]  nf_nat_ftp+0x142/0x280 [nf_nat_ftp]  help+0x4d1/0x880 [nf_conntrack_ftp]  nf_confirm+0x122/0x2e0 [nf_conntrack]  nf_hook_slow+0x3c/0xb0  ..  Fix this by adding the required extension when a conntrack helper is assigned to a connection that has a nat binding.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15: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-71135",
                                "url": "https://ubuntu.com/security/CVE-2025-71135",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid5: fix possible null-pointer dereferences in raid5_store_group_thread_cnt()  The variable mddev->private is first assigned to conf and then checked:    conf = mddev->private;   if (!conf) ...  If conf is NULL, then mddev->private is also NULL. In this case, null-pointer dereferences can occur when calling raid5_quiesce():    raid5_quiesce(mddev, true);   raid5_quiesce(mddev, false);  since mddev->private is assigned to conf again in raid5_quiesce(), and conf is dereferenced in several places, for example:    conf->quiesce = 0;   wake_up(&conf->wait_for_quiescent);  To fix this issue, the function should unlock mddev and return before invoking raid5_quiesce() when conf is NULL, following the existing pattern in raid5_change_consistency_policy().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38234",
                                "url": "https://ubuntu.com/security/CVE-2025-38234",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/rt: Fix race in push_rt_task  Overview ======== When a CPU chooses to call push_rt_task and picks a task to push to another CPU's runqueue then it will call find_lock_lowest_rq method which would take a double lock on both CPUs' runqueues. If one of the locks aren't readily available, it may lead to dropping the current runqueue lock and reacquiring both the locks at once. During this window it is possible that the task is already migrated and is running on some other CPU. These cases are already handled. However, if the task is migrated and has already been executed and another CPU is now trying to wake it up (ttwu) such that it is queued again on the runqeue (on_rq is 1) and also if the task was run by the same CPU, then the current checks will pass even though the task was migrated out and is no longer in the pushable tasks list.  Crashes ======= This bug resulted in quite a few flavors of crashes triggering kernel panics with various crash signatures such as assert failures, page faults, null pointer dereferences, and queue corruption errors all coming from scheduler itself.  Some of the crashes: -> kernel BUG at kernel/sched/rt.c:1616! BUG_ON(idx >= MAX_RT_PRIO)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? pick_next_task_rt+0x6e/0x1d0    ? do_error_trap+0x64/0xa0    ? pick_next_task_rt+0x6e/0x1d0    ? exc_invalid_op+0x4c/0x60    ? pick_next_task_rt+0x6e/0x1d0    ? asm_exc_invalid_op+0x12/0x20    ? pick_next_task_rt+0x6e/0x1d0    __schedule+0x5cb/0x790    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: kernel NULL pointer dereference, address: 00000000000000c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? __warn+0x8a/0xe0    ? exc_page_fault+0x3d6/0x520    ? asm_exc_page_fault+0x1e/0x30    ? pick_next_task_rt+0xb5/0x1d0    ? pick_next_task_rt+0x8c/0x1d0    __schedule+0x583/0x7e0    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: unable to handle page fault for address: ffff9464daea5900    kernel BUG at kernel/sched/rt.c:1861! BUG_ON(rq->cpu != task_cpu(p))  -> kernel BUG at kernel/sched/rt.c:1055! BUG_ON(!rq->nr_running)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? dequeue_top_rt_rq+0xa2/0xb0    ? do_error_trap+0x64/0xa0    ? dequeue_top_rt_rq+0xa2/0xb0    ? exc_invalid_op+0x4c/0x60    ? dequeue_top_rt_rq+0xa2/0xb0    ? asm_exc_invalid_op+0x12/0x20    ? dequeue_top_rt_rq+0xa2/0xb0    dequeue_rt_entity+0x1f/0x70    dequeue_task_rt+0x2d/0x70    __schedule+0x1a8/0x7e0    ? blk_finish_plug+0x25/0x40    schedule+0x3c/0xb0    futex_wait_queue_me+0xb6/0x120    futex_wait+0xd9/0x240    do_futex+0x344/0xa90    ? get_mm_exe_file+0x30/0x60    ? audit_exe_compare+0x58/0x70    ? audit_filter_rules.constprop.26+0x65e/0x1220    __x64_sys_futex+0x148/0x1f0    do_syscall_64+0x30/0x80    entry_SYSCALL_64_after_hwframe+0x62/0xc7  -> BUG: unable to handle page fault for address: ffff8cf3608bc2c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? spurious_kernel_fault+0x171/0x1c0    ? exc_page_fault+0x3b6/0x520    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? asm_exc_page_fault+0x1e/0x30    ? _cond_resched+0x15/0x30    ? futex_wait_queue_me+0xc8/0x120    ? futex_wait+0xd9/0x240    ? try_to_wake_up+0x1b8/0x490    ? futex_wake+0x78/0x160    ? do_futex+0xcd/0xa90    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? plist_del+0x6a/0xd0    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? dequeue_pushable_task+0x20/0x70    ? __schedule+0x382/0x7e0    ? asm_sysvec_reschedule_i ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-07-04 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68811",
                                "url": "https://ubuntu.com/security/CVE-2025-68811",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: use rc_pageoff for memcpy byte offset  svc_rdma_copy_inline_range added rc_curpage (page index) to the page base instead of the byte offset rc_pageoff. Use rc_pageoff so copies land within the current page.  Found by ZeroPath (https://zeropath.com)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68810",
                                "url": "https://ubuntu.com/security/CVE-2025-68810",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot  Reject attempts to disable KVM_MEM_GUEST_MEMFD on a memslot that was initially created with a guest_memfd binding, as KVM doesn't support toggling KVM_MEM_GUEST_MEMFD on existing memslots.  KVM prevents enabling KVM_MEM_GUEST_MEMFD, but doesn't prevent clearing the flag.  Failure to reject the new memslot results in a use-after-free due to KVM not unbinding from the guest_memfd instance.  Unbinding on a FLAGS_ONLY change is easy enough, and can/will be done as a hardening measure (in anticipation of KVM supporting dirty logging on guest_memfd at some point), but fixing the use-after-free would only address the immediate symptom.    ==================================================================   BUG: KASAN: slab-use-after-free in kvm_gmem_release+0x362/0x400 [kvm]   Write of size 8 at addr ffff8881111ae908 by task repro/745    CPU: 7 UID: 1000 PID: 745 Comm: repro Not tainted 6.18.0-rc6-115d5de2eef3-next-kasan #3 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   Call Trace:    <TASK>    dump_stack_lvl+0x51/0x60    print_report+0xcb/0x5c0    kasan_report+0xb4/0xe0    kvm_gmem_release+0x362/0x400 [kvm]    __fput+0x2fa/0x9d0    task_work_run+0x12c/0x200    do_exit+0x6ae/0x2100    do_group_exit+0xa8/0x230    __x64_sys_exit_group+0x3a/0x50    x64_sys_call+0x737/0x740    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f581f2eac31    </TASK>    Allocated by task 745 on cpu 6 at 9.746971s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_kmalloc+0x77/0x90    kvm_set_memory_region.part.0+0x652/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53    Freed by task 745 on cpu 6 at 9.747467s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_save_free_info+0x37/0x50    __kasan_slab_free+0x3b/0x60    kfree+0xf5/0x440    kvm_set_memslot+0x3c2/0x1160 [kvm]    kvm_set_memory_region.part.0+0x86a/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71109",
                                "url": "https://ubuntu.com/security/CVE-2025-71109",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  MIPS: ftrace: Fix memory corruption when kernel is located beyond 32 bits  Since commit e424054000878 (\"MIPS: Tracing: Reduce the overhead of dynamic Function Tracer\"), the macro UASM_i_LA_mostly has been used, and this macro can generate more than 2 instructions. At the same time, the code in ftrace assumes that no more than 2 instructions can be generated, which is why it stores them in an int[2] array. However, as previously noted, the macro UASM_i_LA_mostly (and now UASM_i_LA) causes a buffer overflow when _mcount is beyond 32 bits. This leads to corruption of the variables located in the __read_mostly section.  This corruption was observed because the variable __cpu_primary_thread_mask was corrupted, causing a hang very early during boot.  This fix prevents the corruption by avoiding the generation of instructions if they could exceed 2 instructions in length. Fortunately, insn_la_mcount is only used if the instrumented code is located outside the kernel code section, so dynamic ftrace can still be used, albeit in a more limited scope. This is still preferable to corrupting memory and/or crashing the kernel.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68770",
                                "url": "https://ubuntu.com/security/CVE-2025-68770",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bnxt_en: Fix XDP_TX path  For XDP_TX action in bnxt_rx_xdp(), clearing of the event flags is not correct.  __bnxt_poll_work() -> bnxt_rx_pkt() -> bnxt_rx_xdp() may be looping within NAPI and some event flags may be set in earlier iterations.  In particular, if BNXT_TX_EVENT is set earlier indicating some XDP_TX packets are ready and pending, it will be cleared if it is XDP_TX action again.  Normally, we will set BNXT_TX_EVENT again when we successfully call __bnxt_xmit_xdp().  But if the TX ring has no more room, the flag will not be set.  This will cause the TX producer to be ahead but the driver will not hit the TX doorbell.  For multi-buf XDP_TX, there is no need to clear the event flags and set BNXT_AGG_EVENT.  The BNXT_AGG_EVENT flag should have been set earlier in bnxt_rx_pkt().  The visible symptom of this is that the RX ring associated with the TX XDP ring will eventually become empty and all packets will be dropped. Because this condition will cause the driver to not refill the RX ring seeing that the TX ring has forever pending XDP_TX packets.  The fix is to only clear BNXT_RX_EVENT when we have successfully called __bnxt_xmit_xdp().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71072",
                                "url": "https://ubuntu.com/security/CVE-2025-71072",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  shmem: fix recovery on rename failures  maple_tree insertions can fail if we are seriously short on memory; simple_offset_rename() does not recover well if it runs into that. The same goes for simple_offset_rename_exchange().  Moreover, shmem_whiteout() expects that if it succeeds, the caller will progress to d_move(), i.e. that shmem_rename2() won't fail past the successful call of shmem_whiteout().  Not hard to fix, fortunately - mtree_store() can't fail if the index we are trying to store into is already present in the tree as a singleton.  For simple_offset_rename_exchange() that's enough - we just need to be careful about the order of operations.  For simple_offset_rename() solution is to preinsert the target into the tree for new_dir; the rest can be done without any potentially failing operations.  That preinsertion has to be done in shmem_rename2() rather than in simple_offset_rename() itself - otherwise we'd need to deal with the possibility of failure after successful shmem_whiteout().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68374",
                                "url": "https://ubuntu.com/security/CVE-2025-68374",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: fix rcu protection in md_wakeup_thread  We attempted to use RCU to protect the pointer 'thread', but directly passed the value when calling md_wakeup_thread(). This means that the RCU pointer has been acquired before rcu_read_lock(), which renders rcu_read_lock() ineffective and could lead to a use-after-free.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68378",
                                "url": "https://ubuntu.com/security/CVE-2025-68378",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix stackmap overflow check in __bpf_get_stackid()  Syzkaller reported a KASAN slab-out-of-bounds write in __bpf_get_stackid() when copying stack trace data. The issue occurs when the perf trace  contains more stack entries than the stack map bucket can hold,  leading to an out-of-bounds write in the bucket's data array.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-57795",
                                "url": "https://ubuntu.com/security/CVE-2024-57795",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Remove the direct link to net_device  The similar patch in siw is in the link: https://git.kernel.org/rdma/rdma/c/16b87037b48889  This problem also occurred in RXE. The following analyze this problem. In the following Call Traces: \" BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 net/core/dev.c:8782 Read of size 4 at addr ffff8880554640b0 by task kworker/1:4/5295  CPU: 1 UID: 0 PID: 5295 Comm: kworker/1:4 Not tainted 6.12.0-rc3-syzkaller-00399-g9197b73fd7bb #0 Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: infiniband ib_cache_event_task 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:377 [inline]  print_report+0x169/0x550 mm/kasan/report.c:488  kasan_report+0x143/0x180 mm/kasan/report.c:601  dev_get_flags+0x188/0x1d0 net/core/dev.c:8782  rxe_query_port+0x12d/0x260 drivers/infiniband/sw/rxe/rxe_verbs.c:60  __ib_query_port drivers/infiniband/core/device.c:2111 [inline]  ib_query_port+0x168/0x7d0 drivers/infiniband/core/device.c:2143  ib_cache_update+0x1a9/0xb80 drivers/infiniband/core/cache.c:1494  ib_cache_event_task+0xf3/0x1e0 drivers/infiniband/core/cache.c:1568  process_one_work kernel/workqueue.c:3229 [inline]  process_scheduled_works+0xa65/0x1850 kernel/workqueue.c:3310  worker_thread+0x870/0xd30 kernel/workqueue.c:3391  kthread+0x2f2/0x390 kernel/kthread.c:389  ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:147  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244  </TASK> \"  1). In the link [1],  \"  infiniband syz2: set down \"  This means that on 839.350575, the event ib_cache_event_task was sent andi queued in ib_wq.  2). In the link [1],  \"  team0 (unregistering): Port device team_slave_0 removed \"  It indicates that before 843.251853, the net device should be freed.  3). In the link [1],  \"  BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 \"  This means that on 850.559070, this slab-use-after-free problem occurred.  In all, on 839.350575, the event ib_cache_event_task was sent and queued in ib_wq,  before 843.251853, the net device veth was freed.  on 850.559070, this event was executed, and the mentioned freed net device was called. Thus, the above call trace occurred.  [1] https://syzkaller.appspot.com/x/log.txt?x=12e7025f980000",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-01-15 13: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-71140",
                                "url": "https://ubuntu.com/security/CVE-2025-71140",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: mediatek: vcodec: Use spinlock for context list protection lock  Previously a mutex was added to protect the encoder and decoder context lists from unexpected changes originating from the SCP IP block, causing the context pointer to go invalid, resulting in a NULL pointer dereference in the IPI handler.  Turns out on the MT8173, the VPU IPI handler is called from hard IRQ context. This causes a big warning from the scheduler. This was first reported downstream on the ChromeOS kernels, but is also reproducible on mainline using Fluster with the FFmpeg v4l2m2m decoders. Even though the actual capture format is not supported, the affected code paths are triggered.  Since this lock just protects the context list and operations on it are very fast, it should be OK to switch to a spinlock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-68772",
                                "url": "https://ubuntu.com/security/CVE-2025-68772",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating compression context during writeback  Bai, Shuangpeng <sjb7183@psu.edu> reported a bug as below:  Oops: divide error: 0000 [#1] SMP KASAN PTI CPU: 0 UID: 0 PID: 11441 Comm: syz.0.46 Not tainted 6.17.0 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP: 0010:f2fs_all_cluster_page_ready+0x106/0x550 fs/f2fs/compress.c:857 Call Trace:  <TASK>  f2fs_write_cache_pages fs/f2fs/data.c:3078 [inline]  __f2fs_write_data_pages fs/f2fs/data.c:3290 [inline]  f2fs_write_data_pages+0x1c19/0x3600 fs/f2fs/data.c:3317  do_writepages+0x38e/0x640 mm/page-writeback.c:2634  filemap_fdatawrite_wbc mm/filemap.c:386 [inline]  __filemap_fdatawrite_range mm/filemap.c:419 [inline]  file_write_and_wait_range+0x2ba/0x3e0 mm/filemap.c:794  f2fs_do_sync_file+0x6e6/0x1b00 fs/f2fs/file.c:294  generic_write_sync include/linux/fs.h:3043 [inline]  f2fs_file_write_iter+0x76e/0x2700 fs/f2fs/file.c:5259  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x7e9/0xe00 fs/read_write.c:686  ksys_write+0x19d/0x2d0 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xf7/0x470 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The bug was triggered w/ below race condition:  fsync\t\t\t\tsetattr\t\t\tioctl - f2fs_do_sync_file  - file_write_and_wait_range   - f2fs_write_cache_pages   : inode is non-compressed   : cc.cluster_size =     F2FS_I(inode)->i_cluster_size = 0    - tag_pages_for_writeback \t\t\t\t- f2fs_setattr \t\t\t\t - truncate_setsize \t\t\t\t - f2fs_truncate \t\t\t\t\t\t\t- f2fs_fileattr_set \t\t\t\t\t\t\t - f2fs_setflags_common \t\t\t\t\t\t\t  - set_compress_context \t\t\t\t\t\t\t  : F2FS_I(inode)->i_cluster_size = 4 \t\t\t\t\t\t\t  : set_inode_flag(inode, FI_COMPRESSED_FILE)    - f2fs_compressed_file    : return true    - f2fs_all_cluster_page_ready    : \"pgidx % cc->cluster_size\" trigger dividing 0 issue  Let's change as below to fix this issue: - introduce a new atomic type variable .writeback in structure f2fs_inode_info to track the number of threads which calling f2fs_write_cache_pages(). - use .i_sem lock to protect .writeback update. - check .writeback before update compression context in f2fs_setflags_common() to avoid race w/ ->writepages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15: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-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-71141",
                                "url": "https://ubuntu.com/security/CVE-2025-71141",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/tilcdc: Fix removal actions in case of failed probe  The drm_kms_helper_poll_fini() and drm_atomic_helper_shutdown() helpers should only be called when the device has been successfully registered. Currently, these functions are called unconditionally in tilcdc_fini(), which causes warnings during probe deferral scenarios.  [    7.972317] WARNING: CPU: 0 PID: 23 at drivers/gpu/drm/drm_atomic_state_helper.c:175 drm_atomic_helper_crtc_duplicate_state+0x60/0x68 ... [    8.005820]  drm_atomic_helper_crtc_duplicate_state from drm_atomic_get_crtc_state+0x68/0x108 [    8.005858]  drm_atomic_get_crtc_state from drm_atomic_helper_disable_all+0x90/0x1c8 [    8.005885]  drm_atomic_helper_disable_all from drm_atomic_helper_shutdown+0x90/0x144 [    8.005911]  drm_atomic_helper_shutdown from tilcdc_fini+0x68/0xf8 [tilcdc] [    8.005957]  tilcdc_fini [tilcdc] from tilcdc_pdev_probe+0xb0/0x6d4 [tilcdc]  Fix this by rewriting the failed probe cleanup path using the standard goto error handling pattern, which ensures that cleanup functions are only called on successfully initialized resources. Additionally, remove the now-unnecessary is_registered flag.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 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-71088",
                                "url": "https://ubuntu.com/security/CVE-2025-71088",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fallback earlier on simult connection  Syzkaller reports a simult-connect race leading to inconsistent fallback status:    WARNING: CPU: 3 PID: 33 at net/mptcp/subflow.c:1515 subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Modules linked in:   CPU: 3 UID: 0 PID: 33 Comm: ksoftirqd/3 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:subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Code: 89 ee e8 78 61 3c f6 40 84 ed 75 21 e8 8e 66 3c f6 44 89 fe bf 07 00 00 00 e8 c1 61 3c f6 41 83 ff 07 74 09 e8 76 66 3c f6 90 <0f> 0b 90 e8 6d 66 3c f6 48 89 df e8 e5 ad ff ff 31 ff 89 c5 89 c6   RSP: 0018:ffffc900006cf338 EFLAGS: 00010246   RAX: 0000000000000000 RBX: ffff888031acd100 RCX: ffffffff8b7f2abf   RDX: ffff88801e6ea440 RSI: ffffffff8b7f2aca RDI: 0000000000000005   RBP: 0000000000000000 R08: 0000000000000005 R09: 0000000000000007   R10: 0000000000000004 R11: 0000000000002c10 R12: ffff88802ba69900   R13: 1ffff920000d9e67 R14: ffff888046f81800 R15: 0000000000000004   FS:  0000000000000000(0000) GS:ffff8880d69bc000(0000) knlGS:0000000000000000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 0000560fc0ca1670 CR3: 0000000032c3a000 CR4: 0000000000352ef0   Call Trace:    <TASK>    tcp_data_queue+0x13b0/0x4f90 net/ipv4/tcp_input.c:5197    tcp_rcv_state_process+0xfdf/0x4ec0 net/ipv4/tcp_input.c:6922    tcp_v6_do_rcv+0x492/0x1740 net/ipv6/tcp_ipv6.c:1672    tcp_v6_rcv+0x2976/0x41e0 net/ipv6/tcp_ipv6.c:1918    ip6_protocol_deliver_rcu+0x188/0x1520 net/ipv6/ip6_input.c:438    ip6_input_finish+0x1e4/0x4b0 net/ipv6/ip6_input.c:489    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ip6_input+0x105/0x2f0 net/ipv6/ip6_input.c:500    dst_input include/net/dst.h:471 [inline]    ip6_rcv_finish net/ipv6/ip6_input.c:79 [inline]    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ipv6_rcv+0x264/0x650 net/ipv6/ip6_input.c:311    __netif_receive_skb_one_core+0x12d/0x1e0 net/core/dev.c:5979    __netif_receive_skb+0x1d/0x160 net/core/dev.c:6092    process_backlog+0x442/0x15e0 net/core/dev.c:6444    __napi_poll.constprop.0+0xba/0x550 net/core/dev.c:7494    napi_poll net/core/dev.c:7557 [inline]    net_rx_action+0xa9f/0xfe0 net/core/dev.c:7684    handle_softirqs+0x216/0x8e0 kernel/softirq.c:579    run_ksoftirqd kernel/softirq.c:968 [inline]    run_ksoftirqd+0x3a/0x60 kernel/softirq.c:960    smpboot_thread_fn+0x3f7/0xae0 kernel/smpboot.c:160    kthread+0x3c2/0x780 kernel/kthread.c:463    ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148    ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245    </TASK>  The TCP subflow can process the simult-connect syn-ack packet after transitioning to TCP_FIN1 state, bypassing the MPTCP fallback check, as the sk_state_change() callback is not invoked for * -> FIN_WAIT1 transitions.  That will move the msk socket to an inconsistent status and the next incoming data will hit the reported splat.  Close the race moving the simult-fallback check at the earliest possible stage - that is at syn-ack generation time.  About the fixes tags: [2] was supposed to also fix this issue introduced by [3]. [1] is required as a dependence: it was not explicitly marked as a fix, but it is one and it has already been backported before [3]. In other words, this commit should be backported up to [3], including [2] and [1] if that's not already there.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71065",
                                "url": "https://ubuntu.com/security/CVE-2025-71065",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid potential deadlock  As Jiaming Zhang and syzbot reported, there is potential deadlock in f2fs as below:  Chain exists of:   &sbi->cp_rwsem --> fs_reclaim --> sb_internal#2   Possible unsafe locking scenario:         CPU0                    CPU1        ----                    ----   rlock(sb_internal#2);                                lock(fs_reclaim);                                lock(sb_internal#2);   rlock(&sbi->cp_rwsem);   *** DEADLOCK ***  3 locks held by kswapd0/73:  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat mm/vmscan.c:7015 [inline]  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0x951/0x2800 mm/vmscan.c:7389  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_trylock_shared fs/super.c:562 [inline]  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_cache_scan+0x91/0x4b0 fs/super.c:197  #2: ffff888011840610 (sb_internal#2){.+.+}-{0:0}, at: f2fs_evict_inode+0x8d9/0x1b60 fs/f2fs/inode.c:890  stack backtrace: CPU: 0 UID: 0 PID: 73 Comm: kswapd0 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 Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_circular_bug+0x2ee/0x310 kernel/locking/lockdep.c:2043  check_noncircular+0x134/0x160 kernel/locking/lockdep.c:2175  check_prev_add kernel/locking/lockdep.c:3165 [inline]  check_prevs_add kernel/locking/lockdep.c:3284 [inline]  validate_chain+0xb9b/0x2140 kernel/locking/lockdep.c:3908  __lock_acquire+0xab9/0xd20 kernel/locking/lockdep.c:5237  lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5868  down_read+0x46/0x2e0 kernel/locking/rwsem.c:1537  f2fs_down_read fs/f2fs/f2fs.h:2278 [inline]  f2fs_lock_op fs/f2fs/f2fs.h:2357 [inline]  f2fs_do_truncate_blocks+0x21c/0x10c0 fs/f2fs/file.c:791  f2fs_truncate_blocks+0x10a/0x300 fs/f2fs/file.c:867  f2fs_truncate+0x489/0x7c0 fs/f2fs/file.c:925  f2fs_evict_inode+0x9f2/0x1b60 fs/f2fs/inode.c:897  evict+0x504/0x9c0 fs/inode.c:810  f2fs_evict_inode+0x1dc/0x1b60 fs/f2fs/inode.c:853  evict+0x504/0x9c0 fs/inode.c:810  dispose_list fs/inode.c:852 [inline]  prune_icache_sb+0x21b/0x2c0 fs/inode.c:1000  super_cache_scan+0x39b/0x4b0 fs/super.c:224  do_shrink_slab+0x6ef/0x1110 mm/shrinker.c:437  shrink_slab_memcg mm/shrinker.c:550 [inline]  shrink_slab+0x7ef/0x10d0 mm/shrinker.c:628  shrink_one+0x28a/0x7c0 mm/vmscan.c:4955  shrink_many mm/vmscan.c:5016 [inline]  lru_gen_shrink_node mm/vmscan.c:5094 [inline]  shrink_node+0x315d/0x3780 mm/vmscan.c:6081  kswapd_shrink_node mm/vmscan.c:6941 [inline]  balance_pgdat mm/vmscan.c:7124 [inline]  kswapd+0x147c/0x2800 mm/vmscan.c:7389  kthread+0x70e/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>  The root cause is deadlock among four locks as below:  kswapd - fs_reclaim\t\t\t\t--- Lock A  - shrink_one   - evict    - f2fs_evict_inode     - sb_start_intwrite\t\t\t--- Lock B  - iput  - evict   - f2fs_evict_inode    - sb_start_intwrite\t\t\t--- Lock B    - f2fs_truncate     - f2fs_truncate_blocks      - f2fs_do_truncate_blocks       - f2fs_lock_op\t\t\t--- Lock C  ioctl - f2fs_ioc_commit_atomic_write  - f2fs_lock_op\t\t\t\t--- Lock C   - __f2fs_commit_atomic_write    - __replace_atomic_write_block     - f2fs_get_dnode_of_data      - __get_node_folio       - f2fs_check_nid_range        - f2fs_handle_error         - f2fs_record_errors          - f2fs_down_write\t\t--- Lock D  open - do_open  - do_truncate   - security_inode_need_killpriv    - f2fs_getxattr     - lookup_all_xattrs      - f2fs_handle_error       - f2fs_record_errors        - f2fs_down_write\t\t--- Lock D         - f2fs_commit_super          - read_mapping_folio           - filemap_alloc_folio_noprof            - prepare_alloc_pages             - fs_reclaim_acquire\t--- Lock A  In order to a ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68345",
                                "url": "https://ubuntu.com/security/CVE-2025-68345",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: hda: cs35l41: Fix NULL pointer dereference in cs35l41_hda_read_acpi()  The acpi_get_first_physical_node() function can return NULL, in which case the get_device() function also returns NULL, but this value is then dereferenced without checking,so add a check to prevent a crash.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11: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-71130",
                                "url": "https://ubuntu.com/security/CVE-2025-71130",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/gem: Zero-initialize the eb.vma array in i915_gem_do_execbuffer  Initialize the eb.vma array with values of 0 when the eb structure is first set up. In particular, this sets the eb->vma[i].vma pointers to NULL, simplifying cleanup and getting rid of the bug described below.  During the execution of eb_lookup_vmas(), the eb->vma array is successively filled up with struct eb_vma objects. This process includes calling eb_add_vma(), which might fail; however, even in the event of failure, eb->vma[i].vma is set for the currently processed buffer.  If eb_add_vma() fails, eb_lookup_vmas() returns with an error, which prompts a call to eb_release_vmas() to clean up the mess. Since eb_lookup_vmas() might fail during processing any (possibly not first) buffer, eb_release_vmas() checks whether a buffer's vma is NULL to know at what point did the lookup function fail.  In eb_lookup_vmas(), eb->vma[i].vma is set to NULL if either the helper function eb_lookup_vma() or eb_validate_vma() fails. eb->vma[i+1].vma is set to NULL in case i915_gem_object_userptr_submit_init() fails; the current one needs to be cleaned up by eb_release_vmas() at this point, so the next one is set. If eb_add_vma() fails, neither the current nor the next vma is set to NULL, which is a source of a NULL deref bug described in the issue linked in the Closes tag.  When entering eb_lookup_vmas(), the vma pointers are set to the slab poison value, instead of NULL. This doesn't matter for the actual lookup, since it gets overwritten anyway, however the eb_release_vmas() function only recognizes NULL as the stopping value, hence the pointers are being set to NULL as they go in case of intermediate failure. This patch changes the approach to filling them all with NULL at the start instead, rather than handling that manually during failure.  (cherry picked from commit 08889b706d4f0b8d2352b7ca29c2d8df4d0787cd)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71138",
                                "url": "https://ubuntu.com/security/CVE-2025-71138",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/msm/dpu: Add missing NULL pointer check for pingpong interface  It is checked almost always in dpu_encoder_phys_wb_setup_ctl(), but in a single place the check is missing. Also use convenient locals instead of phys_enc->* where available.  Patchwork: https://patchwork.freedesktop.org/patch/693860/",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16: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-71129",
                                "url": "https://ubuntu.com/security/CVE-2025-71129",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: BPF: Sign extend kfunc call arguments  The kfunc calls are native calls so they should follow LoongArch calling conventions. Sign extend its arguments properly to avoid kernel panic. This is done by adding a new emit_abi_ext() helper. The emit_abi_ext() helper performs extension in place meaning a value already store in the target register (Note: this is different from the existing sign_extend() helper and thus we can't reuse it).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-71143",
                                "url": "https://ubuntu.com/security/CVE-2025-71143",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  clk: samsung: exynos-clkout: Assign .num before accessing .hws  Commit f316cdff8d67 (\"clk: Annotate struct clk_hw_onecell_data with __counted_by\") annotated the hws member of 'struct clk_hw_onecell_data' with __counted_by, which informs the bounds sanitizer (UBSAN_BOUNDS) about the number of elements in .hws[], so that it can warn when .hws[] is accessed out of bounds. As noted in that change, the __counted_by member must be initialized with the number of elements before the first array access happens, otherwise there will be a warning from each access prior to the initialization because the number of elements is zero. This occurs in exynos_clkout_probe() due to .num being assigned after .hws[] has been accessed:    UBSAN: array-index-out-of-bounds in drivers/clk/samsung/clk-exynos-clkout.c:178:18   index 0 is out of range for type 'clk_hw *[*]'  Move the .num initialization to before the first access of .hws[], clearing up the warning.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-71089",
                                "url": "https://ubuntu.com/security/CVE-2025-71089",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu: disable SVA when CONFIG_X86 is set  Patch series \"Fix stale IOTLB entries for kernel address space\", v7.  This proposes a fix for a security vulnerability related to IOMMU Shared Virtual Addressing (SVA).  In an SVA context, an IOMMU can cache kernel page table entries.  When a kernel page table page is freed and reallocated for another purpose, the IOMMU might still hold stale, incorrect entries.  This can be exploited to cause a use-after-free or write-after-free condition, potentially leading to privilege escalation or data corruption.  This solution introduces a deferred freeing mechanism for kernel page table pages, which provides a safe window to notify the IOMMU to invalidate its caches before the page is reused.   This patch (of 8):  In the IOMMU Shared Virtual Addressing (SVA) context, the IOMMU hardware shares and walks the CPU's page tables.  The x86 architecture maps the kernel's virtual address space into the upper portion of every process's page table.  Consequently, in an SVA context, the IOMMU hardware can walk and cache kernel page table entries.  The Linux kernel currently lacks a notification mechanism for kernel page table changes, specifically when page table pages are freed and reused. The IOMMU driver is only notified of changes to user virtual address mappings.  This can cause the IOMMU's internal caches to retain stale entries for kernel VA.  Use-After-Free (UAF) and Write-After-Free (WAF) conditions arise when kernel page table pages are freed and later reallocated.  The IOMMU could misinterpret the new data as valid page table entries.  The IOMMU might then walk into attacker-controlled memory, leading to arbitrary physical memory DMA access or privilege escalation.  This is also a Write-After-Free issue, as the IOMMU will potentially continue to write Accessed and Dirty bits to the freed memory while attempting to walk the stale page tables.  Currently, SVA contexts are unprivileged and cannot access kernel mappings.  However, the IOMMU will still walk kernel-only page tables all the way down to the leaf entries, where it realizes the mapping is for the kernel and errors out.  This means the IOMMU still caches these intermediate page table entries, making the described vulnerability a real concern.  Disable SVA on x86 architecture until the IOMMU can receive notification to flush the paging cache before freeing the CPU kernel page table pages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16: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-71153",
                                "url": "https://ubuntu.com/security/CVE-2025-71153",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix memory leak in get_file_all_info()  In get_file_all_info(), if vfs_getattr() fails, the function returns immediately without freeing the allocated filename, leading to a memory leak.  Fix this by freeing the filename before returning in this error case.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 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-71095",
                                "url": "https://ubuntu.com/security/CVE-2025-71095",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: stmmac: fix the crash issue for zero copy XDP_TX action  There is a crash issue when running zero copy XDP_TX action, the crash log is shown below.  [  216.122464] Unable to handle kernel paging request at virtual address fffeffff80000000 [  216.187524] Internal error: Oops: 0000000096000144 [#1]  SMP [  216.301694] Call trace: [  216.304130]  dcache_clean_poc+0x20/0x38 (P) [  216.308308]  __dma_sync_single_for_device+0x1bc/0x1e0 [  216.313351]  stmmac_xdp_xmit_xdpf+0x354/0x400 [  216.317701]  __stmmac_xdp_run_prog+0x164/0x368 [  216.322139]  stmmac_napi_poll_rxtx+0xba8/0xf00 [  216.326576]  __napi_poll+0x40/0x218 [  216.408054] Kernel panic - not syncing: Oops: Fatal exception in interrupt  For XDP_TX action, the xdp_buff is converted to xdp_frame by xdp_convert_buff_to_frame(). The memory type of the resulting xdp_frame depends on the memory type of the xdp_buff. For page pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_POOL. For zero copy XSK pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_ORDER0. However, stmmac_xdp_xmit_back() does not check the memory type and always uses the page pool type, this leads to invalid mappings and causes the crash. Therefore, check the xdp_buff memory type in stmmac_xdp_xmit_back() to fix this issue.",
                                "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-71101",
                                "url": "https://ubuntu.com/security/CVE-2025-71101",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix out-of-bounds array access in ACPI package parsing  The hp_populate_*_elements_from_package() functions in the hp-bioscfg driver contain out-of-bounds array access vulnerabilities.  These functions parse ACPI packages into internal data structures using a for loop with index variable 'elem' that iterates through enum_obj/integer_obj/order_obj/password_obj/string_obj arrays.  When processing multi-element fields like PREREQUISITES and ENUM_POSSIBLE_VALUES, these functions read multiple consecutive array elements using expressions like 'enum_obj[elem + reqs]' and 'enum_obj[elem + pos_values]' within nested loops.  The bug is that the bounds check only validated elem, but did not consider the additional offset when accessing elem + reqs or elem + pos_values.  The fix changes the bounds check to validate the actual accessed index.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16: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-71071",
                                "url": "https://ubuntu.com/security/CVE-2025-71071",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu/mediatek: fix use-after-free on probe deferral  The driver is dropping the references taken to the larb devices during probe after successful lookup as well as on errors. This can potentially lead to a use-after-free in case a larb device has not yet been bound to its driver so that the iommu driver probe defers.  Fix this by keeping the references as expected while the iommu driver is bound.",
                                "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-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-71149",
                                "url": "https://ubuntu.com/security/CVE-2025-71149",
                                "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68778",
                                "url": "https://ubuntu.com/security/CVE-2025-68778",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: don't log conflicting inode if it's a dir moved in the current transaction  We can't log a conflicting inode if it's a directory and it was moved from one parent directory to another parent directory in the current transaction, as this can result an attempt to have a directory with two hard links during log replay, one for the old parent directory and another for the new parent directory.  The following scenario triggers that issue:  1) We have directories \"dir1\" and \"dir2\" created in a past transaction.    Directory \"dir1\" has inode A as its parent directory;  2) We move \"dir1\" to some other directory;  3) We create a file with the name \"dir1\" in directory inode A;  4) We fsync the new file. This results in logging the inode of the new file    and the inode for the directory \"dir1\" that was previously moved in the    current transaction. So the log tree has the INODE_REF item for the    new location of \"dir1\";  5) We move the new file to some other directory. This results in updating    the log tree to included the new INODE_REF for the new location of the    file and removes the INODE_REF for the old location. This happens    during the rename when we call btrfs_log_new_name();  6) We fsync the file, and that persists the log tree changes done in the    previous step (btrfs_log_new_name() only updates the log tree in    memory);  7) We have a power failure;  8) Next time the fs is mounted, log replay happens and when processing    the inode for directory \"dir1\" we find a new INODE_REF and add that    link, but we don't remove the old link of the inode since we have    not logged the old parent directory of the directory inode \"dir1\".  As a result after log replay finishes when we trigger writeback of the subvolume tree's extent buffers, the tree check will detect that we have a directory a hard link count of 2 and we get a mount failure. The errors and stack traces reported in dmesg/syslog are like this:     [ 3845.729764] BTRFS info (device dm-0): start tree-log replay    [ 3845.730304] page: refcount:3 mapcount:0 mapping:000000005c8a3027 index:0x1d00 pfn:0x11510c    [ 3845.731236] memcg:ffff9264c02f4e00    [ 3845.731751] aops:btree_aops [btrfs] ino:1    [ 3845.732300] flags: 0x17fffc00000400a(uptodate|private|writeback|node=0|zone=2|lastcpupid=0x1ffff)    [ 3845.733346] raw: 017fffc00000400a 0000000000000000 dead000000000122 ffff9264d978aea8    [ 3845.734265] raw: 0000000000001d00 ffff92650e6d4738 00000003ffffffff ffff9264c02f4e00    [ 3845.735305] page dumped because: eb page dump    [ 3845.735981] BTRFS critical (device dm-0): corrupt leaf: root=5 block=30408704 slot=6 ino=257, invalid nlink: has 2 expect no more than 1 for dir    [ 3845.737786] BTRFS info (device dm-0): leaf 30408704 gen 10 total ptrs 17 free space 14881 owner 5    [ 3845.737789] BTRFS info (device dm-0): refs 4 lock_owner 0 current 30701    [ 3845.737792] \titem 0 key (256 INODE_ITEM 0) itemoff 16123 itemsize 160    [ 3845.737794] \t\tinode generation 3 transid 9 size 16 nbytes 16384    [ 3845.737795] \t\tblock group 0 mode 40755 links 1 uid 0 gid 0    [ 3845.737797] \t\trdev 0 sequence 2 flags 0x0    [ 3845.737798] \t\tatime 1764259517.0    [ 3845.737800] \t\tctime 1764259517.572889464    [ 3845.737801] \t\tmtime 1764259517.572889464    [ 3845.737802] \t\totime 1764259517.0    [ 3845.737803] \titem 1 key (256 INODE_REF 256) itemoff 16111 itemsize 12    [ 3845.737805] \t\tindex 0 name_len 2    [ 3845.737807] \titem 2 key (256 DIR_ITEM 2363071922) itemoff 16077 itemsize 34    [ 3845.737808] \t\tlocation key (257 1 0) type 2    [ 3845.737810] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737811] \titem 3 key (256 DIR_ITEM 2676584006) itemoff 16043 itemsize 34    [ 3845.737813] \t\tlocation key (258 1 0) type 2    [ 3845.737814] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737815] \titem 4 key (256 DIR_INDEX 2) itemoff 16009 itemsize 34    [ 3845.737816] \t\tlocation key (257 1 0) type 2    [ ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71119",
                                "url": "https://ubuntu.com/security/CVE-2025-71119",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/kexec: Enable SMT before waking offline CPUs  If SMT is disabled or a partial SMT state is enabled, when a new kernel image is loaded for kexec, on reboot the following warning is observed:  kexec: Waking offline cpu 228. WARNING: CPU: 0 PID: 9062 at arch/powerpc/kexec/core_64.c:223 kexec_prepare_cpus+0x1b0/0x1bc [snip]  NIP kexec_prepare_cpus+0x1b0/0x1bc  LR  kexec_prepare_cpus+0x1a0/0x1bc  Call Trace:   kexec_prepare_cpus+0x1a0/0x1bc (unreliable)   default_machine_kexec+0x160/0x19c   machine_kexec+0x80/0x88   kernel_kexec+0xd0/0x118   __do_sys_reboot+0x210/0x2c4   system_call_exception+0x124/0x320   system_call_vectored_common+0x15c/0x2ec  This occurs as add_cpu() fails due to cpu_bootable() returning false for CPUs that fail the cpu_smt_thread_allowed() check or non primary threads if SMT is disabled.  Fix the issue by enabling SMT and resetting the number of SMT threads to the number of threads per core, before attempting to wake up all present CPUs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-71148",
                                "url": "https://ubuntu.com/security/CVE-2025-71148",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: restore destructor on submit failure  handshake_req_submit() replaces sk->sk_destruct but never restores it when submission fails before the request is hashed. handshake_sk_destruct() then returns early and the original destructor never runs, leaking the socket. Restore sk_destruct on the error path.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15: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-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-71107",
                                "url": "https://ubuntu.com/security/CVE-2025-71107",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: ensure node page reads complete before f2fs_put_super() finishes  Xfstests generic/335, generic/336 sometimes crash with the following message:  F2FS-fs (dm-0): detect filesystem reference count leak during umount, type: 9, count: 1 ------------[ cut here ]------------ kernel BUG at fs/f2fs/super.c:1939! Oops: invalid opcode: 0000 [#1] SMP NOPTI CPU: 1 UID: 0 PID: 609351 Comm: umount Tainted: G        W          6.17.0-rc5-xfstests-g9dd1835ecda5 #1 PREEMPT(none) Tainted: [W]=WARN Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:f2fs_put_super+0x3b3/0x3c0 Call Trace:  <TASK>  generic_shutdown_super+0x7e/0x190  kill_block_super+0x1a/0x40  kill_f2fs_super+0x9d/0x190  deactivate_locked_super+0x30/0xb0  cleanup_mnt+0xba/0x150  task_work_run+0x5c/0xa0  exit_to_user_mode_loop+0xb7/0xc0  do_syscall_64+0x1ae/0x1c0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  </TASK> ---[ end trace 0000000000000000 ]---  It appears that sometimes it is possible that f2fs_put_super() is called before all node page reads are completed. Adding a call to f2fs_wait_on_all_pages() for F2FS_RD_NODE fixes the problem.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15: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-71126",
                                "url": "https://ubuntu.com/security/CVE-2025-71126",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: avoid deadlock on fallback while reinjecting  Jakub reported an MPTCP deadlock at fallback time:   WARNING: possible recursive locking detected  6.18.0-rc7-virtme #1 Not tainted  --------------------------------------------  mptcp_connect/20858 is trying to acquire lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_try_fallback+0xd8/0x280   but task is already holding lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   other info that might help us debug this:   Possible unsafe locking scenario:          CPU0         ----    lock(&msk->fallback_lock);    lock(&msk->fallback_lock);    *** DEADLOCK ***    May be due to missing lock nesting notation   3 locks held by mptcp_connect/20858:   #0: ff1100001da18290 (sk_lock-AF_INET){+.+.}-{0:0}, at: mptcp_sendmsg+0x114/0x1bc0   #1: ff1100001db40fd0 (k-sk_lock-AF_INET#2){+.+.}-{0:0}, at: __mptcp_retrans+0x2cb/0xaa0   #2: ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   stack backtrace:  CPU: 0 UID: 0 PID: 20858 Comm: mptcp_connect Not tainted 6.18.0-rc7-virtme #1 PREEMPT(full)  Hardware name: Bochs, BIOS Bochs 01/01/2011  Call Trace:   <TASK>   dump_stack_lvl+0x6f/0xa0   print_deadlock_bug.cold+0xc0/0xcd   validate_chain+0x2ff/0x5f0   __lock_acquire+0x34c/0x740   lock_acquire.part.0+0xbc/0x260   _raw_spin_lock_bh+0x38/0x50   __mptcp_try_fallback+0xd8/0x280   mptcp_sendmsg_frag+0x16c2/0x3050   __mptcp_retrans+0x421/0xaa0   mptcp_release_cb+0x5aa/0xa70   release_sock+0xab/0x1d0   mptcp_sendmsg+0xd5b/0x1bc0   sock_write_iter+0x281/0x4d0   new_sync_write+0x3c5/0x6f0   vfs_write+0x65e/0xbb0   ksys_write+0x17e/0x200   do_syscall_64+0xbb/0xfd0   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7fa5627cbc5e  Code: 4d 89 d8 e8 14 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa  RSP: 002b:00007fff1fe14700 EFLAGS: 00000202 ORIG_RAX: 0000000000000001  RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00007fa5627cbc5e  RDX: 0000000000001f9c RSI: 00007fff1fe16984 RDI: 0000000000000005  RBP: 00007fff1fe14710 R08: 0000000000000000 R09: 0000000000000000  R10: 0000000000000000 R11: 0000000000000202 R12: 00007fff1fe16920  R13: 0000000000002000 R14: 0000000000001f9c R15: 0000000000001f9c  The packet scheduler could attempt a reinjection after receiving an MP_FAIL and before the infinite map has been transmitted, causing a deadlock since MPTCP needs to do the reinjection atomically from WRT fallback.  Address the issue explicitly avoiding the reinjection in the critical scenario. Note that this is the only fallback critical section that could potentially send packets and hit the double-lock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-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-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-71151",
                                "url": "https://ubuntu.com/security/CVE-2025-71151",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cifs: Fix memory and information leak in smb3_reconfigure()  In smb3_reconfigure(), if smb3_sync_session_ctx_passwords() fails, the function returns immediately without freeing and erasing the newly allocated new_password and new_password2. This causes both a memory leak and a potential information leak.  Fix this by calling kfree_sensitive() on both password buffers before returning in this error case.",
                                "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-68773",
                                "url": "https://ubuntu.com/security/CVE-2025-68773",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: fsl-cpm: Check length parity before switching to 16 bit mode  Commit fc96ec826bce (\"spi: fsl-cpm: Use 16 bit mode for large transfers with even size\") failed to make sure that the size is really even before switching to 16 bit mode. Until recently the problem went unnoticed because kernfs uses a pre-allocated bounce buffer of size PAGE_SIZE for reading EEPROM.  But commit 8ad6249c51d0 (\"eeprom: at25: convert to spi-mem API\") introduced an additional dynamically allocated bounce buffer whose size is exactly the size of the transfer, leading to a buffer overrun in the fsl-cpm driver when that size is odd.  Add the missing length parity verification and remain in 8 bit mode when the length is not even.",
                                "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-68806",
                                "url": "https://ubuntu.com/security/CVE-2025-68806",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix buffer validation by including null terminator size in EA length  The smb2_set_ea function, which handles Extended Attributes (EA), was performing buffer validation checks that incorrectly omitted the size of the null terminating character (+1 byte) for EA Name. This patch fixes the issue by explicitly adding '+ 1' to EaNameLength where the null terminator is expected to be present in the buffer, ensuring the validation accurately reflects the total required buffer size.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71150",
                                "url": "https://ubuntu.com/security/CVE-2025-71150",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix refcount leak when invalid session is found on session lookup  When a session is found but its state is not SMB2_SESSION_VALID, It indicates that no valid session was found, but it is missing to decrement the reference count acquired by the session lookup, which results in a reference count leak. This patch fixes the issue by explicitly calling ksmbd_user_session_put to release the reference to the session.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68786",
                                "url": "https://ubuntu.com/security/CVE-2025-68786",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: skip lock-range check on equal size to avoid size==0 underflow  When size equals the current i_size (including 0), the code used to call check_lock_range(filp, i_size, size - 1, WRITE), which computes `size - 1` and can underflow for size==0. Skip the equal case.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68789",
                                "url": "https://ubuntu.com/security/CVE-2025-68789",
                                "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                                "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-68775",
                                "url": "https://ubuntu.com/security/CVE-2025-68775",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: duplicate handshake cancellations leak socket  When a handshake request is cancelled it is removed from the handshake_net->hn_requests list, but it is still present in the handshake_rhashtbl until it is destroyed.  If a second cancellation request arrives for the same handshake request, then remove_pending() will return false... and assuming HANDSHAKE_F_REQ_COMPLETED isn't set in req->hr_flags, we'll continue processing through the out_true label, where we put another reference on the sock and a refcount underflow occurs.  This can happen for example if a handshake times out - particularly if the SUNRPC client sends the AUTH_TLS probe to the server but doesn't follow it up with the ClientHello due to a problem with tlshd.  When the timeout is hit on the server, the server will send a FIN, which triggers a cancellation request via xs_reset_transport().  When the timeout is hit on the client, another cancellation request happens via xs_tls_handshake_sync().  Add a test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED) in the pending cancel path so duplicate cancels can be detected.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15: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-71122",
                                "url": "https://ubuntu.com/security/CVE-2025-71122",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommufd/selftest: Check for overflow in IOMMU_TEST_OP_ADD_RESERVED  syzkaller found it could overflow math in the test infrastructure and cause a WARN_ON by corrupting the reserved interval tree. This only effects test kernels with CONFIG_IOMMUFD_TEST.  Validate the user input length in the test ioctl.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-68809",
                                "url": "https://ubuntu.com/security/CVE-2025-68809",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: vfs: fix race on m_flags in vfs_cache  ksmbd maintains delete-on-close and pending-delete state in ksmbd_inode->m_flags. In vfs_cache.c this field is accessed under inconsistent locking: some paths read and modify m_flags under ci->m_lock while others do so without taking the lock at all.  Examples:   - ksmbd_query_inode_status() and __ksmbd_inode_close() use    ci->m_lock when checking or updating m_flags.  - ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete() and ksmbd_fd_set_delete_on_close()    used to read and modify m_flags without ci->m_lock.  This creates a potential data race on m_flags when multiple threads open, close and delete the same file concurrently. In the worst case delete-on-close and pending-delete bits can be lost or observed in an inconsistent state, leading to confusing delete semantics (files that stay on disk after delete-on-close, or files that disappear while still in use).  Fix it by:   - Making ksmbd_query_inode_status() look at m_flags under ci->m_lock    after dropping inode_hash_lock.  - Adding ci->m_lock protection to all helpers that read or modify    m_flags (ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete(), ksmbd_fd_set_delete_on_close()).  - Keeping the existing ci->m_lock protection in __ksmbd_inode_close(),    and moving the actual unlink/xattr removal outside the lock.  This unifies the locking around m_flags and removes the data race while preserving the existing delete-on-close behaviour.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68817",
                                "url": "https://ubuntu.com/security/CVE-2025-68817",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency  Under high concurrency, A tree-connection object (tcon) is freed on a disconnect path while another path still holds a reference and later executes *_put()/write on it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16: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-71067",
                                "url": "https://ubuntu.com/security/CVE-2025-71067",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs: set dummy blocksize to read boot_block when mounting  When mounting, sb->s_blocksize is used to read the boot_block without being defined or validated. Set a dummy blocksize before attempting to read the boot_block.  The issue can be triggered with the following syz reproducer:    mkdirat(0xffffffffffffff9c, &(0x7f0000000080)='./file1\\x00', 0x0)   r4 = openat$nullb(0xffffffffffffff9c, &(0x7f0000000040), 0x121403, 0x0)   ioctl$FS_IOC_SETFLAGS(r4, 0x40081271, &(0x7f0000000980)=0x4000)   mount(&(0x7f0000000140)=@nullb, &(0x7f0000000040)='./cgroup\\x00',         &(0x7f0000000000)='ntfs3\\x00', 0x2208004, 0x0)   syz_clone(0x88200200, 0x0, 0x0, 0x0, 0x0, 0x0)  Here, the ioctl sets the bdev block size to 16384. During mount, get_tree_bdev_flags() calls sb_set_blocksize(sb, block_size(bdev)), but since block_size(bdev) > PAGE_SIZE, sb_set_blocksize() leaves sb->s_blocksize at zero.  Later, ntfs_init_from_boot() attempts to read the boot_block while sb->s_blocksize is still zero, which triggers the bug.  [almaz.alexandrovich@paragon-software.com: changed comment style, added return value handling]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16: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-68798",
                                "url": "https://ubuntu.com/security/CVE-2025-68798",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf/x86/amd: Check event before enable to avoid GPF  On AMD machines cpuc->events[idx] can become NULL in a subtle race condition with NMI->throttle->x86_pmu_stop().  Check event for NULL in amd_pmu_enable_all() before enable to avoid a GPF. This appears to be an AMD only issue.  Syzkaller reported a GPF in amd_pmu_enable_all.  INFO: NMI handler (perf_event_nmi_handler) took too long to run: 13.143     msecs Oops: general protection fault, probably for non-canonical address     0xdffffc0000000034: 0000  PREEMPT SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x00000000000001a0-0x00000000000001a7] CPU: 0 UID: 0 PID: 328415 Comm: repro_36674776 Not tainted 6.12.0-rc1-syzk RIP: 0010:x86_pmu_enable_event (arch/x86/events/perf_event.h:1195     arch/x86/events/core.c:1430) RSP: 0018:ffff888118009d60 EFLAGS: 00010012 RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000000034 RSI: 0000000000000000 RDI: 00000000000001a0 RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000002 R13: ffff88811802a440 R14: ffff88811802a240 R15: ffff8881132d8601 FS:  00007f097dfaa700(0000) GS:ffff888118000000(0000) GS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000200001c0 CR3: 0000000103d56000 CR4: 00000000000006f0 Call Trace:  <IRQ> amd_pmu_enable_all (arch/x86/events/amd/core.c:760 (discriminator 2)) x86_pmu_enable (arch/x86/events/core.c:1360) event_sched_out (kernel/events/core.c:1191 kernel/events/core.c:1186     kernel/events/core.c:2346) __perf_remove_from_context (kernel/events/core.c:2435) event_function (kernel/events/core.c:259) remote_function (kernel/events/core.c:92 (discriminator 1)     kernel/events/core.c:72 (discriminator 1)) __flush_smp_call_function_queue (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207 ./include/trace/events/csd.h:64     kernel/smp.c:135 kernel/smp.c:540) __sysvec_call_function_single (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207     ./arch/x86/include/asm/trace/irq_vectors.h:99 arch/x86/kernel/smp.c:272) sysvec_call_function_single (arch/x86/kernel/smp.c:266 (discriminator 47)     arch/x86/kernel/smp.c:266 (discriminator 47))  </IRQ>",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68794",
                                "url": "https://ubuntu.com/security/CVE-2025-68794",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iomap: adjust read range correctly for non-block-aligned positions  iomap_adjust_read_range() assumes that the position and length passed in are block-aligned. This is not always the case however, as shown in the syzbot generated case for erofs. This causes too many bytes to be skipped for uptodate blocks, which results in returning the incorrect position and length to read in. If all the blocks are uptodate, this underflows length and returns a position beyond the folio.  Fix the calculation to also take into account the block offset when calculating how many bytes can be skipped for uptodate blocks.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16: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-68766",
                                "url": "https://ubuntu.com/security/CVE-2025-68766",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()  If irq_domain_translate_twocell() sets \"hwirq\" to >= MCHP_EIC_NIRQ (2) then it results in an out of bounds access.  The code checks for invalid values, but doesn't set the error code.  Return -EINVAL in that case, instead of returning success.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68756",
                                "url": "https://ubuntu.com/security/CVE-2025-68756",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  block: Use RCU in blk_mq_[un]quiesce_tagset() instead of set->tag_list_lock  blk_mq_{add,del}_queue_tag_set() functions add and remove queues from tagset, the functions make sure that tagset and queues are marked as shared when two or more queues are attached to the same tagset. Initially a tagset starts as unshared and when the number of added queues reaches two, blk_mq_add_queue_tag_set() marks it as shared along with all the queues attached to it. When the number of attached queues drops to 1 blk_mq_del_queue_tag_set() need to mark both the tagset and the remaining queues as unshared.  Both functions need to freeze current queues in tagset before setting on unsetting BLK_MQ_F_TAG_QUEUE_SHARED flag. While doing so, both functions hold set->tag_list_lock mutex, which makes sense as we do not want queues to be added or deleted in the process. This used to work fine until commit 98d81f0df70c (\"nvme: use blk_mq_[un]quiesce_tagset\") made the nvme driver quiesce tagset instead of quiscing individual queues. blk_mq_quiesce_tagset() does the job and quiesce the queues in set->tag_list while holding set->tag_list_lock also.  This results in deadlock between two threads with these stacktraces:    __schedule+0x47c/0xbb0   ? timerqueue_add+0x66/0xb0   schedule+0x1c/0xa0   schedule_preempt_disabled+0xa/0x10   __mutex_lock.constprop.0+0x271/0x600   blk_mq_quiesce_tagset+0x25/0xc0   nvme_dev_disable+0x9c/0x250   nvme_timeout+0x1fc/0x520   blk_mq_handle_expired+0x5c/0x90   bt_iter+0x7e/0x90   blk_mq_queue_tag_busy_iter+0x27e/0x550   ? __blk_mq_complete_request_remote+0x10/0x10   ? __blk_mq_complete_request_remote+0x10/0x10   ? __call_rcu_common.constprop.0+0x1c0/0x210   blk_mq_timeout_work+0x12d/0x170   process_one_work+0x12e/0x2d0   worker_thread+0x288/0x3a0   ? rescuer_thread+0x480/0x480   kthread+0xb8/0xe0   ? kthread_park+0x80/0x80   ret_from_fork+0x2d/0x50   ? kthread_park+0x80/0x80   ret_from_fork_asm+0x11/0x20    __schedule+0x47c/0xbb0   ? xas_find+0x161/0x1a0   schedule+0x1c/0xa0   blk_mq_freeze_queue_wait+0x3d/0x70   ? destroy_sched_domains_rcu+0x30/0x30   blk_mq_update_tag_set_shared+0x44/0x80   blk_mq_exit_queue+0x141/0x150   del_gendisk+0x25a/0x2d0   nvme_ns_remove+0xc9/0x170   nvme_remove_namespaces+0xc7/0x100   nvme_remove+0x62/0x150   pci_device_remove+0x23/0x60   device_release_driver_internal+0x159/0x200   unbind_store+0x99/0xa0   kernfs_fop_write_iter+0x112/0x1e0   vfs_write+0x2b1/0x3d0   ksys_write+0x4e/0xb0   do_syscall_64+0x5b/0x160   entry_SYSCALL_64_after_hwframe+0x4b/0x53  The top stacktrace is showing nvme_timeout() called to handle nvme command timeout. timeout handler is trying to disable the controller and as a first step, it needs to blk_mq_quiesce_tagset() to tell blk-mq not to call queue callback handlers. The thread is stuck waiting for set->tag_list_lock as it tries to walk the queues in set->tag_list.  The lock is held by the second thread in the bottom stack which is waiting for one of queues to be frozen. The queue usage counter will drop to zero after nvme_timeout() finishes, and this will not happen because the thread will wait for this mutex forever.  Given that [un]quiescing queue is an operation that does not need to sleep, update blk_mq_[un]quiesce_tagset() to use RCU instead of taking set->tag_list_lock, update blk_mq_{add,del}_queue_tag_set() to use RCU safe list operations. Also, delete INIT_LIST_HEAD(&q->tag_set_list) in blk_mq_del_queue_tag_set() because we can not re-initialize it while the list is being traversed under RCU. The deleted queue will not be added/deleted to/from a tagset and it will be freed in blk_free_queue() after the end of RCU grace period.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68753",
                                "url": "https://ubuntu.com/security/CVE-2025-68753",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: add bounds check in put_user loop for DSP events  In the DSP event handling code, a put_user() loop copies event data. When the user buffer size is not aligned to 4 bytes, it could overwrite beyond the buffer boundary.  Fix by adding a bounds check before put_user().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68347",
                                "url": "https://ubuntu.com/security/CVE-2025-68347",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: fix buffer overflow in hwdep read for DSP events  The DSP event handling code in hwdep_read() could write more bytes to the user buffer than requested, when a user provides a buffer smaller than the event header size (8 bytes).  Fix by using min_t() to clamp the copy size, This ensures we never copy more than the user requested.",
                                "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-68763",
                                "url": "https://ubuntu.com/security/CVE-2025-68763",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: starfive - Correctly handle return of sg_nents_for_len  The return value of sg_nents_for_len was assigned to an unsigned long in starfive_hash_digest, causing negative error codes to be converted to large positive integers.  Add error checking for sg_nents_for_len and return immediately on failure to prevent potential buffer overflows.",
                                "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-68741",
                                "url": "https://ubuntu.com/security/CVE-2025-68741",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Fix improper freeing of purex item  In qla2xxx_process_purls_iocb(), an item is allocated via qla27xx_copy_multiple_pkt(), which internally calls qla24xx_alloc_purex_item().  The qla24xx_alloc_purex_item() function may return a pre-allocated item from a per-adapter pool for small allocations, instead of dynamically allocating memory with kzalloc().  An error handling path in qla2xxx_process_purls_iocb() incorrectly uses kfree() to release the item. If the item was from the pre-allocated pool, calling kfree() on it is a bug that can lead to memory corruption.  Fix this by using the correct deallocation function, qla24xx_free_purex_item(), which properly handles both dynamically allocated and pre-allocated items.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68742",
                                "url": "https://ubuntu.com/security/CVE-2025-68742",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix invalid prog->stats access when update_effective_progs fails  Syzkaller triggers an invalid memory access issue following fault injection in update_effective_progs. The issue can be described as follows:  __cgroup_bpf_detach   update_effective_progs     compute_effective_progs       bpf_prog_array_alloc <-- fault inject   purge_effective_progs     /* change to dummy_bpf_prog */     array->items[index] = &dummy_bpf_prog.prog  ---softirq start--- __do_softirq   ...     __cgroup_bpf_run_filter_skb       __bpf_prog_run_save_cb         bpf_prog_run           stats = this_cpu_ptr(prog->stats)           /* invalid memory access */           flags = u64_stats_update_begin_irqsave(&stats->syncp) ---softirq end---    static_branch_dec(&cgroup_bpf_enabled_key[atype])  The reason is that fault injection caused update_effective_progs to fail and then changed the original prog into dummy_bpf_prog.prog in purge_effective_progs. Then a softirq came, and accessing the members of dummy_bpf_prog.prog in the softirq triggers invalid mem access.  To fix it, skip updating stats when stats is NULL.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16: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-68363",
                                "url": "https://ubuntu.com/security/CVE-2025-68363",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Check skb->transport_header is set in bpf_skb_check_mtu  The bpf_skb_check_mtu helper needs to use skb->transport_header when the BPF_MTU_CHK_SEGS flag is used:  \tbpf_skb_check_mtu(skb, ifindex, &mtu_len, 0, BPF_MTU_CHK_SEGS)  The transport_header is not always set. There is a WARN_ON_ONCE report when CONFIG_DEBUG_NET is enabled + skb->gso_size is set + bpf_prog_test_run is used:  WARNING: CPU: 1 PID: 2216 at ./include/linux/skbuff.h:3071  skb_gso_validate_network_len  bpf_skb_check_mtu  bpf_prog_3920e25740a41171_tc_chk_segs_flag # A test in the next patch  bpf_test_run  bpf_prog_test_run_skb  For a normal ingress skb (not test_run), skb_reset_transport_header is performed but there is plan to avoid setting it as described in commit 2170a1f09148 (\"net: no longer reset transport_header in __netif_receive_skb_core()\").  This patch fixes the bpf helper by checking skb_transport_header_was_set(). The check is done just before skb->transport_header is used, to avoid breaking the existing bpf prog. The WARN_ON_ONCE is limited to bpf_prog_test_run, so targeting bpf-next.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68744",
                                "url": "https://ubuntu.com/security/CVE-2025-68744",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Free special fields when update [lru_,]percpu_hash maps  As [lru_,]percpu_hash maps support BPF_KPTR_{REF,PERCPU}, missing calls to 'bpf_obj_free_fields()' in 'pcpu_copy_value()' could cause the memory referenced by BPF_KPTR_{REF,PERCPU} fields to be held until the map gets freed.  Fix this by calling 'bpf_obj_free_fields()' after 'copy_map_value[,_long]()' in 'pcpu_copy_value()'.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16: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-68755",
                                "url": "https://ubuntu.com/security/CVE-2025-68755",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: most: remove broken i2c driver  The MOST I2C driver has been completely broken for five years without anyone noticing so remove the driver from staging.  Specifically, commit 723de0f9171e (\"staging: most: remove device from interface structure\") started requiring drivers to set the interface device pointer before registration, but the I2C driver was never updated which results in a NULL pointer dereference if anyone ever tries to probe it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68371",
                                "url": "https://ubuntu.com/security/CVE-2025-68371",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: smartpqi: Fix device resources accessed after device removal  Correct possible race conditions during device removal.  Previously, a scheduled work item to reset a LUN could still execute after the device was removed, leading to use-after-free and other resource access issues.  This race condition occurs because the abort handler may schedule a LUN reset concurrently with device removal via sdev_destroy(), leading to use-after-free and improper access to freed resources.    - Check in the device reset handler if the device is still present in     the controller's SCSI device list before running; if not, the reset     is skipped.    - Cancel any pending TMF work that has not started in sdev_destroy().    - Ensure device freeing in sdev_destroy() is done while holding the     LUN reset mutex to avoid races with ongoing resets.",
                                "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-68379",
                                "url": "https://ubuntu.com/security/CVE-2025-68379",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Fix null deref on srq->rq.queue after resize failure  A NULL pointer dereference can occur in rxe_srq_chk_attr() when ibv_modify_srq() is invoked twice in succession under certain error conditions. The first call may fail in rxe_queue_resize(), which leads rxe_srq_from_attr() to set srq->rq.queue = NULL. The second call then triggers a crash (null deref) when accessing srq->rq.queue->buf->index_mask.  Call Trace: <TASK> rxe_modify_srq+0x170/0x480 [rdma_rxe] ? __pfx_rxe_modify_srq+0x10/0x10 [rdma_rxe] ? uverbs_try_lock_object+0x4f/0xa0 [ib_uverbs] ? rdma_lookup_get_uobject+0x1f0/0x380 [ib_uverbs] ib_uverbs_modify_srq+0x204/0x290 [ib_uverbs] ? __pfx_ib_uverbs_modify_srq+0x10/0x10 [ib_uverbs] ? tryinc_node_nr_active+0xe6/0x150 ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x2c0/0x470 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_run_method+0x55a/0x6e0 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ib_uverbs_cmd_verbs+0x54d/0x800 [ib_uverbs] ? __pfx_ib_uverbs_cmd_verbs+0x10/0x10 [ib_uverbs] ? __pfx___raw_spin_lock_irqsave+0x10/0x10 ? __pfx_do_vfs_ioctl+0x10/0x10 ? ioctl_has_perm.constprop.0.isra.0+0x2c7/0x4c0 ? __pfx_ioctl_has_perm.constprop.0.isra.0+0x10/0x10 ib_uverbs_ioctl+0x13e/0x220 [ib_uverbs] ? __pfx_ib_uverbs_ioctl+0x10/0x10 [ib_uverbs] __x64_sys_ioctl+0x138/0x1c0 do_syscall_64+0x82/0x250 ? fdget_pos+0x58/0x4c0 ? ksys_write+0xf3/0x1c0 ? __pfx_ksys_write+0x10/0x10 ? do_syscall_64+0xc8/0x250 ? __pfx_vm_mmap_pgoff+0x10/0x10 ? fget+0x173/0x230 ? fput+0x2a/0x80 ? ksys_mmap_pgoff+0x224/0x4c0 ? do_syscall_64+0xc8/0x250 ? do_user_addr_fault+0x37b/0xfe0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 entry_SYSCALL_64_after_hwframe+0x76/0x7e",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68380",
                                "url": "https://ubuntu.com/security/CVE-2025-68380",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix peer HE MCS assignment  In ath11k_wmi_send_peer_assoc_cmd(), peer's transmit MCS is sent to firmware as receive MCS while peer's receive MCS sent as transmit MCS, which goes against firmwire's definition.  While connecting to a misbehaved AP that advertises 0xffff (meaning not supported) for 160 MHz transmit MCS map, firmware crashes due to 0xffff is assigned to he_mcs->rx_mcs_set field.  \tExt Tag: HE Capabilities \t    [...] \t    Supported HE-MCS and NSS Set \t\t[...] \t        Rx and Tx MCS Maps 160 MHz \t\t    [...] \t            Tx HE-MCS Map 160 MHz: 0xffff  Swap the assignment to fix this issue.  As the HE rate control mask is meant to limit our own transmit MCS, it needs to go via he_mcs->rx_mcs_set field. With the aforementioned swapping done, change is needed as well to apply it to the peer's receive MCS.  Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41 Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11: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-68256",
                                "url": "https://ubuntu.com/security/CVE-2025-68256",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in rtw_get_ie() parser  The Information Element (IE) parser rtw_get_ie() trusted the length byte of each IE without validating that the IE body (len bytes after the 2-byte header) fits inside the remaining frame buffer. A malformed frame can advertise an IE length larger than the available data, causing the parser to increment its pointer beyond the buffer end. This results in out-of-bounds reads or, depending on the pattern, an infinite loop.  Fix by validating that (offset + 2 + len) does not exceed the limit before accepting the IE or advancing to the next element.  This prevents OOB reads and ensures the parser terminates safely on malformed frames.",
                                "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-68265",
                                "url": "https://ubuntu.com/security/CVE-2025-68265",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: fix admin request_queue lifetime  The namespaces can access the controller's admin request_queue, and stale references on the namespaces may exist after tearing down the controller. Ensure the admin request_queue is active by moving the controller's 'put' to after all controller references have been released to ensure no one is can access the request_queue. This fixes a reported use-after-free bug:    BUG: KASAN: slab-use-after-free in blk_queue_enter+0x41c/0x4a0   Read of size 8 at addr ffff88c0a53819f8 by task nvme/3287   CPU: 67 UID: 0 PID: 3287 Comm: nvme Tainted: G            E      6.13.2-ga1582f1a031e #15   Tainted: [E]=UNSIGNED_MODULE   Hardware name: Jabil /EGS 2S MB1, BIOS 1.00 06/18/2025   Call Trace:    <TASK>    dump_stack_lvl+0x4f/0x60    print_report+0xc4/0x620    ? _raw_spin_lock_irqsave+0x70/0xb0    ? _raw_read_unlock_irqrestore+0x30/0x30    ? blk_queue_enter+0x41c/0x4a0    kasan_report+0xab/0xe0    ? blk_queue_enter+0x41c/0x4a0    blk_queue_enter+0x41c/0x4a0    ? __irq_work_queue_local+0x75/0x1d0    ? blk_queue_start_drain+0x70/0x70    ? irq_work_queue+0x18/0x20    ? vprintk_emit.part.0+0x1cc/0x350    ? wake_up_klogd_work_func+0x60/0x60    blk_mq_alloc_request+0x2b7/0x6b0    ? __blk_mq_alloc_requests+0x1060/0x1060    ? __switch_to+0x5b7/0x1060    nvme_submit_user_cmd+0xa9/0x330    nvme_user_cmd.isra.0+0x240/0x3f0    ? force_sigsegv+0xe0/0xe0    ? nvme_user_cmd64+0x400/0x400    ? vfs_fileattr_set+0x9b0/0x9b0    ? cgroup_update_frozen_flag+0x24/0x1c0    ? cgroup_leave_frozen+0x204/0x330    ? nvme_ioctl+0x7c/0x2c0    blkdev_ioctl+0x1a8/0x4d0    ? blkdev_common_ioctl+0x1930/0x1930    ? fdget+0x54/0x380    __x64_sys_ioctl+0x129/0x190    do_syscall_64+0x5b/0x160    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f765f703b0b   Code: ff ff ff 85 c0 79 9b 49 c7 c4 ff ff ff ff 5b 5d 4c 89 e0 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d dd 52 0f 00 f7 d8 64 89 01 48   RSP: 002b:00007ffe2cefe808 EFLAGS: 00000202 ORIG_RAX: 0000000000000010   RAX: ffffffffffffffda RBX: 00007ffe2cefe860 RCX: 00007f765f703b0b   RDX: 00007ffe2cefe860 RSI: 00000000c0484e41 RDI: 0000000000000003   RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000000   R10: 00007f765f611d50 R11: 0000000000000202 R12: 0000000000000003   R13: 00000000c0484e41 R14: 0000000000000001 R15: 00007ffe2cefea60    </TASK>",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15: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-68259",
                                "url": "https://ubuntu.com/security/CVE-2025-68259",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: SVM: Don't skip unrelated instruction if INT3/INTO is replaced  When re-injecting a soft interrupt from an INT3, INT0, or (select) INTn instruction, discard the exception and retry the instruction if the code stream is changed (e.g. by a different vCPU) between when the CPU executes the instruction and when KVM decodes the instruction to get the next RIP.  As effectively predicted by commit 6ef88d6e36c2 (\"KVM: SVM: Re-inject INT3/INTO instead of retrying the instruction\"), failure to verify that the correct INTn instruction was decoded can effectively clobber guest state due to decoding the wrong instruction and thus specifying the wrong next RIP.  The bug most often manifests as \"Oops: int3\" panics on static branch checks in Linux guests.  Enabling or disabling a static branch in Linux uses the kernel's \"text poke\" code patching mechanism.  To modify code while other CPUs may be executing that code, Linux (temporarily) replaces the first byte of the original instruction with an int3 (opcode 0xcc), then patches in the new code stream except for the first byte, and finally replaces the int3 with the first byte of the new code stream.  If a CPU hits the int3, i.e. executes the code while it's being modified, then the guest kernel must look up the RIP to determine how to handle the #BP, e.g. by emulating the new instruction.  If the RIP is incorrect, then this lookup fails and the guest kernel panics.  The bug reproduces almost instantly by hacking the guest kernel to repeatedly check a static branch[1] while running a drgn script[2] on the host to constantly swap out the memory containing the guest's TSS.  [1]: https://gist.github.com/osandov/44d17c51c28c0ac998ea0334edf90b5a [2]: https://gist.github.com/osandov/10e45e45afa29b11e0c7209247afc00b",
                                "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-68263",
                                "url": "https://ubuntu.com/security/CVE-2025-68263",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: ipc: fix use-after-free in ipc_msg_send_request  ipc_msg_send_request() waits for a generic netlink reply using an ipc_msg_table_entry on the stack. The generic netlink handler (handle_generic_event()/handle_response()) fills entry->response under ipc_msg_table_lock, but ipc_msg_send_request() used to validate and free entry->response without holding the same lock.  Under high concurrency this allows a race where handle_response() is copying data into entry->response while ipc_msg_send_request() has just freed it, leading to a slab-use-after-free reported by KASAN in handle_generic_event():    BUG: KASAN: slab-use-after-free in handle_generic_event+0x3c4/0x5f0 [ksmbd]   Write of size 12 at addr ffff888198ee6e20 by task pool/109349   ...   Freed by task:     kvfree     ipc_msg_send_request [ksmbd]     ksmbd_rpc_open -> ksmbd_session_rpc_open [ksmbd]  Fix by: - Taking ipc_msg_table_lock in ipc_msg_send_request() while validating   entry->response, freeing it when invalid, and removing the entry from   ipc_msg_table. - Returning the final entry->response pointer to the caller only after   the hash entry is removed under the lock. - Returning NULL in the error path, preserving the original API   semantics.  This makes all accesses to entry->response consistent with handle_response(), which already updates and fills the response buffer under ipc_msg_table_lock, and closes the race that allowed the UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15: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-2026-23111",
                                "url": "https://ubuntu.com/security/CVE-2026-23111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23209",
                                "url": "https://ubuntu.com/security/CVE-2026-23209",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23074",
                                "url": "https://ubuntu.com/security/CVE-2026-23074",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23060",
                                "url": "https://ubuntu.com/security/CVE-2026-23060",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-110.110~22.04.1 -proposed tracker (LP: #2143477)",
                            "",
                            "  [ Ubuntu: 6.8.0-110.110 ]",
                            "",
                            "  * noble/linux: 6.8.0-110.110 -proposed tracker (LP: #2144887)",
                            "  * ITS mitigation is not enabled on affected CPUs (LP: #2144730)",
                            "    - x86/bugs: Rename CONFIG_RETPOLINE => CONFIG_MITIGATION_RETPOLINE",
                            "    - x86/bugs: Rename CONFIG_RETHUNK => CONFIG_MITIGATION_RETHUNK",
                            "    - [Config] rename config options RETHUNK and RETPOLINE",
                            "",
                            "  [ Ubuntu: 6.8.0-108.108 ]",
                            "",
                            "  * noble/linux: 6.8.0-108.108 -proposed tracker (LP: #2143478)",
                            "  * linux-riscv-6.8 is FTBFS because of missing patches (LP: #2142235)",
                            "    - riscv, bpf: Unify 32-bit sign-extension to emit_sextw",
                            "    - riscv, bpf: Unify 32-bit zero-extension to emit_zextw",
                            "    - riscv, bpf: Simplify sext and zext logics in branch instructions",
                            "    - riscv, bpf: Add necessary Zbb instructions",
                            "    - riscv, bpf: Optimize sign-extention mov insns with Zbb support",
                            "    - riscv, bpf: Optimize bswap insns with Zbb support",
                            "  * ADT test for linux package failed with \"fatal: unable to connect to",
                            "    git.launchpad.net\" (LP: #2143033)",
                            "    - [Packaging] d/t/ubuntu-regression-suite: use https to clone",
                            "  * Coresight fails to build on 6.8.0-102 due to missing function and arg",
                            "    definitions (LP: #2142337)",
                            "    - SAUCE: Revert \"coresight: catu: Support atclk\"",
                            "    - SAUCE: Revert \"coresight: catu: Move ACPI support from AMBA driver to",
                            "      platform driver\"",
                            "    - SAUCE: Revert \"coresight: tmc: Support atclk\"",
                            "    - SAUCE: Revert \"coresight: tmc: Move ACPI support from AMBA driver to",
                            "      platform driver\"",
                            "    - SAUCE: Revert \"Coresight: Set correct cs_mode for TPDM to fix disable",
                            "      issue\"",
                            "    - SAUCE: Revert \"Coresight: Set correct cs_mode for dummy source to fix",
                            "      disable issue\"",
                            "  * efi: Fix swapped arguments to bsearch() in efi_status_to_*() SAUCE patch",
                            "    (LP: #2141276)",
                            "    - SAUCE efi: Fix swapped arguments to bsearch() in efi_status_to_*()",
                            "  * Fix conntrack use after free when ovs hardware offload is enabled",
                            "    (LP: #2139322)",
                            "    - netfilter: conntrack: remove skb argument from nf_ct_refresh",
                            "    - netfilter: conntrack: rework offload nf_conn timeout extension logic",
                            "    - netfilter: conntrack: fix erronous removal of offload bit",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789)",
                            "    - xhci: fix stale flag preventig URBs after link state error is cleared",
                            "    - Revert \"xfrm: destroy xfrm_state synchronously on net exit path\"",
                            "    - xfrm: flush all states in xfrm_state_fini",
                            "    - 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",
                            "    - ftrace: bpf: Fix IPMODIFY + DIRECT in modify_ftrace_direct()",
                            "    - spi: xilinx: increase number of retries before declaring stall",
                            "    - spi: imx: keep dma request disabled before dma transfer setup",
                            "    - drm/vmwgfx: Use kref in vmw_bo_dirty",
                            "    - Bluetooth: btrtl: Avoid loading the config file on security chips",
                            "    - smb: fix invalid username check in smb3_fs_context_parse_param()",
                            "    - ALSA: usb-audio: Add native DSD quirks for PureAudio DAC series",
                            "    - HID: hid-input: Extend Elan ignore battery quirk to USB",
                            "    - pinctrl: qcom: msm: Fix deadlock in pinmux configuration",
                            "    - platform/x86: acer-wmi: Ignore backlight event",
                            "    - HID: apple: Add SONiX AK870 PRO to non_apple_keyboards quirk list",
                            "    - platform/x86: huawei-wmi: add keys for HONOR models",
                            "    - platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list",
                            "    - platform/x86/amd/pmc: Add spurious_8042 to Xbox Ally",
                            "    - HID: elecom: Add support for ELECOM M-XT3URBK (018F)",
                            "    - LoongArch: Mask all interrupts during kexec/kdump",
                            "    - samples: work around glibc redefining some of our defines wrong",
                            "    - wifi: rtw88: Add USB ID 2001:3329 for D-Link AC13U rev. A1",
                            "    - drm/panel: visionox-rm69299: Don't clear all mode flags",
                            "    - USB: Fix descriptor count when handling invalid MBIM extended descriptor",
                            "    - clk: renesas: cpg-mssr: Add missing 1ms delay into reset toggle callback",
                            "    - clk: renesas: Use str_on_off() helper",
                            "    - clk: renesas: Pass sub struct of cpg_mssr_priv to cpg_clk_register",
                            "    - clk: renesas: cpg-mssr: Read back reset registers to assure values",
                            "      latched",
                            "    - HID: logitech-hidpp: Do not assume FAP in hidpp_send_message_sync()",
                            "    - objtool: Fix standalone --hacks=jump_label",
                            "    - objtool: Fix weak symbol detection",
                            "    - sched/fair: Forfeit vruntime on yield",
                            "    - irqchip/irq-bcm7038-l1: Fix section mismatch",
                            "    - irqchip/irq-bcm7120-l2: Fix section mismatch",
                            "    - irqchip/irq-brcmstb-l2: Fix section mismatch",
                            "    - irqchip/imx-mu-msi: Fix section mismatch",
                            "    - irqchip/qcom-irq-combiner: Fix section mismatch",
                            "    - crypto: authenc - Correctly pass EINPROGRESS back up to the caller",
                            "    - 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: Fix measurement unit for odr struct member",
                            "    - arm64: dts: freescale: imx8mp-venice-gw7905-2x: remove duplicate usdhc1",
                            "      props",
                            "    - arm64: dts: imx8mm-venice-gw72xx: remove unused sdhc1 pinctrl",
                            "    - arm64: dts: imx8mp-venice-gw702x: remove off-board uart",
                            "    - arm64: dts: imx8mp-venice-gw702x: remove off-board sdhc1",
                            "    - PCI: rcar-gen2: Drop ARM dependency from PCI_RCAR_GEN2",
                            "    - uio: uio_fsl_elbc_gpcm:: Add null pointer check to",
                            "      uio_fsl_elbc_gpcm_probe",
                            "    - clk: qcom: camcc-sm6350: Specify Titan GDSC power domain as a parent to",
                            "      other",
                            "    - clk: qcom: camcc-sm6350: Fix PLL config of PLL2",
                            "    - 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",
                            "    - arm64: dts: ti: k3-am62p: Fix memory ranges for GPU",
                            "    - firmware: imx: scu-irq: fix OF node leak in",
                            "    - arm64: dts: qcom: sdm845-oneplus: Correct gpio used for slider",
                            "    - phy: mscc: Fix PTP for VSC8574 and VSC8572",
                            "    - sctp: Defer SCTP_DBG_OBJCNT_DEC() to sctp_destroy_sock().",
                            "    - ARM: dts: renesas: gose: Remove superfluous port property",
                            "    - ARM: dts: renesas: r9a06g032-rzn1d400-db: Drop invalid #cells properties",
                            "    - Revert \"mtd: rawnand: marvell: fix layouts\"",
                            "    - mtd: nand: relax ECC parameter validation check",
                            "    - mtd: rawnand: lpc32xx_slc: fix GPIO descriptor leak on probe error and",
                            "      remove",
                            "    - task_work: Fix NMI race condition",
                            "    - x86/dumpstack: Prevent KASAN false positive warnings in __show_regs()",
                            "    - tools/nolibc/stdio: let perror work when NOLIBC_IGNORE_ERRNO is set",
                            "    - soc: qcom: smem: fix hwspinlock resource leak in probe error paths",
                            "    - pinctrl: stm32: fix hwspinlock resource leak in probe function",
                            "    - i3c: fix refcount inconsistency in i3c_master_register",
                            "    - i3c: master: svc: Prevent incomplete IBI transaction",
                            "    - interconnect: qcom: msm8996: add missing link to SLAVE_USB_HS",
                            "    - arm64: dts: qcom: msm8996: add interconnect paths to USB2 controller",
                            "    - interconnect: debugfs: Fix incorrect error handling for NULL path",
                            "    - perf lock contention: Load kernel map before lookup",
                            "    - perf record: skip synthesize event when open evsel failed",
                            "    - power: supply: cw2015: Check devm_delayed_work_autocancel() return code",
                            "    - power: supply: rt9467: Return error on failure in",
                            "      rt9467_set_value_from_ranges()",
                            "    - power: supply: rt9467: Prevent using uninitialized local variable in",
                            "      rt9467_set_value_from_ranges()",
                            "    - 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",
                            "    - fs/9p: Don't open remote file with APPEND mode when writeback cache is",
                            "      used",
                            "    - ARM: dts: am335x-netcom-plus-2xx: add missing GPIO labels",
                            "    - ARM: dts: omap3: beagle-xm: Correct obsolete TWL4030 power compatible",
                            "    - ARM: dts: omap3: n900: Correct obsolete TWL4030 power compatible",
                            "    - x86/boot: Fix page table access in 5-level to 4-level paging transition",
                            "    - efi/libstub: Fix page table access in 5-level to 4-level paging",
                            "      transition",
                            "    - mfd: da9055: Fix missing regmap_del_irq_chip() in error path",
                            "    - 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",
                            "    - scsi: stex: Fix reboot_notifier leak in probe error path",
                            "    - staging: most: i2c: Drop explicit initialization of struct",
                            "      i2c_device_id::driver_data to 0",
                            "    - [Config] remove MOST_I2C driver",
                            "    - dt-bindings: PCI: amlogic: Fix the register name of the DBI region",
                            "    - RDMA/rtrs: server: Fix error handling in get_or_create_srv",
                            "    - ARM: dts: stm32: stm32mp157c-phycore: Fix STMPE811 touchscreen node",
                            "      properties",
                            "    - ntfs3: init run lock for extend inode",
                            "    - scsi: ufs: core: fix incorrect buffer duplication in",
                            "      ufshcd_read_string_desc()",
                            "    - cpufreq/amd-pstate: Call cppc_set_auto_sel() only for online CPUs",
                            "    - powerpc/32: Fix unpaired stwcx. on interrupt exit",
                            "    - wifi: cw1200: Fix potential memory leak in cw1200_bh_rx_helper()",
                            "    - coresight: etm4x: Correct polling IDLE bit",
                            "    - 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",
                            "    - arm64: dts: rockchip: Move the EEPROM to correct I2C bus on Radxa ROCK",
                            "      5A",
                            "    - arm64: dts: rockchip: Add eeprom vcc-supply for Radxa ROCK 5A",
                            "    - ps3disk: use memcpy_{from,to}_bvec index",
                            "    - bpf: Handle return value of ftrace_set_filter_ip in register_fentry",
                            "    - selftests/bpf: Fix failure paths in send_signal test",
                            "    - watchdog: wdat_wdt: Fix ACPI table leak in probe function",
                            "    - watchdog: starfive: Fix resource leak in probe error path",
                            "    - tracefs: fix a leak in eventfs_create_events_dir()",
                            "    - NFSD/blocklayout: Fix minlength check in proc_layoutget",
                            "    - drm/msm/a2xx: stop over-complaining about the legacy firmware",
                            "    - bpf: Improve program stats run-time calculation",
                            "    - powerpc/64s/hash: Restrict stress_hpt_struct memblock region to within",
                            "      RMA limit",
                            "    - powerpc/64s/ptdump: Fix kernel_hash_pagetable dump for ISA v3.00 HPTE",
                            "      format",
                            "    - 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",
                            "    - net/ipv6: Remove expired routes with a separated list of routes.",
                            "    - ipv6: clear RA flags when adding a static route",
                            "    - perf arm-spe: Extend branch operations",
                            "    - perf arm_spe: Fix memset subclass in operation",
                            "    - pwm: bcm2835: Make sure the channel is enabled after pwm_request()",
                            "    - wifi: mac80211: fix CMAC functions not handling errors",
                            "    - mfd: mt6397-irq: Fix missing irq_domain_remove() in error path",
                            "    - mfd: mt6358-irq: Fix missing irq_domain_remove() in error path",
                            "    - phy: renesas: rcar-gen3-usb2: Fix an error handling path in",
                            "      rcar_gen3_phy_usb2_probe()",
                            "    - net: phy: adin1100: Fix software power-down ready condition",
                            "    - cpuset: Treat cpusets in attaching as populated",
                            "    - 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",
                            "    - RISC-V: KVM: Fix guest page fault within HLV* instructions",
                            "    - RDMA/bnxt_re: Fix the inline size for GenP7 devices",
                            "    - firmware: stratix10-svc: fix make htmldocs warning for stratix10_svc",
                            "    - staging: fbtft: core: fix potential memory leak in fbtft_probe_common()",
                            "    - btrfs: fix leaf leak in an error path in btrfs_del_items()",
                            "    - PCI: dwc: Fix wrong PORT_LOGIC_LTSSM_STATE_MASK definition",
                            "    - drm/nouveau: restrict the flush page to a 32-bit address",
                            "    - iomap: factor out a iomap_dio_done helper",
                            "    - iomap: always run error completions in user context",
                            "    - wifi: ieee80211: correct FILS status codes",
                            "    - 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",
                            "    - RDMA/irdma: Do not directly rely on IB_PD_UNSAFE_GLOBAL_RKEY",
                            "    - ASoC: fsl_xcvr: clear the channel status control memory",
                            "    - drm/amd/display: Fix logical vs bitwise bug in",
                            "      get_embedded_panel_info_v2_1()",
                            "    - hwmon: sy7636a: Fix regulator_enable resource leak on error path",
                            "    - ACPI: processor_core: fix map_x2apic_id for amd-pstate on am4",
                            "    - ublk: prevent invalid access with DEBUG",
                            "    - ext4: improve integrity checking in __mb_check_buddy by enhancing",
                            "      order-0 validation",
                            "    - virtio_vdpa: fix misleading return in void function",
                            "    - virtio: fix typo in virtio_device_ready() comment",
                            "    - virtio: fix whitespace in virtio_config_ops",
                            "    - virtio: fix virtqueue_set_affinity() docs",
                            "    - vdpa/pds: use %pe for ERR_PTR() in event handler registration",
                            "    - ASoC: Intel: catpt: Fix error path in hw_params()",
                            "    - ARM: dts: samsung: universal_c210: turn off SDIO WLAN chip during system",
                            "      suspend",
                            "    - ARM: dts: samsung: exynos4210-i9100: turn off SDIO WLAN chip during",
                            "      system suspend",
                            "    - ARM: dts: samsung: exynos4210-trats: turn off SDIO WLAN chip during",
                            "      system suspend",
                            "    - ARM: dts: samsung: exynos4412-midas: turn off SDIO WLAN chip during",
                            "      system suspend",
                            "    - resource: replace open coded resource_intersection()",
                            "    - resource: introduce is_type_match() helper and use it",
                            "    - Reinstate \"resource: avoid unnecessary lookups in find_next_iomem_res()\"",
                            "    - netfilter: flowtable: check for maximum number of encapsulations in",
                            "      bridge vlan",
                            "    - 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: rawnand: renesas: Handle devm_pm_runtime_enable() errors",
                            "    - selftests: bonding: add ipvlan over bond testing",
                            "    - selftests: bonding: add delay before each xvlan_over_bond connectivity",
                            "      check",
                            "    - mtd: lpddr_cmds: fix signed shifts in lpddr_cmds",
                            "    - remoteproc: qcom_q6v5_wcss: fix parsing of qcom,halt-regs",
                            "    - md/raid5: fix IO hang when array is broken with IO inflight",
                            "    - clk: keystone: fix compile testing",
                            "    - 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()",
                            "    - 9p: fix cache/debug options printing in v9fs_show_options",
                            "    - NFS: Avoid changing nlink when file removes and attribute updates race",
                            "    - fs/nls: Fix utf16 to utf8 conversion",
                            "    - NFS: Initialise verifiers for visible dentries in readdir and lookup",
                            "    - 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\"",
                            "    - Expand the type of nfs_fattr->valid",
                            "    - NFS: Fix inheritance of the block sizes when automounting",
                            "    - 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",
                            "    - nvme-auth: use kvfree() for memory allocated with kvcalloc()",
                            "    - dma/pool: eliminate alloc_pages warning in atomic_pool_expand",
                            "    - ALSA: uapi: Fix typo in asound.h comment",
                            "    - rtc: gamecube: Check the return value of ioremap()",
                            "    - 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()",
                            "    - LoongArch: Add machine_kexec_mask_interrupts() implementation",
                            "    - net: lan743x: Allocate rings outside ZONE_DMA",
                            "    - usb: gadget: tegra-xudc: Always reinitialize data toggle when clear halt",
                            "    - usb: phy: Initialize struct usb_phy list_head",
                            "    - ipv6: add exception routes to GC list in rt6_insert_exception",
                            "    - btrfs: do not skip logging new dentries when logging a new name",
                            "    - btrfs: fix a potential path leak in print_data_reloc_error()",
                            "    - bpf, arm64: Do not audit capability check in do_jit()",
                            "    - btrfs: fix memory leak of fs_devices in degraded seed device path",
                            "    - iomap: account for unaligned end offsets when truncating read range",
                            "    - sched/fair: Revert max_newidle_lb_cost bump",
                            "    - x86/ptrace: Always inline trivial accessors",
                            "    - ACPI: property: Use ACPI functions in acpi_graph_get_next_endpoint()",
                            "      only",
                            "    - cpufreq: dt-platdev: Add JH7110S SOC to the allowlist",
                            "    - cpufreq: s5pv210: fix refcount leak",
                            "    - cpuidle: menu: Use residency threshold in polling state override",
                            "      decisions",
                            "    - livepatch: Match old_sympos 0 and 1 in klp_find_func()",
                            "    - fs/ntfs3: Support timestamps prior to epoch",
                            "    - kbuild: Use objtree for module signing key path",
                            "    - hfsplus: fix volume corruption issue for generic/070",
                            "    - hfsplus: fix volume corruption issue for generic/073",
                            "    - wifi: brcmfmac: Add DMI nvram filename quirk for Acer A1 840 tablet",
                            "    - btrfs: scrub: always update btrfs_scrub_progress::last_physical",
                            "    - gfs2: fix remote evict for read-only filesystems",
                            "    - smb/server: fix return value of smb2_ioctl()",
                            "    - ksmbd: use rwsem instead of rwlock for lease break",
                            "    - Bluetooth: btusb: Add new VID/PID 2b89/6275 for RTL8761BUV",
                            "    - Bluetooth: btusb: Add new VID/PID 13d3/3533 for RTL8821CE",
                            "    - net: fec: ERR007885 Workaround for XDP TX path",
                            "    - ipvlan: Ignore PACKET_LOOPBACK in handle_mode_l2()",
                            "    - mlxsw: spectrum_router: Fix possible neighbour reference count leak",
                            "    - 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()",
                            "    - netfilter: nf_tables: pass context structure to nft_parse_register_load",
                            "    - netfilter: nf_tables: allow loads only when register is initialized",
                            "    - netfilter: nf_tables: remove redundant chain validation on register",
                            "      store",
                            "    - net/mlx5: fw reset, clear reset requested on drain_fw_reset",
                            "    - net/mlx5: Drain firmware reset in shutdown callback",
                            "    - net/mlx5: fw_tracer, Handle escaped percent properly",
                            "    - net/mlx5: Skip HotPlug check on sync reset using hot reset",
                            "    - net/mlx5: Serialize firmware reset with devlink",
                            "    - net: enetc: do not transmit redirected XDP frames when the link is down",
                            "    - net: hns3: using the num_tqps to check whether tqp_index is out of range",
                            "      when vf get ring info from mbx",
                            "    - hwmon: (tmp401) fix overflow caused by default conversion rate value",
                            "    - MIPS: Fix a reference leak bug in ip22_check_gio()",
                            "    - drm/panel: sony-td4353-jdi: Enable prepare_prev_first",
                            "    - x86/xen: Move Xen upcall handler",
                            "    - x86/xen: Fix sparse warning in enlighten_pv.c",
                            "    - spi: cadence-quadspi: Fix clock disable on probe failure path",
                            "    - block: rnbd-clt: Fix leaked ID in init_dev()",
                            "    - HID: input: map HID_GD_Z to ABS_DISTANCE for stylus/pen",
                            "    - Input: i8042 - add TUXEDO InfinityBook Max Gen10 AMD to i8042 quirk",
                            "      table",
                            "    - can: gs_usb: gs_can_open(): fix error handling",
                            "    - ACPI: PCC: Fix race condition by removing static qualifier",
                            "    - ACPI: CPPC: Fix missing PCC check for guaranteed_perf",
                            "    - mmc: sdhci-esdhc-imx: add alternate ARCH_S32 dependency to Kconfig",
                            "    - dt-bindings: mmc: sdhci-of-aspeed: Switch ref to sdhci-common.yaml",
                            "    - 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",
                            "    - fuse: Always flush the page cache before FOPEN_DIRECT_IO write",
                            "    - fuse: Invalidate the page cache after FOPEN_DIRECT_IO write",
                            "    - reset: fix BIT macro reference",
                            "    - exfat: fix remount failure in different process environments",
                            "    - usbip: Fix locking bug in RT-enabled kernels",
                            "    - iio: adc: ti_am335x_adc: Limit step_avg to valid range for gcc complains",
                            "    - 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",
                            "    - libperf cpumap: Fix perf_cpu_map__max for an empty/NULL map",
                            "    - i2c: designware: Disable SMBus interrupts to prevent storms from mis-",
                            "      configured firmware",
                            "    - 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",
                            "    - block: rnbd-clt: Fix signedness bug in init_dev()",
                            "    - 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",
                            "    - s390/dasd: Fix gendisk parent after copy pair swap",
                            "    - block: rate-limit capacity change info log",
                            "    - floppy: fix for PAGE_SIZE != 4KB",
                            "    - kallsyms: Fix wrong \"big\" kernel symbol type read from procfs",
                            "    - 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 per-journal lock_class_key for jbd2_trans_commit_key",
                            "    - jbd2: use a weaker annotation in journal handling",
                            "    - media: v4l2-mem2mem: Fix outdated documentation",
                            "    - mptcp: schedule rtx timer only after pushing data",
                            "    - 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: dwc3: keep susphy enabled during exit to avoid controller faults",
                            "    - usb: renesas_usbhs: Fix a resource leak in usbhs_pipe_malloc()",
                            "    - intel_th: Fix error handling in intel_th_output_open",
                            "    - cpuidle: governors: teo: Drop misguided target residency check",
                            "    - cpufreq: nforce2: fix reference count leak in nforce2",
                            "    - NFSD: use correct reservation type in nfsd4_scsi_fence_client",
                            "    - f2fs: fix age extent cache insertion skip on counter overflow",
                            "    - tools/testing/nvdimm: Use per-DIMM device handle",
                            "    - KVM: x86: Don't clear async #PF queue when CR0.PG is disabled (e.g. on",
                            "      #SMI)",
                            "    - 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: Avoid incorrect injection of SVM_EXIT_CR0_SEL_WRITE",
                            "    - KVM: SVM: Mark VMCB_NPT as dirty on nested VMRUN",
                            "    - KVM: nSVM: Propagate SVM_EXIT_CR0_SEL_WRITE correctly for LMSW emulation",
                            "    - KVM: SVM: Mark VMCB_PERM_MAP as dirty on nested VMRUN",
                            "    - 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",
                            "    - xfs: fix a memory leak in xfs_buf_item_init()",
                            "    - PM: runtime: Do not clear needs_force_resume with enabled runtime PM",
                            "    - r8169: fix RTL8117 Wake-on-Lan in DASH mode",
                            "    - nfsd: Mark variable __maybe_unused to avoid W=1 build break",
                            "    - svcrdma: return 0 on success from svc_rdma_copy_inline_range",
                            "    - s390/ipl: Clear SBP flag when bootprog is set",
                            "    - gpio: regmap: Fix memleak in error path in gpio_regmap_register()",
                            "    - drm/amd/display: Use GFP_ATOMIC in dc_create_plane_state()",
                            "    - selftests: openvswitch: Fix escape chars in regexp.",
                            "    - crypto: caam - Add check for kcalloc() in test_len()",
                            "    - amba: tegra-ahb: Fix device leak on SMMU enable",
                            "    - tracing: Fix fixed array of synthetic event",
                            "    - soc: qcom: ocmem: fix device leak on lookup",
                            "    - soc: amlogic: canvas: fix device leak on lookup",
                            "    - rpmsg: glink: fix rpmsg device leak",
                            "    - platform/x86: intel: chtwc_int33fe: don't dereference swnode args",
                            "    - 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",
                            "    - ARM: dts: microchip: sama5d2: fix spi flexcom fifo size to 32",
                            "    - wifi: rtw88: limit indirect IO under powered off for RTL8822CS",
                            "    - wifi: cfg80211: sme: store capped length in __cfg80211_connect_result()",
                            "    - wifi: mac80211: do not use old MBSSID elements",
                            "    - i40e: fix scheduling in set_rx_mode",
                            "    - 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",
                            "    - amd-xgbe: reset retries and mode on RX adapt failures",
                            "    - Revert \"UBUNTU: SAUCE: selftests: net: fix \"buffer overflow detected\"",
                            "      for tap.c\"",
                            "    - selftests: net: fix \"buffer overflow detected\" for tap.c",
                            "    - 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",
                            "    - blk-mq: don't schedule block kworker on isolated CPUs",
                            "    - blk-mq: skip CPU offline notify on unmapped hctx",
                            "    - selftests/ftrace: traceonoff_triggers: strip off names",
                            "    - ntfs: Do not overwrite uptodate pages",
                            "    - ASoC: stm32: sai: fix device leak on probe",
                            "    - ASoC: stm32: sai: fix clk prepare imbalance on probe failure",
                            "    - ASoC: qcom: q6apm-dai: set flags to reflect correct operation of",
                            "      appl_ptr",
                            "    - 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/amd: Fix pci_segment memleak in alloc_pci_segment()",
                            "    - 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-v1: fix device leaks on probe()",
                            "    - iommu/mediatek: fix device leak on of_xlate()",
                            "    - iommu/omap: fix device leaks on probe_device()",
                            "    - iommu/qcom: fix device leak on of_xlate()",
                            "    - 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",
                            "    - SAUCE: Revert \"arm64: dts: ti: k3-j721e-sk: Add DT nodes for power",
                            "      regulators\"",
                            "    - arm64: dts: ti: k3-j721e-sk: Fix pinmux for pin Y1 used by power",
                            "      regulator",
                            "    - powerpc, mm: Fix mprotect on book3s 32-bit",
                            "    - 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",
                            "    - leds: leds-lp50xx: Enable chip before any communication",
                            "    - 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()",
                            "    - powerpc/pseries/cmm: call balloon_devinfo_init() also without",
                            "      CONFIG_BALLOON_COMPACTION",
                            "    - firmware: stratix10-svc: Add mutex in stratix10 memory management",
                            "    - dm-ebs: Mark full buffer dirty even on partial write",
                            "    - dm-bufio: align write boundary on physical block size",
                            "    - 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: renesas: rcar_drif: fix device node reference leak in",
                            "      rcar_drif_bond_enabled",
                            "    - media: samsung: exynos4-is: fix potential ABBA deadlock on init",
                            "    - media: TDA1997x: Remove redundant cancel_delayed_work in probe",
                            "    - media: verisilicon: Protect G2 HEVC decoder against invalid DPB index",
                            "    - media: videobuf2: Fix device reference leak in vb2_dc_alloc error path",
                            "    - media: vpif_capture: fix section mismatch",
                            "    - media: vpif_display: fix section mismatch",
                            "    - media: amphion: Cancel message work before releasing the VPU core",
                            "    - media: i2c: ADV7604: Remove redundant cancel_delayed_work in probe",
                            "    - media: i2c: adv7842: Remove redundant cancel_delayed_work in probe",
                            "    - media: mediatek: vcodec: Fix a reference leak in",
                            "      mtk_vcodec_fw_vpu_init()",
                            "    - LoongArch: Add new PCI ID for pci_fixup_vgadev()",
                            "    - LoongArch: Correct the calculation logic of thread_count",
                            "    - LoongArch: Fix build errors for CONFIG_RANDSTRUCT",
                            "    - LoongArch: Use __pmd()/__pte() for swap entry conversions",
                            "    - LoongArch: Use unsigned long for _end and _text",
                            "    - compiler_types.h: add \"auto\" as a macro for \"__auto_type\"",
                            "    - kasan: refactor pcpu kasan vmalloc unpoison",
                            "    - idr: fix idr_alloc() returning an ID out of range",
                            "    - tools/mm/page_owner_sort: fix timestamp comparison for stable sorting",
                            "    - samples/ftrace: Adjust LoongArch register restore order in direct calls",
                            "    - fjes: Add missing iounmap in fjes_hw_init()",
                            "    - LoongArch: BPF: Zero-extend bpf_tail_call() index",
                            "    - nfsd: Drop the client reference in client_states_open()",
                            "    - net: usb: sr9700: fix incorrect command used to write single register",
                            "    - net: macb: Relocate mog_init_rings() callback from macb_mac_link_up() to",
                            "      macb_open()",
                            "    - drm/amdgpu: add missing lock to amdgpu_ttm_access_memory_sdma",
                            "    - drm/msm/a6xx: Fix out of bound IO access in a6xx_get_gmu_registers",
                            "    - drm/gma500: Remove unused helper psb_fbdev_fb_setcolreg()",
                            "    - drm/mediatek: Fix device node reference leak in mtk_dp_dt_parse()",
                            "    - drm/mgag200: Fix big-endian support",
                            "    - drm/nouveau/dispnv50: Don't call drm_atomic_get_crtc_state() in",
                            "      prepare_fb",
                            "    - blk-mq: add helper for checking if one CPU is mapped to specified hctx",
                            "    - mptcp: Initialise rcv_mss before calling tcp_send_active_reset() in",
                            "      mptcp_do_fastclose().",
                            "    - ALSA: wavefront: Use standard print API",
                            "    - ALSA: wavefront: Use guard() for spin locks",
                            "    - ALSA: wavefront: Clear substream pointers on close",
                            "    - ext4: fix string copying in parse_apply_sb_mount_options()",
                            "    - jbd2: fix the inconsistency between checksum and data in memory for",
                            "      journal sb",
                            "    - btrfs: don't rewrite ret from inode_permission",
                            "    - mm/ksm: fix exec/fork inheritance support for prctl",
                            "    - usb: ohci-nxp: Use helper function devm_clk_get_enabled()",
                            "    - usb: ohci-nxp: fix device leak on probe failure",
                            "    - scsi: ufs: core: Add ufshcd_update_evt_hist() for UFS suspend error",
                            "    - f2fs: use f2fs_err_ratelimited() to avoid redundant logs",
                            "    - ARM: dts: microchip: sama7g5: fix uart fifo size to 32",
                            "    - fuse: fix readahead reclaim deadlock",
                            "    - PCI: brcmstb: Fix disabling L0s capability",
                            "    - lockd: fix vfs_test_lock() calls",
                            "    - mm: simplify folio_expected_ref_count()",
                            "    - mm: consider non-anon swap cache folios in folio_expected_ref_count()",
                            "    - pmdomain: imx: Fix reference count leak in imx_gpc_probe()",
                            "    - net: phy: mediatek: fix nvmem cell reference leak in",
                            "      mt798x_phy_calibration",
                            "    - drm/amdgpu: Forward VMID reservation errors",
                            "    - drm/mediatek: Fix probe memory leak",
                            "    - drm/mediatek: Fix probe resource leaks",
                            "    - drm/tilcdc: request and mapp iomem with devres",
                            "    - tty: introduce and use tty_port_tty_vhangup() helper",
                            "    - xhci: dbgtty: fix device unregister: fixup",
                            "    - usb: xhci: move link chain bit quirk checks into one helper function.",
                            "    - LoongArch: Refactor register restoration in ftrace_common_return",
                            "    - f2fs: remove unused GC_FAILURE_PIN",
                            "    - f2fs: keep POSIX_FADV_NOREUSE ranges",
                            "    - f2fs: drop inode from the donation list when the last file is closed",
                            "    - f2fs: fix to propagate error from f2fs_enable_checkpoint()",
                            "    - f2fs: fix to detect recoverable inode during dryrun of",
                            "      find_fsync_dnodes()",
                            "    - media: verisilicon: Fix CPU stalls on G2 bus error",
                            "    - 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",
                            "    - KVM: nVMX: Immediately refresh APICv controls as needed on nested VM-",
                            "      Exit",
                            "    - media: amphion: Add a frame flush mode for decoder",
                            "    - media: amphion: Make some vpu_v4l2 functions static",
                            "    - media: amphion: Remove vpu_vb_is_codecconfig",
                            "    - 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()",
                            "    - sched/fair: Small cleanup to sched_balance_newidle()",
                            "    - sched/fair: Small cleanup to update_newidle_cost()",
                            "    - sched/fair: Proportional newidle balance",
                            "    - RDMA/rxe: Fix the failure of ibv_query_device() and",
                            "      ibv_query_device_ex() tests",
                            "    - mm/damon/tests/vaddr-kunit: handle alloc failures on",
                            "      damon_test_split_evenly_succ()",
                            "    - mm/damon/tests/core-kunit: handle alloc failres in",
                            "      damon_test_new_filter()",
                            "    - mm/damon/tests/core-kunit: handle allocation failures in",
                            "      damon_test_regions()",
                            "    - 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 alloc failures on",
                            "      damos_test_filter_out()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures in",
                            "      damon_test_set_regions()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures in",
                            "      damon_test_ops_registration()",
                            "    - mm/damon/tests/core-kunit: handle alloc failure on",
                            "      damon_test_set_attrs()",
                            "    - virtio_console: fix order of fields cols and rows",
                            "    - pwm: stm32: Always program polarity",
                            "    - tty: fix tty_port_tty_*hangup() kernel-doc",
                            "    - firmware: arm_scmi: Fix unused notifier-block in unregister",
                            "    - ext4: filesystems without casefold feature cannot be mounted with",
                            "      siphash",
                            "    - drm/amdkfd: Fix GPU mappings for APU after prefetch",
                            "    - wifi: rtl8xxxu: Add USB ID 2001:3328 for D-Link AN3U rev. A1",
                            "    - smack: fix bug: setting task label silently ignores input garbage",
                            "    - wifi: ath10k: Avoid vdev delete timeout when firmware is already down",
                            "    - wifi: ath10k: Add missing include of export.h",
                            "    - wifi: ath10k: move recovery check logic into a new work",
                            "    - wifi: ath11k: restore register window after global reset",
                            "    - dt-bindings: clock: qcom,x1e80100-gcc: Add missing video resets",
                            "    - dt-bindings: clock: qcom,x1e80100-gcc: Add missing USB4 clocks/resets",
                            "    - clk: qcom: gcc-x1e80100: Add missing USB4 clocks/resets",
                            "    - inet: Avoid ehash lookup race in inet_twsk_hashdance_schedule()",
                            "    - block/mq-deadline: Introduce dd_start_request()",
                            "    - block/mq-deadline: Switch back to a single dispatch list",
                            "    - perf annotate: Check return value of evsel__get_arch() properly",
                            "    - arm64: dts: exynos: gs101: fix sysreg_apm reg property",
                            "    - clk: qcom: camcc-sm8550: Specify Titan GDSC power domain as a parent to",
                            "      other",
                            "    - soc: qcom: gsbi: fix double disable caused by devm",
                            "    - wifi: ath11k: fix VHT MCS assignment",
                            "    - arm64: dts: qcom: sm8650: set ufs as dma coherent",
                            "    - perf: Remove get_perf_callchain() init_nr argument",
                            "    - bpf: Refactor stack map trace depth calculation into helper function",
                            "    - perf/x86/intel/cstate: Remove PC3 support from LunarLake",
                            "    - drm/imagination: Fix reference to",
                            "      devm_platform_get_and_ioremap_resource()",
                            "    - power: supply: rt5033_charger: Fix device node reference leaks",
                            "    - power: supply: max17040: Check iio_read_channel_processed() return code",
                            "    - libbpf: Fix parsing of multi-split BTF",
                            "    - locktorture: Fix memory leak in param_set_cpumask()",
                            "    - crypto: iaa - Fix incorrect return value in save_iaa_wq()",
                            "    - drm/msm/dpu: drop dpu_hw_dsc_destroy() prototype",
                            "    - leds: rgb: leds-qcom-lpg: Don't enable TRILED when configuring PWM",
                            "    - RAS: Report all ARM processor CPER information to userspace",
                            "    - vhost: Fix kthread worker cgroup failure handling",
                            "    - vfio/pci: Use RCU for error/request triggers to avoid circular locking",
                            "    - net: phy: aquantia: check for NVMEM deferral",
                            "    - perf tools: Mark split kallsyms DSOs as loaded",
                            "    - perf hist: In init, ensure mem_info is put on error paths",
                            "    - sched/fair: Fix unfairness caused by stalled tg_load_avg_contrib when",
                            "      the last task migrates out",
                            "    - platform/x86:intel/pmc: Update Arrow Lake telemetry GUID",
                            "    - nfs/vfs: discard d_exact_alias()",
                            "    - NFS: Initialise verifiers for visible dentries in",
                            "      _nfs4_open_and_get_state",
                            "    - drm/plane: Fix IS_ERR() vs NULL check in",
                            "      drm_plane_create_hotspot_properties()",
                            "    - regulator: fixed: Rely on the core freeing the enable GPIO",
                            "    - drm/nouveau: refactor deprecated strcpy",
                            "    - drm/amdkfd: Use huge page size to check split svm range alignment",
                            "    - block: return unsigned int from queue_dma_alignment",
                            "    - fs/ntfs3: check for shutdown in fsync",
                            "    - wifi: rtl8xxxu: Fix HT40 channel config for RTL8192CU, RTL8723AU",
                            "    - wifi: cfg80211: use cfg80211_leave() in iftype change",
                            "    - wifi: mt76: mt792x: fix wifi init fail by setting MCU_RUNNING after CLC",
                            "      load",
                            "    - gfs2: Fix \"gfs2: Switch to wait_event in gfs2_quotad\"",
                            "    - Bluetooth: btusb: MT7922: Add VID/PID 0489/e170",
                            "    - Bluetooth: btusb: MT7920: Add VID/PID 0489/e135",
                            "    - Bluetooth: btusb: Add new VID/PID 0x0489/0xE12F for RTL8852BE-VT",
                            "    - netfilter: nf_nat: remove bogus direction check",
                            "    - iommufd/selftest: Add coverage for reporting max_pasid_log2 via",
                            "      IOMMU_HW_INFO",
                            "    - iommufd/selftest: Update hw_info coverage for an input data_type",
                            "    - iommufd/selftest: Make it clearer to gcc that the access is not out of",
                            "      bounds",
                            "    - hwmon: (dell-smm) Limit fan multiplier to avoid overflow",
                            "    - drm/xe: Restore engine registers before restarting schedulers after GT",
                            "      reset",
                            "    - mmc: sdhci-of-arasan: Increase CD stable timeout to 2 seconds",
                            "    - scsi: ufs: host: mediatek: Fix shutdown/suspend race condition",
                            "    - scsi: smartpqi: Add support for Hurray Data new controller PCI device",
                            "    - exfat: zero out post-EOF page cache on file extension",
                            "    - x86/mce: Do not clear bank's poll bit in mce_poll_banks on AMD SMCA",
                            "      systems",
                            "    - perf: arm_cspmu: fix error handling in arm_cspmu_impl_unregister()",
                            "    - wifi: mt76: Fix DTS power-limits on little endian systems",
                            "    - usb: gadget: lpc32xx_udc: fix clock imbalance in error path",
                            "    - mei: gsc: add dependency on Xe driver",
                            "    - serial: sh-sci: Check that the DMA cookie is valid",
                            "    - powerpc: Add reloc_offset() to font bitmap pointer used for",
                            "      bootx_printf()",
                            "    - xfs: fix stupid compiler warning",
                            "    - NFSD: Clear SECLABEL in the suppattr_exclcreat bitmap",
                            "    - drm/amd/display: Fix scratch registers offsets for DCN35",
                            "    - drm/displayid: pass iter to drm_find_displayid_extension()",
                            "    - KVM: arm64: Initialize SCTLR_EL1 in __kvm_hyp_init_cpu()",
                            "    - soc: apple: mailbox: fix device leak on lookup",
                            "    - interconnect: qcom: sdx75: Drop QPIC interconnect and BCM nodes",
                            "    - i40e: validate ring_len parameter against hardware-specific values",
                            "    - idpf: reduce mbx_task schedule delay to 300us",
                            "    - platform/mellanox: mlxbf-pmc: Remove trailing whitespaces from event",
                            "      names",
                            "    - net: dsa: fix missing put_device() in dsa_tree_find_first_conduit()",
                            "    - vfio/pds: Fix memory leak in pds_vfio_dirty_enable()",
                            "    - md: Fix static checker warning in analyze_sbs",
                            "    - ASoC: codecs: lpass-tx-macro: fix SM6115 support",
                            "    - iommu/amd: Propagate the error code returned by __modify_irte_ga() in",
                            "      modify_irte_ga()",
                            "    - mtd: mtdpart: ignore error -ENOENT from parsers on subpartitions",
                            "    - mtd: spi-nor: winbond: Add support for W25Q01NWxxIQ chips",
                            "    - mtd: spi-nor: winbond: Add support for W25Q01NWxxIM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25Q02NWxxIM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25H512NWxxAM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25H01NWxxAM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25H02NWxxAM chips",
                            "    - perf/x86/amd/uncore: Fix the return value of amd_uncore_df_event_init()",
                            "      on error",
                            "    - mm/damon/tests/sysfs-kunit: handle alloc failures on",
                            "      damon_sysfs_test_add_targets()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      damon_test_split_at()",
                            "    - mm/damon/tests/core-kunit: handle memory alloc failure from",
                            "      damon_test_aggregate()",
                            "    - 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 alloc failures in",
                            "      damon_test_update_monitoring_result()",
                            "    - kasan: unpoison vms[area] addresses with a common tag",
                            "    - drm/amdgpu/gmc11: add amdgpu_vm_handle_fault() handling",
                            "    - drm/edid: add DRM_EDID_IDENT_INIT() to initialize struct drm_edid_ident",
                            "    - drm/mediatek: Fix probe device leaks",
                            "    - drm/i915: Fix format string truncation warning",
                            "    - drm/xe/bo: Don't include the CCS metadata in the dma-buf sg-table",
                            "    - drm/xe: Adjust long-running workload timeslices to reasonable values",
                            "    - drm/xe: Use usleep_range for accurate long-running workload timeslicing",
                            "    - drm/xe: Drop preempt-fences when destroying imported dma-bufs.",
                            "    - drm/imagination: Disallow exporting of PM/FW protected objects",
                            "    - gfs2: fix freeze error handling",
                            "    - sched/eevdf: Remove min_vruntime_copy",
                            "    - sched/eevdf: Fix min_vruntime vs avg_vruntime",
                            "    - serial: core: fix OF node leak",
                            "    - serial: core: Restore sysfs fwnode information",
                            "    - mptcp: pm: ignore unknown endpoint flags",
                            "    - f2fs: clear SBI_POR_DOING before initing inmem curseg",
                            "    - f2fs: add timeout in f2fs_enable_checkpoint()",
                            "    - f2fs: dump more information for f2fs_{enable,disable}_checkpoint()",
                            "    - gpiolib: acpi: Switch to use enum in acpi_gpio_in_ignore_list()",
                            "    - gpiolib: acpi: Handle deferred list via new API",
                            "    - gpiolib: acpi: Add acpi_gpio_need_run_edge_events_on_boot() getter",
                            "    - gpiolib: acpi: Move quirks to a separate file",
                            "    - gpiolib: acpi: Add a quirk for Acer Nitro V15",
                            "    - gpiolib: acpi: Add quirk for ASUS ProArt PX13",
                            "    - gpiolib: acpi: Add quirk for Dell Precision 7780",
                            "    - serial: core: Fix serial device initialization",
                            "    - media: i2c: imx219: Fix 1920x1080 mode to use 1:1 pixel aspect ratio",
                            "    - wifi: mt76: mt7925: fix CLC command timeout when suspend/resume",
                            "    - soundwire: stream: extend sdw_alloc_stream() to take 'type' parameter",
                            "    - ASoC: qcom: sdw: fix memory leak for sdw_stream_runtime",
                            "    - vfio/pci: Disable qword access to the PCI ROM bar",
                            "    - iomap: allocate s_dio_done_wq for async reads as well",
                            "    - mptcp: ensure context reset on disconnect()",
                            "    - Upstream stable to v6.6.120, v6.12.62, v6.12.63, v6.12.64, v6.12.65",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2024-36347",
                            "    - x86/microcode/AMD: Fix Entrysign revision check for Zen5/Strix Halo",
                            "    - x86/microcode/AMD: Select which microcode patch to load",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-40164",
                            "    - usbnet: Fix using smp_processor_id() in preemptible code warnings",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-40325",
                            "    - md/raid10: wait barrier before returning discard request with REQ_NOWAIT",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68206",
                            "    - netfilter: nft_ct: add seqadj extension for natted connections",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71068",
                            "    - svcrdma: bound check rq_pages index in inline path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71135",
                            "    - md/raid5: fix possible null-pointer dereferences in",
                            "      raid5_store_group_thread_cnt()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-38234",
                            "    - sched/rt: Fix race in push_rt_task",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68811",
                            "    - svcrdma: use rc_pageoff for memcpy byte offset",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68810",
                            "    - KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71109",
                            "    - MIPS: ftrace: Fix memory corruption when kernel is located beyond 32",
                            "      bits",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68770",
                            "    - bnxt_en: Fix XDP_TX path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71072",
                            "    - shmem: fix recovery on rename failures",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68374",
                            "    - md: fix rcu protection in md_wakeup_thread",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68378",
                            "    - bpf: Fix stackmap overflow check in __bpf_get_stackid()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2024-57795",
                            "    - RDMA/rxe: Remove the direct link to net_device",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-38022",
                            "    - RDMA/core: Fix \"KASAN: slab-use-after-free Read in ib_register_device\"",
                            "      problem",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71140",
                            "    - media: mediatek: vcodec: Use spinlock for context list protection lock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71105",
                            "    - f2fs: use global inline_xattr_slab instead of per-sb slab cache",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68772",
                            "    - f2fs: fix to avoid updating compression context during writeback",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-22111",
                            "    - net: Remove RTNL dance for SIOCBRADDIF and SIOCBRDELIF.",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-22022",
                            "    - usb: xhci: Apply the link chain quirk on NEC isoc endpoints",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71141",
                            "    - drm/tilcdc: Fix removal actions in case of failed probe",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71127",
                            "    - wifi: mac80211: Discard Beacon frames to non-broadcast address",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71088",
                            "    - mptcp: fallback earlier on simult connection",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71065",
                            "    - f2fs: fix to avoid potential deadlock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68345",
                            "    - ALSA: hda: cs35l41: Fix NULL pointer dereference in",
                            "      cs35l41_hda_read_acpi()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68344",
                            "    - ALSA: wavefront: Fix integer overflow in sample size validation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71077",
                            "    - tpm: Cap the number of PCR banks",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71130",
                            "    - drm/i915/gem: Zero-initialize the eb.vma array in i915_gem_do_execbuffer",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71138",
                            "    - drm/msm/dpu: Add missing NULL pointer check for pingpong interface",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71083",
                            "    - drm/ttm: Avoid NULL pointer deref for evicted BOs",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71079",
                            "    - net: nfc: fix deadlock between nfc_unregister_device and",
                            "      rfkill_fop_write",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71129",
                            "    - LoongArch: BPF: Sign extend kfunc call arguments",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71093",
                            "    - e1000: fix OOB in e1000_tbi_should_accept()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71084",
                            "    - RDMA/cm: Fix leaking the multicast GID table reference",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71096",
                            "    - RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71136",
                            "    - media: adv7842: Avoid possible out-of-bounds array accesses in",
                            "      adv7842_cp_log_status()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71143",
                            "    - clk: samsung: exynos-clkout: Assign .num before accessing .hws",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71078",
                            "    - powerpc/64s/slb: Fix SLB multihit issue during SLB preload",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71089",
                            "    - iommu: disable SVA when CONFIG_X86 is set",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71081",
                            "    - ASoC: stm32: sai: fix OF node leak on probe",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71153",
                            "    - ksmbd: Fix memory leak in get_file_all_info()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71133",
                            "    - RDMA/irdma: avoid invalid read in irdma_net_event",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71086",
                            "    - net: rose: fix invalid array index in rose_kill_by_device()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71097",
                            "    - ipv4: Fix reference count leak when using error routes with nexthop",
                            "      objects",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71085",
                            "    - ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71095",
                            "    - net: stmmac: fix the crash issue for zero copy XDP_TX action",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71137",
                            "    - octeontx2-pf: fix \"UBSAN: shift-out-of-bounds error\"",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71101",
                            "    - platform/x86: hp-bioscfg: Fix out-of-bounds array access in ACPI package",
                            "      parsing",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71094",
                            "    - net: usb: asix: validate PHY address before use",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71132",
                            "    - smc91x: fix broken irq-context in PREEMPT_RT",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71154",
                            "    - net: usb: rtl8150: fix memory leak on usb_submit_urb() failure",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71091",
                            "    - team: fix check for port enabled in",
                            "      team_queue_override_port_prio_changed()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71098",
                            "    - ip6_gre: make ip6gre_header() robust",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71082",
                            "    - Bluetooth: btusb: revert use of devm_kzalloc in btusb",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71131",
                            "    - crypto: seqiv - Do not use req->iv after crypto_aead_encrypt",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71087",
                            "    - iavf: fix off-by-one issues in iavf_config_rss_reg()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71071",
                            "    - iommu/mediatek: fix use-after-free on probe deferral",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71111",
                            "    - hwmon: (w83791d) Convert macros to functions to avoid TOCTOU",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71113",
                            "    - crypto: af_alg - zero initialize memory allocated via sock_kmalloc",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71149",
                            "    - io_uring/poll: correctly handle io_poll_add() return value on update",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68778",
                            "    - btrfs: don't log conflicting inode if it's a dir moved in the current",
                            "      transaction",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71119",
                            "    - powerpc/kexec: Enable SMT before waking offline CPUs",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71120",
                            "    - SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in",
                            "      gss_read_proxy_verf",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71148",
                            "    - net/handshake: restore destructor on submit failure",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68788",
                            "    - fsnotify: do not generate ACCESS/MODIFY events on child for special",
                            "      files",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71125",
                            "    - tracing: Do not register unsupported perf events",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71104",
                            "    - KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV",
                            "      timer",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71116",
                            "    - libceph: make decode_pool() more resilient against corrupted osdmaps",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71121",
                            "    - parisc: Do not reprogram affinitiy on ASP chip",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71102",
                            "    - scs: fix a wrong parameter in __scs_magic",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68804",
                            "    - platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68771",
                            "    - ocfs2: fix kernel BUG in ocfs2_find_victim_chain",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68808",
                            "    - media: vidtv: initialize local pointers upon transfer of memory",
                            "      ownership",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68769",
                            "    - f2fs: fix return value of f2fs_recover_fsync_data()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71069",
                            "    - f2fs: invalidate dentry cache on failed whiteout creation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68796",
                            "    - f2fs: fix to avoid updating zero-sized extent in extent cache",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71107",
                            "    - f2fs: ensure node page reads complete before f2fs_put_super() finishes",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68782",
                            "    - scsi: target: Reset t_task_cdb pointer in error case",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71075",
                            "    - scsi: aic94xx: fix use-after-free in device removal path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68818",
                            "    - scsi: Revert \"scsi: qla2xxx: Perform lockless command completion in",
                            "      abort path\"",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68797",
                            "    - char: applicom: fix NULL pointer dereference in ac_ioctl",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68819",
                            "    - media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71126",
                            "    - mptcp: avoid deadlock on fallback while reinjecting",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68820",
                            "    - ext4: xattr: fix null pointer deref in ext4_raw_inode()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68814",
                            "    - io_uring: fix filename leak in __io_openat_prep()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71147",
                            "    - KEYS: trusted: Fix a memory leak in tpm2_load_cmd",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71151",
                            "    - cifs: Fix memory and information leak in smb3_reconfigure()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71108",
                            "    - usb: typec: ucsi: Handle incorrect num_connectors capability",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71114",
                            "    - via_wdt: fix critical boot hang due to unnamed resource allocation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68783",
                            "    - ALSA: usb-mixer: us16x08: validate meter packet indices",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68776",
                            "    - net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68773",
                            "    - spi: fsl-cpm: Check length parity before switching to 16 bit mode",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68777",
                            "    - Input: ti_am335x_tsc - fix off-by-one error in wire_order validation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68806",
                            "    - ksmbd: fix buffer validation by including null terminator size in EA",
                            "      length",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71150",
                            "    - ksmbd: Fix refcount leak when invalid session is found on session lookup",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68786",
                            "    - ksmbd: skip lock-range check on equal size to avoid size==0 underflow",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68789",
                            "    - hwmon: (ibmpex) fix use-after-free in high/low store",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71112",
                            "    - net: hns3: add VLAN id validation before using",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71064",
                            "    - net: hns3: using the num_tqps in the vf driver to apply for resources",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68775",
                            "    - net/handshake: duplicate handshake cancellations leak socket",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68816",
                            "    - net/mlx5: fw_tracer, Validate format string parameters",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68795",
                            "    - ethtool: Avoid overflowing userspace buffer on stats query",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71122",
                            "    - iommufd/selftest: Check for overflow in IOMMU_TEST_OP_ADD_RESERVED",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68815",
                            "    - net/sched: ets: Remove drr class from the active list if it changes to",
                            "      strict",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68799",
                            "    - caif: fix integer underflow in cffrml_receive()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68813",
                            "    - ipvs: fix ipv4 null-ptr-deref in route error path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68785",
                            "    - net: openvswitch: fix middle attribute validation in push_nsh() action",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68800",
                            "    - mlxsw: spectrum_mr: Fix use-after-free when updating multicast route",
                            "      stats",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68801",
                            "    - mlxsw: spectrum_router: Fix neighbour use-after-free",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71066",
                            "    - net/sched: ets: Always remove class from active list before deleting in",
                            "      ets_qdisc_change",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68787",
                            "    - netrom: Fix memory leak in nr_sendmsg()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68809",
                            "    - ksmbd: vfs: fix race on m_flags in vfs_cache",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68817",
                            "    - ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68767",
                            "    - hfsplus: Verify inode mode when loading from disk",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68774",
                            "    - hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71067",
                            "    - ntfs: set dummy blocksize to read boot_block when mounting",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71118",
                            "    - ACPICA: Avoid walking the Namespace if start_node is NULL",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68780",
                            "    - sched/deadline: only set free_cpus for online runqueues",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68798",
                            "    - perf/x86/amd: Check event before enable to avoid GPF",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68794",
                            "    - iomap: adjust read range correctly for non-block-aligned positions",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68346",
                            "    - ALSA: dice: fix buffer overflow in detect_stream_formats()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68766",
                            "    - irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68756",
                            "    - block: Use RCU in blk_mq_[un]quiesce_tagset() instead of",
                            "      set->tag_list_lock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68753",
                            "    - ALSA: firewire-motu: add bounds check in put_user loop for DSP events",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68347",
                            "    - ALSA: firewire-motu: fix buffer overflow in hwdep read for DSP events",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68764",
                            "    - NFS: Automounted filesystems should inherit ro,noexec,nodev,sync flags",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68349",
                            "    - NFSv4/pNFS: Clear NFS_INO_LAYOUTCOMMIT in",
                            "      pnfs_mark_layout_stateid_invalid",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68325",
                            "    - net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68354",
                            "    - regulator: core: Protect regulator_supply_alias_list with",
                            "      regulator_list_mutex",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68758",
                            "    - backlight: led-bl: Add devlink to supplier LEDs",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68765",
                            "    - mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68763",
                            "    - crypto: starfive - Correctly handle return of sg_nents_for_len",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68740",
                            "    - ima: Handle error code returned by ima_filter_rule_match()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68362",
                            "    - wifi: rtl818x: rtl8187: Fix potential buffer underflow in",
                            "      rtl8187_rx_cb()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68741",
                            "    - scsi: qla2xxx: Fix improper freeing of purex item",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68742",
                            "    - bpf: Fix invalid prog->stats access when update_effective_progs fails",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68759",
                            "    - wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68363",
                            "    - bpf: Check skb->transport_header is set in bpf_skb_check_mtu",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68744",
                            "    - bpf: Free special fields when update [lru_,]percpu_hash maps",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68364",
                            "    - ocfs2: relax BUG() to ocfs2_error() in __ocfs2_move_extent()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68366",
                            "    - nbd: defer config unlock in nbd_genl_connect",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68367",
                            "    - macintosh/mac_hid: fix race condition in mac_hid_toggle_emumouse",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68755",
                            "    - staging: most: remove broken i2c driver",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68371",
                            "    - scsi: smartpqi: Fix device resources accessed after device removal",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68372",
                            "    - nbd: defer config put in recv_work",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68746",
                            "    - spi: tegra210-quad: Fix timeout handling",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68379",
                            "    - RDMA/rxe: Fix null deref on srq->rq.queue after resize failure",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68380",
                            "    - wifi: ath11k: fix peer HE MCS assignment",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68724",
                            "    - crypto: asymmetric_keys - prevent overflow in asymmetric_key_generate_id",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68727",
                            "    - ntfs3: Fix uninit buffer allocated by __getname()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68728",
                            "    - ntfs3: fix uninit memory after failed mi_read in mi_format_new",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68757",
                            "    - drm/vgem-fence: Fix potential deadlock on release",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68732",
                            "    - gpu: host1x: Fix race in syncpt alloc/free",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68733",
                            "    - smack: fix bug: unprivileged task can create labels",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68254",
                            "    - staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68255",
                            "    - staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68256",
                            "    - staging: rtl8723bs: fix out-of-bounds read in rtw_get_ie() parser",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68257",
                            "    - comedi: check device's attached status in compat ioctls",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68258",
                            "    - comedi: multiq3: sanitize config options in multiq3_attach()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68332",
                            "    - comedi: c6xdigio: Fix invalid PNP driver unregistration",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68265",
                            "    - nvme: fix admin request_queue lifetime",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68266",
                            "    - bfs: Reconstruct file type when loading from disk",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68259",
                            "    - KVM: SVM: Don't skip unrelated instruction if INT3/INTO is replaced",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68335",
                            "    - comedi: pcl818: fix null-ptr-deref in pcl818_ai_cancel()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68261",
                            "    - ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68336",
                            "    - locking/spinlock/debug: Fix data-race in do_raw_write_lock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68263",
                            "    - ksmbd: ipc: fix use-after-free in ipc_msg_send_request",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68264",
                            "    - ext4: refresh inline data size before write operations",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68337",
                            "    - jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system",
                            "      corrupted",
                            "  * CVE-2026-23111",
                            "    - netfilter: nf_tables: fix inverted genmask check in",
                            "      nft_map_catchall_activate()",
                            "  * CVE-2026-23209",
                            "    - macvlan: fix error recovery in macvlan_common_newlink()",
                            "  * CVE-2026-23074",
                            "    - net/sched: Enforce that teql can only be used as root qdisc",
                            "  * CVE-2026-23060",
                            "    - crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN",
                            "      spec",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-110.110~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2143477,
                            2144887,
                            2144730,
                            2143478,
                            2142235,
                            2143033,
                            2142337,
                            2141276,
                            2139322,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Thu, 26 Mar 2026 16:40:51 +0100"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23074",
                                "url": "https://ubuntu.com/security/CVE-2026-23074",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23060",
                                "url": "https://ubuntu.com/security/CVE-2026-23060",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23111",
                                "url": "https://ubuntu.com/security/CVE-2026-23111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-107.107~22.04.1 -proposed tracker (LP: #2144266)",
                            "",
                            "  [ Ubuntu: 6.8.0-107.107 ]",
                            "",
                            "  * noble/linux: 6.8.0-107.107 -proposed tracker (LP: #2144267)",
                            "  * CVE-2026-23074",
                            "    - net/sched: Enforce that teql can only be used as root qdisc",
                            "  * CVE-2026-23060",
                            "    - crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN",
                            "      spec",
                            "  * CVE-2026-23111",
                            "    - netfilter: nf_tables: fix inverted genmask check in",
                            "      nft_map_catchall_activate()",
                            "",
                            "  [ Ubuntu: 6.8.0-106.106 ]",
                            "",
                            "  * 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-riscv-6.8",
                        "version": "6.8.0-107.107~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2144266,
                            2144267
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Wed, 18 Mar 2026 15:14:52 +0100"
                    }
                ],
                "notes": "linux-modules-6.8.0-117-generic version '6.8.0-117.117~22.04.1' (source package linux-riscv-6.8 version '6.8.0-117.117~22.04.1') was added. linux-modules-6.8.0-117-generic version '6.8.0-117.117~22.04.1' has the same source package name, linux-riscv-6.8, as removed package linux-headers-6.8.0-106-generic. As such we can use the source package version of the removed package, '6.8.0-106.106~22.04.1', 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-riscv-6.8-headers-6.8.0-117",
                "from_version": {
                    "source_package_name": "linux-riscv-6.8",
                    "source_package_version": "6.8.0-106.106~22.04.1",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux-riscv-6.8",
                    "source_package_version": "6.8.0-117.117~22.04.1",
                    "version": "6.8.0-117.117~22.04.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-31419",
                        "url": "https://ubuntu.com/security/CVE-2026-31419",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: bonding: fix use-after-free in bond_xmit_broadcast()  bond_xmit_broadcast() reuses the original skb for the last slave (determined by bond_is_last_slave()) and clones it for others. Concurrent slave enslave/release can mutate the slave list during RCU-protected iteration, changing which slave is \"last\" mid-loop. This causes the original skb to be double-consumed (double-freed).  Replace the racy bond_is_last_slave() check with a simple index comparison (i + 1 == slaves_count) against the pre-snapshot slave count taken via READ_ONCE() before the loop.  This preserves the zero-copy optimization for the last slave while making the \"last\" determination stable against concurrent list mutations.  The UAF can trigger the following crash:  ================================================================== BUG: KASAN: slab-use-after-free in skb_clone Read of size 8 at addr ffff888100ef8d40 by task exploit/147  CPU: 1 UID: 0 PID: 147 Comm: exploit Not tainted 7.0.0-rc3+ #4 PREEMPTLAZY Call Trace:  <TASK>  dump_stack_lvl (lib/dump_stack.c:123)  print_report (mm/kasan/report.c:379 mm/kasan/report.c:482)  kasan_report (mm/kasan/report.c:597)  skb_clone (include/linux/skbuff.h:1724 include/linux/skbuff.h:1792 include/linux/skbuff.h:3396 net/core/skbuff.c:2108)  bond_xmit_broadcast (drivers/net/bonding/bond_main.c:5334)  bond_start_xmit (drivers/net/bonding/bond_main.c:5567 drivers/net/bonding/bond_main.c:5593)  dev_hard_start_xmit (include/linux/netdevice.h:5325 include/linux/netdevice.h:5334 net/core/dev.c:3871 net/core/dev.c:3887)  __dev_queue_xmit (include/linux/netdevice.h:3601 net/core/dev.c:4838)  ip6_finish_output2 (include/net/neighbour.h:540 include/net/neighbour.h:554 net/ipv6/ip6_output.c:136)  ip6_finish_output (net/ipv6/ip6_output.c:208 net/ipv6/ip6_output.c:219)  ip6_output (net/ipv6/ip6_output.c:250)  ip6_send_skb (net/ipv6/ip6_output.c:1985)  udp_v6_send_skb (net/ipv6/udp.c:1442)  udpv6_sendmsg (net/ipv6/udp.c:1733)  __sys_sendto (net/socket.c:730 net/socket.c:742 net/socket.c:2206)  __x64_sys_sendto (net/socket.c:2209)  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)  </TASK>  Allocated by task 147:  Freed by task 147:  The buggy address belongs to the object at ffff888100ef8c80  which belongs to the cache skbuff_head_cache of size 224 The buggy address is located 192 bytes inside of  freed 224-byte region [ffff888100ef8c80, ffff888100ef8d60)  Memory state around the buggy address:  ffff888100ef8c00: fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc  ffff888100ef8c80: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff888100ef8d00: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc                                                     ^  ffff888100ef8d80: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb  ffff888100ef8e00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31431",
                        "url": "https://ubuntu.com/security/CVE-2026-31431",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: algif_aead - Revert to operating out-of-place  This mostly reverts commit 72548b093ee3 except for the copying of the associated data.  There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings.  Get rid of all the complexity added for in-place operation and just copy the AD directly.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-04-22 09:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31533",
                        "url": "https://ubuntu.com/security/CVE-2026-31533",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption  The -EBUSY handling in tls_do_encryption(), introduced by commit 859054147318 (\"net: tls: handle backlogging of crypto requests\"), has a use-after-free due to double cleanup of encrypt_pending and the scatterlist entry.  When crypto_aead_encrypt() returns -EBUSY, the request is enqueued to the cryptd backlog and the async callback tls_encrypt_done() will be invoked upon completion. That callback unconditionally restores the scatterlist entry (sge->offset, sge->length) and decrements ctx->encrypt_pending. However, if tls_encrypt_async_wait() returns an error, the synchronous error path in tls_do_encryption() performs the same cleanup again, double-decrementing encrypt_pending and double-restoring the scatterlist.  The double-decrement corrupts the encrypt_pending sentinel (initialized to 1), making tls_encrypt_async_wait() permanently skip the wait for pending async callbacks. A subsequent sendmsg can then free the tls_rec via bpf_exec_tx_verdict() while a cryptd callback is still pending, resulting in a use-after-free when the callback fires on the freed record.  Fix this by skipping the synchronous cleanup when the -EBUSY async wait returns an error, since the callback has already handled encrypt_pending and sge restoration.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-23 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31504",
                        "url": "https://ubuntu.com/security/CVE-2026-31504",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix fanout UAF in packet_release() via NETDEV_UP race  `packet_release()` has a race window where `NETDEV_UP` can re-register a socket into a fanout group's `arr[]` array. The re-registration is not cleaned up by `fanout_release()`, leaving a dangling pointer in the fanout array. `packet_release()` does NOT zero `po->num` in its `bind_lock` section. After releasing `bind_lock`, `po->num` is still non-zero and `po->ifindex` still matches the bound device. A concurrent `packet_notifier(NETDEV_UP)` that already found the socket in `sklist` can re-register the hook. For fanout sockets, this re-registration calls `__fanout_link(sk, po)` which adds the socket back into `f->arr[]` and increments `f->num_members`, but does NOT increment `f->sk_ref`.  The fix sets `po->num` to zero in `packet_release` while `bind_lock` is held to prevent NETDEV_UP from linking, preventing the race window.  This bug was found following an additional audit with Claude Code based on CVE-2025-38617.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-22 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23214",
                        "url": "https://ubuntu.com/security/CVE-2026-23214",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: reject new transactions if the fs is fully read-only  [BUG] There is a bug report where a heavily fuzzed fs is mounted with all rescue mount options, which leads to the following warnings during unmount:    BTRFS: Transaction aborted (error -22)   Modules linked in:   CPU: 0 UID: 0 PID: 9758 Comm: repro.out Not tainted   6.19.0-rc5-00002-gb71e635feefc #7 PREEMPT(full)   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014   RIP: 0010:find_free_extent_update_loop fs/btrfs/extent-tree.c:4208 [inline]   RIP: 0010:find_free_extent+0x52f0/0x5d20 fs/btrfs/extent-tree.c:4611   Call Trace:    <TASK>    btrfs_reserve_extent+0x2cd/0x790 fs/btrfs/extent-tree.c:4705    btrfs_alloc_tree_block+0x1e1/0x10e0 fs/btrfs/extent-tree.c:5157    btrfs_force_cow_block+0x578/0x2410 fs/btrfs/ctree.c:517    btrfs_cow_block+0x3c4/0xa80 fs/btrfs/ctree.c:708    btrfs_search_slot+0xcad/0x2b50 fs/btrfs/ctree.c:2130    btrfs_truncate_inode_items+0x45d/0x2350 fs/btrfs/inode-item.c:499    btrfs_evict_inode+0x923/0xe70 fs/btrfs/inode.c:5628    evict+0x5f4/0xae0 fs/inode.c:837    __dentry_kill+0x209/0x660 fs/dcache.c:670    finish_dput+0xc9/0x480 fs/dcache.c:879    shrink_dcache_for_umount+0xa0/0x170 fs/dcache.c:1661    generic_shutdown_super+0x67/0x2c0 fs/super.c:621    kill_anon_super+0x3b/0x70 fs/super.c:1289    btrfs_kill_super+0x41/0x50 fs/btrfs/super.c:2127    deactivate_locked_super+0xbc/0x130 fs/super.c:474    cleanup_mnt+0x425/0x4c0 fs/namespace.c:1318    task_work_run+0x1d4/0x260 kernel/task_work.c:233    exit_task_work include/linux/task_work.h:40 [inline]    do_exit+0x694/0x22f0 kernel/exit.c:971    do_group_exit+0x21c/0x2d0 kernel/exit.c:1112    __do_sys_exit_group kernel/exit.c:1123 [inline]    __se_sys_exit_group kernel/exit.c:1121 [inline]    __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1121    x64_sys_call+0x2210/0x2210 arch/x86/include/generated/asm/syscalls_64.h:232    do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]    do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94    entry_SYSCALL_64_after_hwframe+0x77/0x7f   RIP: 0033:0x44f639   Code: Unable to access opcode bytes at 0x44f60f.   RSP: 002b:00007ffc15c4e088 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7   RAX: ffffffffffffffda RBX: 00000000004c32f0 RCX: 000000000044f639   RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001   RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 0000000000000000   R10: 0000000000000000 R11: 0000000000000246 R12: 00000000004c32f0   R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001    </TASK>  Since rescue mount options will mark the full fs read-only, there should be no new transaction triggered.  But during unmount we will evict all inodes, which can trigger a new transaction, and triggers warnings on a heavily corrupted fs.  [CAUSE] Btrfs allows new transaction even on a read-only fs, this is to allow log replay happen even on read-only mounts, just like what ext4/xfs do.  However with rescue mount options, the fs is fully read-only and cannot be remounted read-write, thus in that case we should also reject any new transactions.  [FIX] If we find the fs has rescue mount options, we should treat the fs as error, so that no new transaction can be started.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23213",
                        "url": "https://ubuntu.com/security/CVE-2026-23213",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/pm: Disable MMIO access during SMU Mode 1 reset  During Mode 1 reset, the ASIC undergoes a reset cycle and becomes temporarily inaccessible via PCIe. Any attempt to access MMIO registers during this window (e.g., from interrupt handlers or other driver threads) can result in uncompleted PCIe transactions, leading to NMI panics or system hangs.  To prevent this, set the `no_hw_access` flag to true immediately after triggering the reset. This signals other driver components to skip register accesses while the device is offline.  A memory barrier `smp_mb()` is added to ensure the flag update is globally visible to all cores before the driver enters the sleep/wait state.  (cherry picked from commit 7edb503fe4b6d67f47d8bb0dfafb8e699bb0f8a4)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71225",
                        "url": "https://ubuntu.com/security/CVE-2025-71225",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: suspend array while updating raid_disks via sysfs  In raid1_reshape(), freeze_array() is called before modifying the r1bio memory pool (conf->r1bio_pool) and conf->raid_disks, and unfreeze_array() is called after the update is completed.  However, freeze_array() only waits until nr_sync_pending and (nr_pending - nr_queued) of all buckets reaches zero. When an I/O error occurs, nr_queued is increased and the corresponding r1bio is queued to either retry_list or bio_end_io_list. As a result, freeze_array() may unblock before these r1bios are released.  This can lead to a situation where conf->raid_disks and the mempool have already been updated while queued r1bios, allocated with the old raid_disks value, are later released. Consequently, free_r1bio() may access memory out of bounds in put_all_bios() and release r1bios of the wrong size to the new mempool, potentially causing issues with the mempool as well.  Since only normal I/O might increase nr_queued while an I/O error occurs, suspending the array avoids this issue.  Note: Updating raid_disks via ioctl SET_ARRAY_INFO already suspends the array. Therefore, we suspend the array when updating raid_disks via sysfs to avoid this issue too.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68823",
                        "url": "https://ubuntu.com/security/CVE-2025-68823",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ublk: fix deadlock when reading partition table  When one process(such as udev) opens ublk block device (e.g., to read the partition table via bdev_open()), a deadlock[1] can occur:  1. bdev_open() grabs disk->open_mutex 2. The process issues read I/O to ublk backend to read partition table 3. In __ublk_complete_rq(), blk_update_request() or blk_mq_end_request()    runs bio->bi_end_io() callbacks 4. If this triggers fput() on file descriptor of ublk block device, the    work may be deferred to current task's task work (see fput() implementation) 5. This eventually calls blkdev_release() from the same context 6. blkdev_release() tries to grab disk->open_mutex again 7. Deadlock: same task waiting for a mutex it already holds  The fix is to run blk_update_request() and blk_mq_end_request() with bottom halves disabled. This forces blkdev_release() to run in kernel work-queue context instead of current task work context, and allows ublk server to make forward progress, and avoids the deadlock.  [axboe: rewrite comment in ublk]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23191",
                        "url": "https://ubuntu.com/security/CVE-2026-23191",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: aloop: Fix racy access at PCM trigger  The PCM trigger callback of aloop driver tries to check the PCM state and stop the stream of the tied substream in the corresponding cable. Since both check and stop operations are performed outside the cable lock, this may result in UAF when a program attempts to trigger frequently while opening/closing the tied stream, as spotted by fuzzers.  For addressing the UAF, this patch changes two things: - It covers the most of code in loopback_check_format() with   cable->lock spinlock, and add the proper NULL checks.  This avoids   already some racy accesses. - In addition, now we try to check the state of the capture PCM stream   that may be stopped in this function, which was the major pain point   leading to UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23215",
                        "url": "https://ubuntu.com/security/CVE-2026-23215",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/vmware: Fix hypercall clobbers  Fedora QA reported the following panic:    BUG: unable to handle page fault for address: 0000000040003e54   #PF: supervisor write access in kernel mode   #PF: error_code(0x0002) - not-present page   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20251119-3.fc43 11/19/2025   RIP: 0010:vmware_hypercall4.constprop.0+0x52/0x90   ..   Call Trace:    vmmouse_report_events+0x13e/0x1b0    psmouse_handle_byte+0x15/0x60    ps2_interrupt+0x8a/0xd0    ...  because the QEMU VMware mouse emulation is buggy, and clears the top 32 bits of %rdi that the kernel kept a pointer in.  The QEMU vmmouse driver saves and restores the register state in a \"uint32_t data[6];\" and as a result restores the state with the high bits all cleared.  RDI originally contained the value of a valid kernel stack address (0xff5eeb3240003e54).  After the vmware hypercall it now contains 0x40003e54, and we get a page fault as a result when it is dereferenced.  The proper fix would be in QEMU, but this works around the issue in the kernel to keep old setups working, when old kernels had not happened to keep any state in %rdi over the hypercall.  In theory this same issue exists for all the hypercalls in the vmmouse driver; in practice it has only been seen with vmware_hypercall3() and vmware_hypercall4().  For now, just mark RDI/RSI as clobbered for those two calls.  This should have a minimal effect on code generation overall as it should be rare for the compiler to want to make RDI/RSI live across hypercalls.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23182",
                        "url": "https://ubuntu.com/security/CVE-2026-23182",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra: Fix a memory leak in tegra_slink_probe()  In tegra_slink_probe(), when platform_get_irq() fails, it directly returns from the function with an error code, which causes a memory leak.  Replace it with a goto label to ensure proper cleanup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23190",
                        "url": "https://ubuntu.com/security/CVE-2026-23190",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: amd: fix memory leak in acp3x pdm dma ops",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23254",
                        "url": "https://ubuntu.com/security/CVE-2026-23254",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: gro: fix outer network offset  The udp GRO complete stage assumes that all the packets inserted the RX have the `encapsulation` flag zeroed. Such assumption is not true, as a few H/W NICs can set such flag when H/W offloading the checksum for an UDP encapsulated traffic, the tun driver can inject GSO packets with UDP encapsulation and the problematic layout can also be created via a veth based setup.  Due to the above, in the problematic scenarios, udp4_gro_complete() uses the wrong network offset (inner instead of outer) to compute the outer UDP header pseudo checksum, leading to csum validation errors later on in packet processing.  Address the issue always clearing the encapsulation flag at GRO completion time. Such flag will be set again as needed for encapsulated packets by udp_gro_complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23180",
                        "url": "https://ubuntu.com/security/CVE-2026-23180",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: add bounds check for if_id in IRQ handler  The IRQ handler extracts if_id from the upper 16 bits of the hardware status register and uses it to index into ethsw->ports[] without validation. Since if_id can be any 16-bit value (0-65535) but the ports array is only allocated with sw_attr.num_ifs elements, this can lead to an out-of-bounds read potentially.  Add a bounds check before accessing the array, consistent with the existing validation in dpaa2_switch_rx().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23256",
                        "url": "https://ubuntu.com/security/CVE-2026-23256",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in VF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Compile tested only. Issue found using code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23257",
                        "url": "https://ubuntu.com/security/CVE-2026-23257",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in PF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Also, decrement i in the devlink_alloc failure path to point to the last successfully allocated index.  Compile tested only. Issue found using code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23258",
                        "url": "https://ubuntu.com/security/CVE-2026-23258",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Initialize netdev pointer before queue setup  In setup_nic_devices(), the netdev is allocated using alloc_etherdev_mq(). However, the pointer to this structure is stored in oct->props[i].netdev only after the calls to netif_set_real_num_rx_queues() and netif_set_real_num_tx_queues().  If either of these functions fails, setup_nic_devices() returns an error without freeing the allocated netdev. Since oct->props[i].netdev is still NULL at this point, the cleanup function liquidio_destroy_nic_device() will fail to find and free the netdev, resulting in a memory leak.  Fix this by initializing oct->props[i].netdev before calling the queue setup functions. This ensures that the netdev is properly accessible for cleanup in case of errors.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23206",
                        "url": "https://ubuntu.com/security/CVE-2026-23206",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: prevent ZERO_SIZE_PTR dereference when num_ifs is zero  The driver allocates arrays for ports, FDBs, and filter blocks using kcalloc() with ethsw->sw_attr.num_ifs as the element count. When the device reports zero interfaces (either due to hardware configuration or firmware issues), kcalloc(0, ...) returns ZERO_SIZE_PTR (0x10) instead of NULL.  Later in dpaa2_switch_probe(), the NAPI initialization unconditionally accesses ethsw->ports[0]->netdev, which attempts to dereference ZERO_SIZE_PTR (address 0x10), resulting in a kernel panic.  Add a check to ensure num_ifs is greater than zero after retrieving device attributes. This prevents the zero-sized allocations and subsequent invalid pointer dereference.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23204",
                        "url": "https://ubuntu.com/security/CVE-2026-23204",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: cls_u32: use skb_header_pointer_careful()  skb_header_pointer() does not fully validate negative @offset values.  Use skb_header_pointer_careful() instead.  GangMin Kim provided a report and a repro fooling u32_classify():  BUG: KASAN: slab-out-of-bounds in u32_classify+0x1180/0x11b0 net/sched/cls_u32.c:221",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23205",
                        "url": "https://ubuntu.com/security/CVE-2026-23205",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/client: fix memory leak in smb2_open_file()  Reproducer:    1. server: directories are exported read-only   2. client: mount -t cifs //${server_ip}/export /mnt   3. client: dd if=/dev/zero of=/mnt/file bs=512 count=1000 oflag=direct   4. client: umount /mnt   5. client: sleep 1   6. client: modprobe -r cifs  The error message is as follows:   =============================================================================   BUG cifs_small_rq (Not tainted): Objects remaining on __kmem_cache_shutdown()  -----------------------------------------------------------------------------    Object 0x00000000d47521be @offset=14336   ...   WARNING: mm/slub.c:1251 at __kmem_cache_shutdown+0x34e/0x440, CPU#0: modprobe/1577   ...   Call Trace:    <TASK>    kmem_cache_destroy+0x94/0x190    cifs_destroy_request_bufs+0x3e/0x50 [cifs]    cleanup_module+0x4e/0x540 [cifs]    __se_sys_delete_module+0x278/0x400    __x64_sys_delete_module+0x5f/0x70    x64_sys_call+0x2299/0x2ff0    do_syscall_64+0x89/0x350    entry_SYSCALL_64_after_hwframe+0x76/0x7e   ...   kmem_cache_destroy cifs_small_rq: Slab cache still has objects when called from cifs_destroy_request_bufs+0x3e/0x50 [cifs]   WARNING: mm/slab_common.c:532 at kmem_cache_destroy+0x16b/0x190, CPU#0: modprobe/1577",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23176",
                        "url": "https://ubuntu.com/security/CVE-2026-23176",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: toshiba_haps: Fix memory leaks in add/remove routines  toshiba_haps_add() leaks the haps object allocated by it if it returns an error after allocating that object successfully.  toshiba_haps_remove() does not free the object pointed to by toshiba_haps before clearing that pointer, so it becomes unreachable allocated memory.  Address these memory leaks by using devm_kzalloc() for allocating the memory in question.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23216",
                        "url": "https://ubuntu.com/security/CVE-2026-23216",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_conn_usage_count()  In iscsit_dec_conn_usage_count(), the function calls complete() while holding the conn->conn_usage_lock. As soon as complete() is invoked, the waiter (such as iscsit_close_connection()) may wake up and proceed to free the iscsit_conn structure.  If the waiter frees the memory before the current thread reaches spin_unlock_bh(), it results in a KASAN slab-use-after-free as the function attempts to release a lock within the already-freed connection structure.  Fix this by releasing the spinlock before calling complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23193",
                        "url": "https://ubuntu.com/security/CVE-2026-23193",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_session_usage_count()  In iscsit_dec_session_usage_count(), the function calls complete() while holding the sess->session_usage_lock. Similar to the connection usage count logic, the waiter signaled by complete() (e.g., in the session release path) may wake up and free the iscsit_session structure immediately.  This creates a race condition where the current thread may attempt to execute spin_unlock_bh() on a session structure that has already been deallocated, resulting in a KASAN slab-use-after-free.  To resolve this, release the session_usage_lock before calling complete() to ensure all dereferences of the sess pointer are finished before the waiter is allowed to proceed with deallocation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23260",
                        "url": "https://ubuntu.com/security/CVE-2026-23260",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: maple: free entry on mas_store_gfp() failure  regcache_maple_write() allocates a new block ('entry') to merge adjacent ranges and then stores it with mas_store_gfp(). When mas_store_gfp() fails, the new 'entry' remains allocated and is never freed, leaking memory.  Free 'entry' on the failure path; on success continue freeing the replaced neighbor blocks ('lower', 'upper').",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23179",
                        "url": "https://ubuntu.com/security/CVE-2026-23179",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: fixup hang in nvmet_tcp_listen_data_ready()  When the socket is closed while in TCP_LISTEN a callback is run to flush all outstanding packets, which in turns calls nvmet_tcp_listen_data_ready() with the sk_callback_lock held. So we need to check if we are in TCP_LISTEN before attempting to get the sk_callback_lock() to avoid a deadlock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23261",
                        "url": "https://ubuntu.com/security/CVE-2026-23261",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: release admin tagset if init fails  nvme_fabrics creates an NVMe/FC controller in following path:      nvmf_dev_write()       -> nvmf_create_ctrl()         -> nvme_fc_create_ctrl()           -> nvme_fc_init_ctrl()  nvme_fc_init_ctrl() allocates the admin blk-mq resources right after nvme_add_ctrl() succeeds.  If any of the subsequent steps fail (changing the controller state, scheduling connect work, etc.), we jump to the fail_ctrl path, which tears down the controller references but never frees the admin queue/tag set.  The leaked blk-mq allocations match the kmemleak report seen during blktests nvme/fc.  Check ctrl->ctrl.admin_tagset in the fail_ctrl path and call nvme_remove_admin_tag_set() when it is set so that all admin queue allocations are reclaimed whenever controller setup aborts.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23178",
                        "url": "https://ubuntu.com/security/CVE-2026-23178",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()  `i2c_hid_xfer` is used to read `recv_len + sizeof(__le16)` bytes of data into `ihid->rawbuf`.  The former can come from the userspace in the hidraw driver and is only bounded by HID_MAX_BUFFER_SIZE(16384) by default (unless we also set `max_buffer_size` field of `struct hid_ll_driver` which we do not).  The latter has size determined at runtime by the maximum size of different report types you could receive on any particular device and can be a much smaller value.  Fix this by truncating `recv_len` to `ihid->bufsize - sizeof(__le16)`.  The impact is low since access to hidraw devices requires root.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71268",
                        "url": "https://ubuntu.com/security/CVE-2025-71268",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix reservation leak in some error paths when inserting inline extent  If we fail to allocate a path or join a transaction, we return from __cow_file_range_inline() without freeing the reserved qgroup data, resulting in a leak. Fix this by ensuring we call btrfs_qgroup_free_data() in such cases.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71270",
                        "url": "https://ubuntu.com/security/CVE-2025-71270",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: Enable exception fixup for specific ADE subcode  This patch allows the LoongArch BPF JIT to handle recoverable memory access errors generated by BPF_PROBE_MEM* instructions.  When a BPF program performs memory access operations, the instructions it executes may trigger ADEM exceptions. The kernel’s built-in BPF exception table mechanism (EX_TYPE_BPF) will generate corresponding exception fixup entries in the JIT compilation phase; however, the architecture-specific trap handling function needs to proactively call the common fixup routine to achieve exception recovery.  do_ade(): fix EX_TYPE_BPF memory access exceptions for BPF programs, ensure safe execution.  Relevant test cases: illegal address access tests in module_attach and subprogs_extable of selftests/bpf.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71220",
                        "url": "https://ubuntu.com/security/CVE-2025-71220",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/server: call ksmbd_session_rpc_close() on error path in create_smb2_pipe()  When ksmbd_iov_pin_rsp() fails, we should call ksmbd_session_rpc_close().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71222",
                        "url": "https://ubuntu.com/security/CVE-2025-71222",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: wlcore: ensure skb headroom before skb_push  This avoids occasional skb_under_panic Oops from wl1271_tx_work. In this case, headroom is less than needed (typically 110 - 94 = 16 bytes).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71224",
                        "url": "https://ubuntu.com/security/CVE-2025-71224",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: ocb: skip rx_no_sta when interface is not joined  ieee80211_ocb_rx_no_sta() assumes a valid channel context, which is only present after JOIN_OCB.  RX may run before JOIN_OCB is executed, in which case the OCB interface is not operational. Skip RX peer handling when the interface is not joined to avoid warnings in the RX path.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23262",
                        "url": "https://ubuntu.com/security/CVE-2026-23262",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gve: Fix stats report corruption on queue count change  The driver and the NIC share a region in memory for stats reporting. The NIC calculates its offset into this region based on the total size of the stats region and the size of the NIC's stats.  When the number of queues is changed, the driver's stats region is resized. If the queue count is increased, the NIC can write past the end of the allocated stats region, causing memory corruption. If the queue count is decreased, there is a gap between the driver and NIC stats, leading to incorrect stats reporting.  This change fixes the issue by allocating stats region with maximum size, and the offset calculation for NIC stats is changed to match with the calculation of the NIC.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38201",
                        "url": "https://ubuntu.com/security/CVE-2025-38201",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX  Otherwise, it is possible to hit WARN_ON_ONCE in __kvmalloc_node_noprof() when resizing hashtable because __GFP_NOWARN is unset.  Similar to:    b541ba7d1f5a (\"netfilter: conntrack: clamp maximum hashtable size to INT_MAX\")",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-07-04 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23198",
                        "url": "https://ubuntu.com/security/CVE-2026-23198",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Don't clobber irqfd routing type when deassigning irqfd  When deassigning a KVM_IRQFD, don't clobber the irqfd's copy of the IRQ's routing entry as doing so breaks kvm_arch_irq_bypass_del_producer() on x86 and arm64, which explicitly look for KVM_IRQ_ROUTING_MSI.  Instead, to handle a concurrent routing update, verify that the irqfd is still active before consuming the routing information.  As evidenced by the x86 and arm64 bugs, and another bug in kvm_arch_update_irqfd_routing() (see below), clobbering the entry type without notifying arch code is surprising and error prone.  As a bonus, checking that the irqfd is active provides a convenient location for documenting _why_ KVM must not consume the routing entry for an irqfd that is in the process of being deassigned: once the irqfd is deleted from the list (which happens *before* the eventfd is detached), it will no longer receive updates via kvm_irq_routing_update(), and so KVM could deliver an event using stale routing information (relative to KVM_SET_GSI_ROUTING returning to userspace).  As an even better bonus, explicitly checking for the irqfd being active fixes a similar bug to the one the clobbering is trying to prevent: if an irqfd is deactivated, and then its routing is changed, kvm_irq_routing_update() won't invoke kvm_arch_update_irqfd_routing() (because the irqfd isn't in the list).  And so if the irqfd is in bypass mode, IRQs will continue to be posted using the old routing information.  As for kvm_arch_irq_bypass_del_producer(), clobbering the routing type results in KVM incorrectly keeping the IRQ in bypass mode, which is especially problematic on AMD as KVM tracks IRQs that are being posted to a vCPU in a list whose lifetime is tied to the irqfd.  Without the help of KASAN to detect use-after-free, the most common sympton on AMD is a NULL pointer deref in amd_iommu_update_ga() due to the memory for irqfd structure being re-allocated and zeroed, resulting in irqfd->irq_bypass_data being NULL when read by avic_update_iommu_vcpu_affinity():    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 40cf2b9067 P4D 40cf2b9067 PUD 408362a067 PMD 0   Oops: Oops: 0000 [#1] SMP   CPU: 6 UID: 0 PID: 40383 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--5dddc257e6b2-irqfd #31 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:amd_iommu_update_ga+0x19/0xe0   Call Trace:    <TASK>    avic_update_iommu_vcpu_affinity+0x3d/0x90 [kvm_amd]    __avic_vcpu_load+0xf4/0x130 [kvm_amd]    kvm_arch_vcpu_load+0x89/0x210 [kvm]    vcpu_load+0x30/0x40 [kvm]    kvm_arch_vcpu_ioctl_run+0x45/0x620 [kvm]    kvm_vcpu_ioctl+0x571/0x6a0 [kvm]    __se_sys_ioctl+0x6d/0xb0    do_syscall_64+0x6f/0x9d0    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x46893b     </TASK>   ---[ end trace 0000000000000000 ]---  If AVIC is inhibited when the irfd is deassigned, the bug will manifest as list corruption, e.g. on the next irqfd assignment.    list_add corruption. next->prev should be prev (ffff8d474d5cd588),                        but was 0000000000000000. (next=ffff8d8658f86530).   ------------[ cut here ]------------   kernel BUG at lib/list_debug.c:31!   Oops: invalid opcode: 0000 [#1] SMP   CPU: 128 UID: 0 PID: 80818 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--f19dc4d680ba-irqfd #28 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:__list_add_valid_or_report+0x97/0xc0   Call Trace:    <TASK>    avic_pi_update_irte+0x28e/0x2b0 [kvm_amd]    kvm_pi_update_irte+0xbf/0x190 [kvm]    kvm_arch_irq_bypass_add_producer+0x72/0x90 [kvm]    irq_bypass_register_consumer+0xcd/0x170 [irqbypa ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23264",
                        "url": "https://ubuntu.com/security/CVE-2026-23264",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Revert \"drm/amd: Check if ASPM is enabled from PCIe subsystem\"  This reverts commit 7294863a6f01248d72b61d38478978d638641bee.  This commit was erroneously applied again after commit 0ab5d711ec74 (\"drm/amd: Refactor `amdgpu_aspm` to be evaluated per device\") removed it, leading to very hard to debug crashes, when used with a system with two AMD GPUs of which only one supports ASPM.  (cherry picked from commit 97a9689300eb2b393ba5efc17c8e5db835917080)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-18 18:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23187",
                        "url": "https://ubuntu.com/security/CVE-2026-23187",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: fix out-of-range access of bc->domains  Fix out-of-range access of bc->domains in imx8m_blk_ctrl_remove().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23148",
                        "url": "https://ubuntu.com/security/CVE-2026-23148",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference  There is a race condition in nvmet_bio_done() that can cause a NULL pointer dereference in blk_cgroup_bio_start():  1. nvmet_bio_done() is called when a bio completes 2. nvmet_req_complete() is called, which invokes req->ops->queue_response(req) 3. The queue_response callback can re-queue and re-submit the same request 4. The re-submission reuses the same inline_bio from nvmet_req 5. Meanwhile, nvmet_req_bio_put() (called after nvmet_req_complete)    invokes bio_uninit() for inline_bio, which sets bio->bi_blkg to NULL 6. The re-submitted bio enters submit_bio_noacct_nocheck() 7. blk_cgroup_bio_start() dereferences bio->bi_blkg, causing a crash:    BUG: kernel NULL pointer dereference, address: 0000000000000028   #PF: supervisor read access in kernel mode   RIP: 0010:blk_cgroup_bio_start+0x10/0xd0   Call Trace:    submit_bio_noacct_nocheck+0x44/0x250    nvmet_bdev_execute_rw+0x254/0x370 [nvmet]    process_one_work+0x193/0x3c0    worker_thread+0x281/0x3a0  Fix this by reordering nvmet_bio_done() to call nvmet_req_bio_put() BEFORE nvmet_req_complete(). This ensures the bio is cleaned up before the request can be re-submitted, preventing the race condition.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23166",
                        "url": "https://ubuntu.com/security/CVE-2026-23166",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ice: Fix NULL pointer dereference in ice_vsi_set_napi_queues  Add NULL pointer checks in ice_vsi_set_napi_queues() to prevent crashes during resume from suspend when rings[q_idx]->q_vector is NULL.  Tested adaptor: 60:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller E810-XXV for SFP [8086:159b] (rev 02)         Subsystem: Intel Corporation Ethernet Network Adapter E810-XXV-2 [8086:4003]  SR-IOV state: both disabled and enabled can reproduce this issue.  kernel version: v6.18  Reproduce steps: Boot up and execute suspend like systemctl suspend or rtcwake.  Log: <1>[  231.443607] BUG: kernel NULL pointer dereference, address: 0000000000000040 <1>[  231.444052] #PF: supervisor read access in kernel mode <1>[  231.444484] #PF: error_code(0x0000) - not-present page <6>[  231.444913] PGD 0 P4D 0 <4>[  231.445342] Oops: Oops: 0000 [#1] SMP NOPTI <4>[  231.446635] RIP: 0010:netif_queue_set_napi+0xa/0x170 <4>[  231.447067] Code: 31 f6 31 ff c3 cc cc cc cc 0f 1f 80 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 48 85 c9 74 0b <48> 83 79 30 00 0f 84 39 01 00 00 55 41 89 d1 49 89 f8 89 f2 48 89 <4>[  231.447513] RSP: 0018:ffffcc780fc078c0 EFLAGS: 00010202 <4>[  231.447961] RAX: ffff8b848ca30400 RBX: ffff8b848caf2028 RCX: 0000000000000010 <4>[  231.448443] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8b848dbd4000 <4>[  231.448896] RBP: ffffcc780fc078e8 R08: 0000000000000000 R09: 0000000000000000 <4>[  231.449345] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001 <4>[  231.449817] R13: ffff8b848dbd4000 R14: ffff8b84833390c8 R15: 0000000000000000 <4>[  231.450265] FS:  00007c7b29e9d740(0000) GS:ffff8b8c068e2000(0000) knlGS:0000000000000000 <4>[  231.450715] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 <4>[  231.451179] CR2: 0000000000000040 CR3: 000000030626f004 CR4: 0000000000f72ef0 <4>[  231.451629] PKRU: 55555554 <4>[  231.452076] Call Trace: <4>[  231.452549]  <TASK> <4>[  231.452996]  ? ice_vsi_set_napi_queues+0x4d/0x110 [ice] <4>[  231.453482]  ice_resume+0xfd/0x220 [ice] <4>[  231.453977]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.454425]  pci_pm_resume+0x8c/0x140 <4>[  231.454872]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.455347]  dpm_run_callback+0x5f/0x160 <4>[  231.455796]  ? dpm_wait_for_superior+0x107/0x170 <4>[  231.456244]  device_resume+0x177/0x270 <4>[  231.456708]  dpm_resume+0x209/0x2f0 <4>[  231.457151]  dpm_resume_end+0x15/0x30 <4>[  231.457596]  suspend_devices_and_enter+0x1da/0x2b0 <4>[  231.458054]  enter_state+0x10e/0x570  Add defensive checks for both the ring pointer and its q_vector before dereferencing, allowing the system to resume successfully even when q_vectors are unmapped.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23151",
                        "url": "https://ubuntu.com/security/CVE-2026-23151",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: MGMT: Fix memory leak in set_ssp_complete  Fix memory leak in set_ssp_complete() where mgmt_pending_cmd structures are not freed after being removed from the pending list.  Commit 302a1f674c00 (\"Bluetooth: MGMT: Fix possible UAFs\") replaced mgmt_pending_foreach() calls with individual command handling but missed adding mgmt_pending_free() calls in both error and success paths of set_ssp_complete(). Other completion functions like set_le_complete() were fixed correctly in the same commit.  This causes a memory leak of the mgmt_pending_cmd structure and its associated parameter data for each SSP command that completes.  Add the missing mgmt_pending_free(cmd) calls in both code paths to fix the memory leak. Also fix the same issue in set_advertising_complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23163",
                        "url": "https://ubuntu.com/security/CVE-2026-23163",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: fix NULL pointer dereference in amdgpu_gmc_filter_faults_remove  On APUs such as Raven and Renoir (GC 9.1.0, 9.2.2, 9.3.0), the ih1 and ih2 interrupt ring buffers are not initialized. This is by design, as these secondary IH rings are only available on discrete GPUs. See vega10_ih_sw_init() which explicitly skips ih1/ih2 initialization when AMD_IS_APU is set.  However, amdgpu_gmc_filter_faults_remove() unconditionally uses ih1 to get the timestamp of the last interrupt entry. When retry faults are enabled on APUs (noretry=0), this function is called from the SVM page fault recovery path, resulting in a NULL pointer dereference when amdgpu_ih_decode_iv_ts_helper() attempts to access ih->ring[].  The crash manifests as:    BUG: kernel NULL pointer dereference, address: 0000000000000004   RIP: 0010:amdgpu_ih_decode_iv_ts_helper+0x22/0x40 [amdgpu]   Call Trace:    amdgpu_gmc_filter_faults_remove+0x60/0x130 [amdgpu]    svm_range_restore_pages+0xae5/0x11c0 [amdgpu]    amdgpu_vm_handle_fault+0xc8/0x340 [amdgpu]    gmc_v9_0_process_interrupt+0x191/0x220 [amdgpu]    amdgpu_irq_dispatch+0xed/0x2c0 [amdgpu]    amdgpu_ih_process+0x84/0x100 [amdgpu]  This issue was exposed by commit 1446226d32a4 (\"drm/amdgpu: Remove GC HW IP 9.3.0 from noretry=1\") which changed the default for Renoir APU from noretry=1 to noretry=0, enabling retry fault handling and thus exercising the buggy code path.  Fix this by adding a check for ih1.ring_size before attempting to use it. Also restore the soft_ih support from commit dd299441654f (\"drm/amdgpu: Rework retry fault removal\").  This is needed if the hardware doesn't support secondary HW IH rings.  v2: additional updates (Alex)  (cherry picked from commit 6ce8d536c80aa1f059e82184f0d1994436b1d526)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23159",
                        "url": "https://ubuntu.com/security/CVE-2026-23159",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf: sched: Fix perf crash with new is_user_task() helper  In order to do a user space stacktrace the current task needs to be a user task that has executed in user space. It use to be possible to test if a task is a user task or not by simply checking the task_struct mm field. If it was non NULL, it was a user task and if not it was a kernel task.  But things have changed over time, and some kernel tasks now have their own mm field.  An idea was made to instead test PF_KTHREAD and two functions were used to wrap this check in case it became more complex to test if a task was a user task or not[1]. But this was rejected and the C code simply checked the PF_KTHREAD directly.  It was later found that not all kernel threads set PF_KTHREAD. The io-uring helpers instead set PF_USER_WORKER and this needed to be added as well.  But checking the flags is still not enough. There's a very small window when a task exits that it frees its mm field and it is set back to NULL. If perf were to trigger at this moment, the flags test would say its a user space task but when perf would read the mm field it would crash with at NULL pointer dereference.  Now there are flags that can be used to test if a task is exiting, but they are set in areas that perf may still want to profile the user space task (to see where it exited). The only real test is to check both the flags and the mm field.  Instead of making this modification in every location, create a new is_user_task() helper function that does all the tests needed to know if it is safe to read the user space memory or not.  [1] https://lore.kernel.org/all/20250425204120.639530125@goodmis.org/",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-58096",
                        "url": "https://ubuntu.com/security/CVE-2024-58096",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode  ath11k_hal_srng_* should be used with srng->lock to protect srng data.  For ath11k_dp_rx_mon_dest_process() and ath11k_dp_full_mon_process_rx(), they use ath11k_hal_srng_* for many times but never call srng->lock.  So when running (full) monitor mode, warning will occur: RIP: 0010:ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k] Call Trace:  ? ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k]  ath11k_dp_rx_process_mon_status+0xc45/0x1190 [ath11k]  ? idr_alloc_u32+0x97/0xd0  ath11k_dp_rx_process_mon_rings+0x32a/0x550 [ath11k]  ath11k_dp_service_srng+0x289/0x5a0 [ath11k]  ath11k_pcic_ext_grp_napi_poll+0x30/0xd0 [ath11k]  __napi_poll+0x30/0x1f0  net_rx_action+0x198/0x320  __do_softirq+0xdd/0x319  So add srng->lock for them to avoid such warnings.  Inorder to fetch the srng->lock, should change srng's definition from 'void' to 'struct hal_srng'. And initialize them elsewhere to prevent one line of code from being too long. This is consistent with other ring process functions, such as ath11k_dp_process_rx().  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40039",
                        "url": "https://ubuntu.com/security/CVE-2025-40039",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix race condition in RPC handle list access  The 'sess->rpc_handle_list' XArray manages RPC handles within a ksmbd session. Access to this list is intended to be protected by 'sess->rpc_lock' (an rw_semaphore). However, the locking implementation was flawed, leading to potential race conditions.  In ksmbd_session_rpc_open(), the code incorrectly acquired only a read lock before calling xa_store() and xa_erase(). Since these operations modify the XArray structure, a write lock is required to ensure exclusive access and prevent data corruption from concurrent modifications.  Furthermore, ksmbd_session_rpc_method() accessed the list using xa_load() without holding any lock at all. This could lead to reading inconsistent data or a potential use-after-free if an entry is concurrently removed and the pointer is dereferenced.  Fix these issues by: 1. Using down_write() and up_write() in ksmbd_session_rpc_open()    to ensure exclusive access during XArray modification, and ensuring    the lock is correctly released on error paths. 2. Adding down_read() and up_read() in ksmbd_session_rpc_method()    to safely protect the lookup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-28 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23093",
                        "url": "https://ubuntu.com/security/CVE-2026-23093",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: smbd: fix dma_unmap_sg() nents  The dma_unmap_sg() functions should be called with the same nents as the dma_map_sg(), not the value the map function returned.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23102",
                        "url": "https://ubuntu.com/security/CVE-2026-23102",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Fix restoration of SVE context  When SME is supported, Restoring SVE signal context can go wrong in a few ways, including placing the task into an invalid state where the kernel may read from out-of-bounds memory (and may potentially take a fatal fault) and/or may kill the task with a SIGKILL.  (1) Restoring a context with SVE_SIG_FLAG_SM set can place the task into     an invalid state where SVCR.SM is set (and sve_state is non-NULL)     but TIF_SME is clear, consequently resuting in out-of-bounds memory     reads and/or killing the task with SIGKILL.      This can only occur in unusual (but legitimate) cases where the SVE     signal context has either been modified by userspace or was saved in     the context of another task (e.g. as with CRIU), as otherwise the     presence of an SVE signal context with SVE_SIG_FLAG_SM implies that     TIF_SME is already set.      While in this state, task_fpsimd_load() will NOT configure SMCR_ELx     (leaving some arbitrary value configured in hardware) before     restoring SVCR and attempting to restore the streaming mode SVE     registers from memory via sve_load_state(). As the value of     SMCR_ELx.LEN may be larger than the task's streaming SVE vector     length, this may read memory outside of the task's allocated     sve_state, reading unrelated data and/or triggering a fault.      While this can result in secrets being loaded into streaming SVE     registers, these values are never exposed. As TIF_SME is clear,     fpsimd_bind_task_to_cpu() will configure CPACR_ELx.SMEN to trap EL0     accesses to streaming mode SVE registers, so these cannot be     accessed directly at EL0. As fpsimd_save_user_state() verifies the     live vector length before saving (S)SVE state to memory, no secret     values can be saved back to memory (and hence cannot be observed via     ptrace, signals, etc).      When the live vector length doesn't match the expected vector length     for the task, fpsimd_save_user_state() will send a fatal SIGKILL     signal to the task. Hence the task may be killed after executing     userspace for some period of time.  (2) Restoring a context with SVE_SIG_FLAG_SM clear does not clear the     task's SVCR.SM. If SVCR.SM was set prior to restoring the context,     then the task will be left in streaming mode unexpectedly, and some     register state will be combined inconsistently, though the task will     be left in legitimate state from the kernel's PoV.      This can only occur in unusual (but legitimate) cases where ptrace     has been used to set SVCR.SM after entry to the sigreturn syscall,     as syscall entry clears SVCR.SM.      In these cases, the the provided SVE register data will be loaded     into the task's sve_state using the non-streaming SVE vector length     and the FPSIMD registers will be merged into this using the     streaming SVE vector length.  Fix (1) by setting TIF_SME when setting SVCR.SM. This also requires ensuring that the task's sme_state has been allocated, but as this could contain live ZA state, it should not be zeroed. Fix (2) by clearing SVCR.SM when restoring a SVE signal context with SVE_SIG_FLAG_SM clear.  For consistency, I've pulled the manipulation of SVCR, TIF_SVE, TIF_SME, and fp_type earlier, immediately after the allocation of sve_state/sme_state, before the restore of the actual register state. This makes it easier to ensure that these are always modified consistently, even if a fault is taken while reading the register data from the signal context. I do not expect any software to depend on the exact state restored when a fault is taken while reading the context.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23170",
                        "url": "https://ubuntu.com/security/CVE-2026-23170",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/imx/tve: fix probe device leak  Make sure to drop the reference taken to the DDC device during probe on probe failure (e.g. probe deferral) and on driver unbind.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23168",
                        "url": "https://ubuntu.com/security/CVE-2026-23168",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  flex_proportions: make fprop_new_period() hardirq safe  Bernd has reported a lockdep splat from flexible proportions code that is essentially complaining about the following race:  <timer fires> run_timer_softirq - we are in softirq context   call_timer_fn     writeout_period       fprop_new_period         write_seqcount_begin(&p->sequence);          <hardirq is raised>         ...         blk_mq_end_request() \t  blk_update_request() \t    ext4_end_bio() \t      folio_end_writeback() \t\t__wb_writeout_add() \t\t  __fprop_add_percpu_max() \t\t    if (unlikely(max_frac < FPROP_FRAC_BASE)) { \t\t      fprop_fraction_percpu() \t\t\tseq = read_seqcount_begin(&p->sequence); \t\t\t  - sees odd sequence so loops indefinitely  Note that a deadlock like this is only possible if the bdi has configured maximum fraction of writeout throughput which is very rare in general but frequent for example for FUSE bdis.  To fix this problem we have to make sure write section of the sequence counter is irqsafe.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23156",
                        "url": "https://ubuntu.com/security/CVE-2026-23156",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  efivarfs: fix error propagation in efivar_entry_get()  efivar_entry_get() always returns success even if the underlying __efivar_entry_get() fails, masking errors.  This may result in uninitialized heap memory being copied to userspace in the efivarfs_file_read() path.  Fix it by returning the error from __efivar_entry_get().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23167",
                        "url": "https://ubuntu.com/security/CVE-2026-23167",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: nci: Fix race between rfkill and nci_unregister_device().  syzbot reported the splat below [0] without a repro.  It indicates that struct nci_dev.cmd_wq had been destroyed before nci_close_device() was called via rfkill.  nci_dev.cmd_wq is only destroyed in nci_unregister_device(), which (I think) was called from virtual_ncidev_close() when syzbot close()d an fd of virtual_ncidev.  The problem is that nci_unregister_device() destroys nci_dev.cmd_wq first and then calls nfc_unregister_device(), which removes the device from rfkill by rfkill_unregister().  So, the device is still visible via rfkill even after nci_dev.cmd_wq is destroyed.  Let's unregister the device from rfkill first in nci_unregister_device().  Note that we cannot call nfc_unregister_device() before nci_close_device() because    1) nfc_unregister_device() calls device_del() which frees      all memory allocated by devm_kzalloc() and linked to      ndev->conn_info_list    2) nci_rx_work() could try to queue nci_conn_info to      ndev->conn_info_list which could be leaked  Thus, nfc_unregister_device() is split into two functions so we can remove rfkill interfaces only before nci_close_device().  [0]: DEBUG_LOCKS_WARN_ON(1) WARNING: kernel/locking/lockdep.c:238 at hlock_class kernel/locking/lockdep.c:238 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at check_wait_context kernel/locking/lockdep.c:4854 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at __lock_acquire+0x39d/0x2cf0 kernel/locking/lockdep.c:5187, CPU#0: syz.0.8675/6349 Modules linked in: CPU: 0 UID: 0 PID: 6349 Comm: syz.0.8675 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/13/2026 RIP: 0010:hlock_class kernel/locking/lockdep.c:238 [inline] RIP: 0010:check_wait_context kernel/locking/lockdep.c:4854 [inline] RIP: 0010:__lock_acquire+0x3a4/0x2cf0 kernel/locking/lockdep.c:5187 Code: 18 00 4c 8b 74 24 08 75 27 90 e8 17 f2 fc 02 85 c0 74 1c 83 3d 50 e0 4e 0e 00 75 13 48 8d 3d 43 f7 51 0e 48 c7 c6 8b 3a de 8d <67> 48 0f b9 3a 90 31 c0 0f b6 98 c4 00 00 00 41 8b 45 20 25 ff 1f RSP: 0018:ffffc9000c767680 EFLAGS: 00010046 RAX: 0000000000000001 RBX: 0000000000040000 RCX: 0000000000080000 RDX: ffffc90013080000 RSI: ffffffff8dde3a8b RDI: ffffffff8ff24ca0 RBP: 0000000000000003 R08: ffffffff8fef35a3 R09: 1ffffffff1fde6b4 R10: dffffc0000000000 R11: fffffbfff1fde6b5 R12: 00000000000012a2 R13: ffff888030338ba8 R14: ffff888030338000 R15: ffff888030338b30 FS:  00007fa5995f66c0(0000) GS:ffff8881256f8000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f7e72f842d0 CR3: 00000000485a0000 CR4: 00000000003526f0 Call Trace:  <TASK>  lock_acquire+0x106/0x330 kernel/locking/lockdep.c:5868  touch_wq_lockdep_map+0xcb/0x180 kernel/workqueue.c:3940  __flush_workqueue+0x14b/0x14f0 kernel/workqueue.c:3982  nci_close_device+0x302/0x630 net/nfc/nci/core.c:567  nci_dev_down+0x3b/0x50 net/nfc/nci/core.c:639  nfc_dev_down+0x152/0x290 net/nfc/core.c:161  nfc_rfkill_set_block+0x2d/0x100 net/nfc/core.c:179  rfkill_set_block+0x1d2/0x440 net/rfkill/core.c:346  rfkill_fop_write+0x461/0x5a0 net/rfkill/core.c:1301  vfs_write+0x29a/0xb90 fs/read_write.c:684  ksys_write+0x150/0x270 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xe2/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa59b39acb9 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fa5995f6028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fa59b615fa0 RCX: 00007fa59b39acb9 RDX: 0000000000000008 RSI: 0000200000000080 RDI: 0000000000000007 RBP: 00007fa59b408bf7 R08: ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23173",
                        "url": "https://ubuntu.com/security/CVE-2026-23173",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: TC, delete flows only for existing peers  When deleting TC steering flows, iterate only over actual devcom peers instead of assuming all possible ports exist. This avoids touching non-existent peers and ensures cleanup is limited to devices the driver is currently connected to.   BUG: kernel NULL pointer dereference, address: 0000000000000008  #PF: supervisor write access in kernel mode  #PF: error_code(0x0002) - not-present page  PGD 133c8a067 P4D 0  Oops: Oops: 0002 [#1] SMP  CPU: 19 UID: 0 PID: 2169 Comm: tc Not tainted 6.18.0+ #156 NONE  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:mlx5e_tc_del_fdb_peers_flow+0xbe/0x200 [mlx5_core]  Code: 00 00 a8 08 74 a8 49 8b 46 18 f6 c4 02 74 9f 4c 8d bf a0 12 00 00 4c 89 ff e8 0e e7 96 e1 49 8b 44 24 08 49 8b 0c 24 4c 89 ff <48> 89 41 08 48 89 08 49 89 2c 24 49 89 5c 24 08 e8 7d ce 96 e1 49  RSP: 0018:ff11000143867528 EFLAGS: 00010246  RAX: 0000000000000000 RBX: dead000000000122 RCX: 0000000000000000  RDX: ff11000143691580 RSI: ff110001026e5000 RDI: ff11000106f3d2a0  RBP: dead000000000100 R08: 00000000000003fd R09: 0000000000000002  R10: ff11000101c75690 R11: ff1100085faea178 R12: ff11000115f0ae78  R13: 0000000000000000 R14: ff11000115f0a800 R15: ff11000106f3d2a0  FS:  00007f35236bf740(0000) GS:ff110008dc809000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000008 CR3: 0000000157a01001 CR4: 0000000000373eb0  Call Trace:   <TASK>   mlx5e_tc_del_flow+0x46/0x270 [mlx5_core]   mlx5e_flow_put+0x25/0x50 [mlx5_core]   mlx5e_delete_flower+0x2a6/0x3e0 [mlx5_core]   tc_setup_cb_reoffload+0x20/0x80   fl_reoffload+0x26f/0x2f0 [cls_flower]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   tcf_block_playback_offloads+0x9e/0x1c0   tcf_block_unbind+0x7b/0xd0   tcf_block_setup+0x186/0x1d0   tcf_block_offload_cmd.isra.0+0xef/0x130   tcf_block_offload_unbind+0x43/0x70   __tcf_block_put+0x85/0x160   ingress_destroy+0x32/0x110 [sch_ingress]   __qdisc_destroy+0x44/0x100   qdisc_graft+0x22b/0x610   tc_get_qdisc+0x183/0x4d0   rtnetlink_rcv_msg+0x2d7/0x3d0   ? rtnl_calcit.isra.0+0x100/0x100   netlink_rcv_skb+0x53/0x100   netlink_unicast+0x249/0x320   ? __alloc_skb+0x102/0x1f0   netlink_sendmsg+0x1e3/0x420   __sock_sendmsg+0x38/0x60   ____sys_sendmsg+0x1ef/0x230   ? copy_msghdr_from_user+0x6c/0xa0   ___sys_sendmsg+0x7f/0xc0   ? ___sys_recvmsg+0x8a/0xc0   ? __sys_sendto+0x119/0x180   __sys_sendmsg+0x61/0xb0   do_syscall_64+0x55/0x640   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7f35238bb764  Code: 15 b9 86 0c 00 f7 d8 64 89 02 b8 ff ff ff ff eb bf 0f 1f 44 00 00 f3 0f 1e fa 80 3d e5 08 0d 00 00 74 13 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 4c c3 0f 1f 00 55 48 89 e5 48 83 ec 20 89 55  RSP: 002b:00007ffed4c35638 EFLAGS: 00000202 ORIG_RAX: 000000000000002e  RAX: ffffffffffffffda RBX: 000055a2efcc75e0 RCX: 00007f35238bb764  RDX: 0000000000000000 RSI: 00007ffed4c356a0 RDI: 0000000000000003  RBP: 00007ffed4c35710 R08: 0000000000000010 R09: 00007f3523984b20  R10: 0000000000000004 R11: 0000000000000202 R12: 00007ffed4c35790  R13: 000000006947df8f R14: 000055a2efcc75e0 R15: 00007ffed4c35780",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23150",
                        "url": "https://ubuntu.com/security/CVE-2026-23150",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: llcp: Fix memleak in nfc_llcp_send_ui_frame().  syzbot reported various memory leaks related to NFC, struct nfc_llcp_sock, sk_buff, nfc_dev, etc. [0]  The leading log hinted that nfc_llcp_send_ui_frame() failed to allocate skb due to sock_error(sk) being -ENXIO.  ENXIO is set by nfc_llcp_socket_release() when struct nfc_llcp_local is destroyed by local_cleanup().  The problem is that there is no synchronisation between nfc_llcp_send_ui_frame() and local_cleanup(), and skb could be put into local->tx_queue after it was purged in local_cleanup():    CPU1                          CPU2   ----                          ----   nfc_llcp_send_ui_frame()      local_cleanup()   |- do {                       '      |- pdu = nfc_alloc_send_skb(..., &err)      |                          .      |                          |- nfc_llcp_socket_release(local, false, ENXIO);      |                          |- skb_queue_purge(&local->tx_queue);     |      |                          '                                         |      |- skb_queue_tail(&local->tx_queue, pdu);                            |     ...                                                                   |      |- pdu = nfc_alloc_send_skb(..., &err)                               |                                       ^._________________________________.'  local_cleanup() is called for struct nfc_llcp_local only after nfc_llcp_remove_local() unlinks it from llcp_devices.  If we hold local->tx_queue.lock then, we can synchronise the thread and nfc_llcp_send_ui_frame().  Let's do that and check list_empty(&local->list) before queuing skb to local->tx_queue in nfc_llcp_send_ui_frame().  [0]: [   56.074943][ T6096] llcp: nfc_llcp_send_ui_frame: Could not allocate PDU (error=-6) [   64.318868][ T5813] kmemleak: 6 new suspected memory leaks (see /sys/kernel/debug/kmemleak) BUG: memory leak unreferenced object 0xffff8881272f6800 (size 1024):   comm \"syz.0.17\", pid 6096, jiffies 4294942766   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     27 00 03 40 00 00 00 00 00 00 00 00 00 00 00 00  '..@............   backtrace (crc da58d84d):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     __do_kmalloc_node mm/slub.c:5645 [inline]     __kmalloc_noprof+0x3e3/0x6b0 mm/slub.c:5658     kmalloc_noprof include/linux/slab.h:961 [inline]     sk_prot_alloc+0x11a/0x1b0 net/core/sock.c:2239     sk_alloc+0x36/0x360 net/core/sock.c:2295     nfc_llcp_sock_alloc+0x37/0x130 net/nfc/llcp_sock.c:979     llcp_sock_create+0x71/0xd0 net/nfc/llcp_sock.c:1044     nfc_sock_create+0xc9/0xf0 net/nfc/af_nfc.c:31     __sock_create+0x1a9/0x340 net/socket.c:1605     sock_create net/socket.c:1663 [inline]     __sys_socket_create net/socket.c:1700 [inline]     __sys_socket+0xb9/0x1a0 net/socket.c:1747     __do_sys_socket net/socket.c:1761 [inline]     __se_sys_socket net/socket.c:1759 [inline]     __x64_sys_socket+0x1b/0x30 net/socket.c:1759     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  BUG: memory leak unreferenced object 0xffff88810fbd9800 (size 240):   comm \"syz.0.17\", pid 6096, jiffies 4294942850   hex dump (first 32 bytes):     68 f0 ff 08 81 88 ff ff 68 f0 ff 08 81 88 ff ff  h.......h.......     00 00 00 00 00 00 00 00 00 68 2f 27 81 88 ff ff  .........h/'....   backtrace (crc 6cc652b1):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5336     __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/sk ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23164",
                        "url": "https://ubuntu.com/security/CVE-2026-23164",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  rocker: fix memory leak in rocker_world_port_post_fini()  In rocker_world_port_pre_init(), rocker_port->wpriv is allocated with kzalloc(wops->port_priv_size, GFP_KERNEL). However, in rocker_world_port_post_fini(), the memory is only freed when wops->port_post_fini callback is set:      if (!wops->port_post_fini)         return;     wops->port_post_fini(rocker_port);     kfree(rocker_port->wpriv);  Since rocker_ofdpa_ops does not implement port_post_fini callback (it is NULL), the wpriv memory allocated for each port is never freed when ports are removed. This leads to a memory leak of sizeof(struct ofdpa_port) bytes per port on every device removal.  Fix this by always calling kfree(rocker_port->wpriv) regardless of whether the port_post_fini callback exists.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23172",
                        "url": "https://ubuntu.com/security/CVE-2026-23172",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: wwan: t7xx: fix potential skb->frags overflow in RX path  When receiving data in the DPMAIF RX path, the t7xx_dpmaif_set_frag_to_skb() function adds page fragments to an skb without checking if the number of fragments has exceeded MAX_SKB_FRAGS. This could lead to a buffer overflow in skb_shinfo(skb)->frags[] array, corrupting adjacent memory and potentially causing kernel crashes or other undefined behavior.  This issue was identified through static code analysis by comparing with a similar vulnerability fixed in the mt76 driver commit b102f0c522cf (\"mt76: fix array overflow on receiving too many fragments for a packet\").  The vulnerability could be triggered if the modem firmware sends packets with excessive fragments. While under normal protocol conditions (MTU 3080 bytes, BAT buffer 3584 bytes), a single packet should not require additional fragments, the kernel should not blindly trust firmware behavior. Malicious, buggy, or compromised firmware could potentially craft packets with more fragments than the kernel expects.  Fix this by adding a bounds check before calling skb_add_rx_frag() to ensure nr_frags does not exceed MAX_SKB_FRAGS.  The check must be performed before unmapping to avoid a page leak and double DMA unmap during device teardown.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23212",
                        "url": "https://ubuntu.com/security/CVE-2026-23212",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: annotate data-races around slave->last_rx  slave->last_rx and slave->target_last_arp_rx[...] can be read and written locklessly. Add READ_ONCE() and WRITE_ONCE() annotations.  syzbot reported:  BUG: KCSAN: data-race in bond_rcv_validate / bond_rcv_validate  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 1:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410 ...  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 0:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410   br_netif_receive_skb net/bridge/br_input.c:30 [inline]   NF_HOOK include/linux/netfilter.h:318 [inline] ...  value changed: 0x0000000100005365 -> 0x0000000100005366",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-18 15:18:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23160",
                        "url": "https://ubuntu.com/security/CVE-2026-23160",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeon_ep: Fix memory leak in octep_device_setup()  In octep_device_setup(), if octep_ctrl_net_init() fails, the function returns directly without unmapping the mapped resources and freeing the allocated configuration memory.  Fix this by jumping to the unsupported_dev label, which performs the necessary cleanup. This aligns with the error handling logic of other paths in this function.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23146",
                        "url": "https://ubuntu.com/security/CVE-2026-23146",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work  hci_uart_set_proto() sets HCI_UART_PROTO_INIT before calling hci_uart_register_dev(), which calls proto->open() to initialize hu->priv. However, if a TTY write wakeup occurs during this window, hci_uart_tx_wakeup() may schedule write_work before hu->priv is initialized, leading to a NULL pointer dereference in hci_uart_write_work() when proto->dequeue() accesses hu->priv.  The race condition is:    CPU0                              CPU1   ----                              ----   hci_uart_set_proto()     set_bit(HCI_UART_PROTO_INIT)     hci_uart_register_dev()                                     tty write wakeup                                       hci_uart_tty_wakeup()                                         hci_uart_tx_wakeup()                                           schedule_work(&hu->write_work)       proto->open(hu)         // initializes hu->priv                                     hci_uart_write_work()                                       hci_uart_dequeue()                                         proto->dequeue(hu)                                           // accesses hu->priv (NULL!)  Fix this by moving set_bit(HCI_UART_PROTO_INIT) after proto->open() succeeds, ensuring hu->priv is initialized before any work can be scheduled.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23394",
                        "url": "https://ubuntu.com/security/CVE-2026-23394",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  af_unix: Give up GC if MSG_PEEK intervened.  Igor Ushakov reported that GC purged the receive queue of an alive socket due to a race with MSG_PEEK with a nice repro.  This is the exact same issue previously fixed by commit cbcf01128d0a (\"af_unix: fix garbage collect vs MSG_PEEK\").  After GC was replaced with the current algorithm, the cited commit removed the locking dance in unix_peek_fds() and reintroduced the same issue.  The problem is that MSG_PEEK bumps a file refcount without interacting with GC.  Consider an SCC containing sk-A and sk-B, where sk-A is close()d but can be recv()ed via sk-B.  The bad thing happens if sk-A is recv()ed with MSG_PEEK from sk-B and sk-B is close()d while GC is checking unix_vertex_dead() for sk-A and sk-B.    GC thread                    User thread   ---------                    -----------   unix_vertex_dead(sk-A)   -> true   <------.                     \\                      `------   recv(sk-B, MSG_PEEK)               invalidate !!    -> sk-A's file refcount : 1 -> 2                                 close(sk-B)                                -> sk-B's file refcount : 2 -> 1   unix_vertex_dead(sk-B)   -> true  Initially, sk-A's file refcount is 1 by the inflight fd in sk-B recvq.  GC thinks sk-A is dead because the file refcount is the same as the number of its inflight fds.  However, sk-A's file refcount is bumped silently by MSG_PEEK, which invalidates the previous evaluation.  At this moment, sk-B's file refcount is 2; one by the open fd, and one by the inflight fd in sk-A.  The subsequent close() releases one refcount by the former.  Finally, GC incorrectly concludes that both sk-A and sk-B are dead.  One option is to restore the locking dance in unix_peek_fds(), but we can resolve this more elegantly thanks to the new algorithm.  The point is that the issue does not occur without the subsequent close() and we actually do not need to synchronise MSG_PEEK with the dead SCC detection.  When the issue occurs, close() and GC touch the same file refcount. If GC sees the refcount being decremented by close(), it can just give up garbage-collecting the SCC.  Therefore, we only need to signal the race during MSG_PEEK with a proper memory barrier to make it visible to the GC.  Let's use seqcount_t to notify GC when MSG_PEEK occurs and let it defer the SCC to the next run.  This way no locking is needed on the MSG_PEEK side, and we can avoid imposing a penalty on every MSG_PEEK unnecessarily.  Note that we can retry within unix_scc_dead() if MSG_PEEK is detected, but we do not do so to avoid hung task splat from abusive MSG_PEEK calls.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-25 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38591",
                        "url": "https://ubuntu.com/security/CVE-2025-38591",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Reject narrower access to pointer ctx fields  The following BPF program, simplified from a syzkaller repro, causes a kernel warning:      r0 = *(u8 *)(r1 + 169);     exit;  With pointer field sk being at offset 168 in __sk_buff. This access is detected as a narrower read in bpf_skb_is_valid_access because it doesn't match offsetof(struct __sk_buff, sk). It is therefore allowed and later proceeds to bpf_convert_ctx_access. Note that for the \"is_narrower_load\" case in the convert_ctx_accesses(), the insn->off is aligned, so the cnt may not be 0 because it matches the offsetof(struct __sk_buff, sk) in the bpf_convert_ctx_access. However, the target_size stays 0 and the verifier errors with a kernel warning:      verifier bug: error during ctx access conversion(1)  This patch fixes that to return a proper \"invalid bpf_context access off=X size=Y\" error on the load instruction.  The same issue affects multiple other fields in context structures that allow narrow access. Some other non-affected fields (for sk_msg, sk_lookup, and sockopt) were also changed to use bpf_ctx_range_ptr for consistency.  Note this syzkaller crash was reported in the \"Closes\" link below, which used to be about a different bug, fixed in commit fce7bd8e385a (\"bpf/verifier: Handle BPF_LOAD_ACQ instructions in insn_def_regno()\"). Because syzbot somehow confused the two bugs, the new crash and repro didn't get reported to the mailing list.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-08-19 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23035",
                        "url": "https://ubuntu.com/security/CVE-2026-23035",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Pass netdev to mlx5e_destroy_netdev instead of priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails.  Pass netdev to mlx5e_destroy_netdev() to guarantee it will work on a valid netdev.  On mlx5e_remove: Check validity of priv->profile, before attempting to cleanup any resources that might be not there.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000370 PGD 0 P4D 0 Oops: Oops: 0000 [#1] SMP NOPTI CPU: 15 UID: 0 PID: 520 Comm: devlink Not tainted 6.18.0-rc5+ #115 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_dcbnl_dscp_app+0x23/0x100 RSP: 0018:ffffc9000083f8b8 EFLAGS: 00010286 RAX: ffff8881126fc380 RBX: ffff8881015ac400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8881035109c0 RBP: ffff8881035109c0 R08: ffff888101e3e838 R09: ffff888100264e10 R10: ffffc9000083f898 R11: ffffc9000083f8a0 R12: ffff888101b921a0 R13: ffff888101b921a0 R14: ffff8881015ac9a0 R15: ffff8881015ac400 FS:  00007f789a3c8740(0000) GS:ffff88856aa59000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000370 CR3: 000000010b6c0001 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_remove+0x57/0x110  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22996",
                        "url": "https://ubuntu.com/security/CVE-2026-22996",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Don't store mlx5e_priv in mlx5e_dev devlink priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails, mlx5e_priv in mlx5e_dev devlink private is used to reference the netdev and mdev associated with that struct. Instead, store netdev directly into mlx5e_dev and get mdev from the containing mlx5_adev aux device structure.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000520  #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: 3 UID: 0 PID: 521 Comm: devlink Not tainted 6.18.0-rc5+ #117 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_remove+0x68/0x130 RSP: 0018:ffffc900034838f0 EFLAGS: 00010246 RAX: ffff88810283c380 RBX: ffff888101874400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffff888102d789c0 R08: ffff8881007137f0 R09: ffff888100264e10 R10: ffffc90003483898 R11: ffffc900034838a0 R12: ffff888100d261a0 R13: ffff888100d261a0 R14: ffff8881018749a0 R15: ffff888101874400 FS:  00007f8565fea740(0000) GS:ffff88856a759000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000520 CR3: 000000010b11a004 CR4: 0000000000370ef0 Call Trace:  <TASK>  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23000",
                        "url": "https://ubuntu.com/security/CVE-2026-23000",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Fix crash on profile change rollback failure  mlx5e_netdev_change_profile can fail to attach a new profile and can fail to rollback to old profile, in such case, we could end up with a dangling netdev with a fully reset netdev_priv. A retry to change profile, e.g. another attempt to call mlx5e_netdev_change_profile via switchdev mode change, will crash trying to access the now NULL priv->mdev.  This fix allows mlx5e_netdev_change_profile() to handle previous failures and an empty priv, by not assuming priv is valid.  Pass netdev and mdev to all flows requiring mlx5e_netdev_change_profile() and avoid passing priv. In mlx5e_netdev_change_profile() check if current priv is valid, and if not, just attach the new profile without trying to access the old one.  This fixes the following oops, when enabling switchdev mode for the 2nd time after first time failure:   ## Enabling switchdev mode first time:  mlx5_core 0012:03:00.1: E-Switch: Supported tc chains and prios offload workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12                                                                         ^^^^^^^^ mlx5_core 0000:00:03.0: E-Switch: Disable: mode(LEGACY), nvfs(0), necvfs(0), active vports(0)   ## retry: Enabling switchdev mode 2nd time:  mlx5_core 0000:00:03.0: E-Switch: Supported tc chains and prios offload BUG: kernel NULL pointer dereference, address: 0000000000000038  #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: 520 Comm: devlink Not tainted 6.18.0-rc4+ #91 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_detach_netdev+0x3c/0x90 Code: 50 00 00 f0 80 4f 78 02 48 8b bf e8 07 00 00 48 85 ff 74 16 48 8b 73 78 48 d1 ee 83 e6 01 83 f6 01 40 0f b6 f6 e8 c4 42 00 00 <48> 8b 45 38 48 85 c0 74 08 48 89 df e8 cc 47 40 1e 48 8b bb f0 07 RSP: 0018:ffffc90000673890 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff8881036a89c0 RCX: 0000000000000000 RDX: ffff888113f63800 RSI: ffffffff822fe720 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000002dcd R09: 0000000000000000 R10: ffffc900006738e8 R11: 00000000ffffffff R12: 0000000000000000 R13: 0000000000000000 R14: ffff8881036a89c0 R15: 0000000000000000 FS:  00007fdfb8384740(0000) GS:ffff88856a9d6000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000038 CR3: 0000000112ae0005 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_netdev_change_profile+0x45/0xb0  mlx5e_vport_rep_load+0x27b/0x2d0  mlx5_esw_offloads_rep_load+0x72/0xf0  esw_offloads_enable+0x5d0/0x970  mlx5_eswitch_enable_locked+0x349/0x430  ? is_mp_supported+0x57/0xb0  mlx5_devlink_eswitch_mode_set+0x26b/0x430  devlink_nl_eswitch_set_doit+0x6f/0xf0  genl_family_rcv_msg_doit+0xe8/0x140  genl_rcv_msg+0x18b/0x290  ? __pfx_devlink_nl_pre_doit+0x10/0x10  ? __pfx_devlink_nl_eswitch_set_doit+0x10/0x10  ? __pfx_devlink_nl_post_doit+0x10/0x10  ? __pfx_genl_rcv_msg+0x10/0x10  netlink_rcv_skb+0x52/0x100  genl_rcv+0x28/0x40  netlink_unicast+0x282/0x3e0  ? __alloc_skb+0xd6/0x190  netlink_sendmsg+0x1f7/0x430  __sys_sendto+0x213/0x220  ? __sys_recvmsg+0x6a/0xd0  __x64_sys_sendto+0x24/0x30  do_syscall_64+0x50/0x1f0  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fdfb8495047",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23053",
                        "url": "https://ubuntu.com/security/CVE-2026-23053",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Fix a deadlock involving nfs_release_folio()  Wang Zhaolong reports a deadlock involving NFSv4.1 state recovery waiting on kthreadd, which is attempting to reclaim memory by calling nfs_release_folio(). The latter cannot make progress due to state recovery being needed.  It seems that the only safe thing to do here is to kick off a writeback of the folio, without waiting for completion, or else kicking off an asynchronous commit.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23050",
                        "url": "https://ubuntu.com/security/CVE-2026-23050",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pNFS: Fix a deadlock when returning a delegation during open()  Ben Coddington reports seeing a hang in the following stack trace:   0 [ffffd0b50e1774e0] __schedule at ffffffff9ca05415   1 [ffffd0b50e177548] schedule at ffffffff9ca05717   2 [ffffd0b50e177558] bit_wait at ffffffff9ca061e1   3 [ffffd0b50e177568] __wait_on_bit at ffffffff9ca05cfb   4 [ffffd0b50e1775c8] out_of_line_wait_on_bit at ffffffff9ca05ea5   5 [ffffd0b50e177618] pnfs_roc at ffffffffc154207b [nfsv4]   6 [ffffd0b50e1776b8] _nfs4_proc_delegreturn at ffffffffc1506586 [nfsv4]   7 [ffffd0b50e177788] nfs4_proc_delegreturn at ffffffffc1507480 [nfsv4]   8 [ffffd0b50e1777f8] nfs_do_return_delegation at ffffffffc1523e41 [nfsv4]   9 [ffffd0b50e177838] nfs_inode_set_delegation at ffffffffc1524a75 [nfsv4]  10 [ffffd0b50e177888] nfs4_process_delegation at ffffffffc14f41dd [nfsv4]  11 [ffffd0b50e1778a0] _nfs4_opendata_to_nfs4_state at ffffffffc1503edf [nfsv4]  12 [ffffd0b50e1778c0] _nfs4_open_and_get_state at ffffffffc1504e56 [nfsv4]  13 [ffffd0b50e177978] _nfs4_do_open at ffffffffc15051b8 [nfsv4]  14 [ffffd0b50e1779f8] nfs4_do_open at ffffffffc150559c [nfsv4]  15 [ffffd0b50e177a80] nfs4_atomic_open at ffffffffc15057fb [nfsv4]  16 [ffffd0b50e177ad0] nfs4_file_open at ffffffffc15219be [nfsv4]  17 [ffffd0b50e177b78] do_dentry_open at ffffffff9c09e6ea  18 [ffffd0b50e177ba8] vfs_open at ffffffff9c0a082e  19 [ffffd0b50e177bd0] dentry_open at ffffffff9c0a0935  The issue is that the delegreturn is being asked to wait for a layout return that cannot complete because a state recovery was initiated. The state recovery cannot complete until the open() finishes processing the delegations it was given.  The solution is to propagate the existing flags that indicate a non-blocking call to the function pnfs_roc(), so that it knows not to wait in this situation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23005",
                        "url": "https://ubuntu.com/security/CVE-2026-23005",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1  When loading guest XSAVE state via KVM_SET_XSAVE, and when updating XFD in response to a guest WRMSR, clear XFD-disabled features in the saved (or to be restored) XSTATE_BV to ensure KVM doesn't attempt to load state for features that are disabled via the guest's XFD.  Because the kernel executes XRSTOR with the guest's XFD, saving XSTATE_BV[i]=1 with XFD[i]=1 will cause XRSTOR to #NM and panic the kernel.  E.g. if fpu_update_guest_xfd() sets XFD without clearing XSTATE_BV:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#29: amx_test/848   Modules linked in: kvm_intel kvm irqbypass   CPU: 29 UID: 1000 PID: 848 Comm: amx_test Not tainted 6.19.0-rc2-ffa07f7fd437-x86_amx_nm_xfd_non_init-vm #171 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    switch_fpu_return+0x4a/0xb0    kvm_arch_vcpu_ioctl_run+0x1245/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  This can happen if the guest executes WRMSR(MSR_IA32_XFD) to set XFD[18] = 1, and a host IRQ triggers kernel_fpu_begin() prior to the vmexit handler's call to fpu_update_guest_xfd().  and if userspace stuffs XSTATE_BV[i]=1 via KVM_SET_XSAVE:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#14: amx_test/867   Modules linked in: kvm_intel kvm irqbypass   CPU: 14 UID: 1000 PID: 867 Comm: amx_test Not tainted 6.19.0-rc2-2dace9faccd6-x86_amx_nm_xfd_non_init-vm #168 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    fpu_swap_kvm_fpstate+0x6b/0x120    kvm_load_guest_fpu+0x30/0x80 [kvm]    kvm_arch_vcpu_ioctl_run+0x85/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  The new behavior is consistent with the AMX architecture.  Per Intel's SDM, XSAVE saves XSTATE_BV as '0' for components that are disabled via XFD (and non-compacted XSAVE saves the initial configuration of the state component):    If XSAVE, XSAVEC, XSAVEOPT, or XSAVES is saving the state component i,   the instruction does not generate #NM when XCR0[i] = IA32_XFD[i] = 1;   instead, it operates as if XINUSE[i] = 0 (and the state component was   in its initial state): it saves bit i of XSTATE_BV field of the XSAVE   header as 0; in addition, XSAVE saves the initial configuration of the   state component (the other instructions do not save state component i).  Alternatively, KVM could always do XRSTOR with XFD=0, e.g. by using a constant XFD based on the set of enabled features when XSAVEing for a struct fpu_guest.  However, having XSTATE_BV[i]=1 for XFD-disabled features can only happen in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, because fpu_swap_kvm_fpstate()'s call to save_fpregs_to_fpstate() saves the outgoing FPU state with the current XFD; and that is (on all but the first WRMSR to XFD) the guest XFD.  Therefore, XFD can only go out of sync with XSTATE_BV in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, and it we can consider it (de facto) part of KVM ABI that KVM_GET_XSAVE returns XSTATE_BV[i]=0 for XFD-disabled features.  [Move clea ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-58097",
                        "url": "https://ubuntu.com/security/CVE-2024-58097",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix RCU stall while reaping monitor destination ring  While processing the monitor destination ring, MSDUs are reaped from the link descriptor based on the corresponding buf_id.  However, sometimes the driver cannot obtain a valid buffer corresponding to the buf_id received from the hardware. This causes an infinite loop in the destination processing, resulting in a kernel crash.  kernel log: ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed  Fix this by skipping the problematic buf_id and reaping the next entry, replacing the break with the next MSDU processing.  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68365",
                        "url": "https://ubuntu.com/security/CVE-2025-68365",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/ntfs3: Initialize allocated memory before use  KMSAN reports: Multiple uninitialized values detected:  - KMSAN: uninit-value in ntfs_read_hdr (3) - KMSAN: uninit-value in bcmp (3)  Memory is allocated by __getname(), which is a wrapper for kmem_cache_alloc(). This memory is used before being properly cleared. Change kmem_cache_alloc() to kmem_cache_zalloc() to properly allocate and clear memory before use.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-37926",
                        "url": "https://ubuntu.com/security/CVE-2025-37926",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_session_rpc_open  A UAF issue can occur due to a race condition between ksmbd_session_rpc_open() and __session_rpc_close(). Add rpc_lock to the session to protect it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-05-20 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23030",
                        "url": "https://ubuntu.com/security/CVE-2026-23030",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: rockchip: inno-usb2: Fix a double free bug in rockchip_usb2phy_probe()  The for_each_available_child_of_node() calls of_node_put() to release child_np in each success loop. After breaking from the loop with the child_np has been released, the code will jump to the put_child label and will call the of_node_put() again if the devm_request_threaded_irq() fails. These cause a double free bug.  Fix by returning directly to avoid the duplicate of_node_put().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23025",
                        "url": "https://ubuntu.com/security/CVE-2026-23025",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/page_alloc: prevent pcp corruption with SMP=n  The kernel test robot has reported:   BUG: spinlock trylock failure on UP on CPU#0, kcompactd0/28   lock: 0xffff888807e35ef0, .magic: dead4ead, .owner: kcompactd0/28, .owner_cpu: 0  CPU: 0 UID: 0 PID: 28 Comm: kcompactd0 Not tainted 6.18.0-rc5-00127-ga06157804399 #1 PREEMPT 8cc09ef94dcec767faa911515ce9e609c45db470  Call Trace:   <IRQ>   __dump_stack (lib/dump_stack.c:95)   dump_stack_lvl (lib/dump_stack.c:123)   dump_stack (lib/dump_stack.c:130)   spin_dump (kernel/locking/spinlock_debug.c:71)   do_raw_spin_trylock (kernel/locking/spinlock_debug.c:?)   _raw_spin_trylock (include/linux/spinlock_api_smp.h:89 kernel/locking/spinlock.c:138)   __free_frozen_pages (mm/page_alloc.c:2973)   ___free_pages (mm/page_alloc.c:5295)   __free_pages (mm/page_alloc.c:5334)   tlb_remove_table_rcu (include/linux/mm.h:? include/linux/mm.h:3122 include/asm-generic/tlb.h:220 mm/mmu_gather.c:227 mm/mmu_gather.c:290)   ? __cfi_tlb_remove_table_rcu (mm/mmu_gather.c:289)   ? rcu_core (kernel/rcu/tree.c:?)   rcu_core (include/linux/rcupdate.h:341 kernel/rcu/tree.c:2607 kernel/rcu/tree.c:2861)   rcu_core_si (kernel/rcu/tree.c:2879)   handle_softirqs (arch/x86/include/asm/jump_label.h:36 include/trace/events/irq.h:142 kernel/softirq.c:623)   __irq_exit_rcu (arch/x86/include/asm/jump_label.h:36 kernel/softirq.c:725)   irq_exit_rcu (kernel/softirq.c:741)   sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1052)   </IRQ>   <TASK>  RIP: 0010:_raw_spin_unlock_irqrestore (arch/x86/include/asm/preempt.h:95 include/linux/spinlock_api_smp.h:152 kernel/locking/spinlock.c:194)   free_pcppages_bulk (mm/page_alloc.c:1494)   drain_pages_zone (include/linux/spinlock.h:391 mm/page_alloc.c:2632)   __drain_all_pages (mm/page_alloc.c:2731)   drain_all_pages (mm/page_alloc.c:2747)   kcompactd (mm/compaction.c:3115)   kthread (kernel/kthread.c:465)   ? __cfi_kcompactd (mm/compaction.c:3166)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork (arch/x86/kernel/process.c:164)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork_asm (arch/x86/entry/entry_64.S:255)   </TASK>  Matthew has analyzed the report and identified that in drain_page_zone() we are in a section protected by spin_lock(&pcp->lock) and then get an interrupt that attempts spin_trylock() on the same lock.  The code is designed to work this way without disabling IRQs and occasionally fail the trylock with a fallback.  However, the SMP=n spinlock implementation assumes spin_trylock() will always succeed, and thus it's normally a no-op.  Here the enabled lock debugging catches the problem, but otherwise it could cause a corruption of the pcp structure.  The problem has been introduced by commit 574907741599 (\"mm/page_alloc: leave IRQs enabled for per-cpu page allocations\").  The pcp locking scheme recognizes the need for disabling IRQs to prevent nesting spin_trylock() sections on SMP=n, but the need to prevent the nesting in spin_lock() has not been recognized.  Fix it by introducing local wrappers that change the spin_lock() to spin_lock_iqsave() with SMP=n and use them in all places that do spin_lock(&pcp->lock).  [vbabka@suse.cz: add pcp_ prefix to the spin_lock_irqsave wrappers, per Steven]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71186",
                        "url": "https://ubuntu.com/security/CVE-2025-71186",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: stm32: dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23078",
                        "url": "https://ubuntu.com/security/CVE-2026-23078",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: scarlett2: Fix buffer overflow in config retrieval  The scarlett2_usb_get_config() function has a logic error in the endianness conversion code that can cause buffer overflows when count > 1.  The code checks `if (size == 2)` where `size` is the total buffer size in bytes, then loops `count` times treating each element as u16 (2 bytes). This causes the loop to access `count * 2` bytes when the buffer only has `size` bytes allocated.  Fix by checking the element size (config_item->size) instead of the total buffer size. This ensures the endianness conversion matches the actual element type.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23142",
                        "url": "https://ubuntu.com/security/CVE-2026-23142",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs-scheme: cleanup access_pattern subdirs on scheme dir setup failure  When a DAMOS-scheme DAMON sysfs directory setup fails after setup of access_pattern/ directory, subdirectories of access_pattern/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23075",
                        "url": "https://ubuntu.com/security/CVE-2026-23075",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: esd_usb: esd_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In esd_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback esd_usb_read_bulk_callback(), the URBs are processed and resubmitted. In esd_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in esd_usb_close().  Fix the memory leak by anchoring the URB in the esd_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68725",
                        "url": "https://ubuntu.com/security/CVE-2025-68725",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Do not let BPF test infra emit invalid GSO types to stack  Yinhao et al. reported that their fuzzer tool was able to trigger a skb_warn_bad_offload() from netif_skb_features() -> gso_features_check(). When a BPF program - triggered via BPF test infra - pushes the packet to the loopback device via bpf_clone_redirect() then mentioned offload warning can be seen. GSO-related features are then rightfully disabled.  We get into this situation due to convert___skb_to_skb() setting gso_segs and gso_size but not gso_type. Technically, it makes sense that this warning triggers since the GSO properties are malformed due to the gso_type. Potentially, the gso_type could be marked non-trustworthy through setting it at least to SKB_GSO_DODGY without any other specific assumptions, but that also feels wrong given we should not go further into the GSO engine in the first place.  The checks were added in 121d57af308d (\"gso: validate gso_type in GSO handlers\") because there were malicious (syzbot) senders that combine a protocol with a non-matching gso_type. If we would want to drop such packets, gso_features_check() currently only returns feature flags via netif_skb_features(), so one location for potentially dropping such skbs could be validate_xmit_unreadable_skb(), but then otoh it would be an additional check in the fast-path for a very corner case. Given bpf_clone_redirect() is the only place where BPF test infra could emit such packets, lets reject them right there.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23097",
                        "url": "https://ubuntu.com/security/CVE-2026-23097",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  migrate: correct lock ordering for hugetlb file folios  Syzbot has found a deadlock (analyzed by Lance Yang):  1) Task (5749): Holds folio_lock, then tries to acquire i_mmap_rwsem(read lock). 2) Task (5754): Holds i_mmap_rwsem(write lock), then tries to acquire folio_lock.  migrate_pages()   -> migrate_hugetlbs()     -> unmap_and_move_huge_page()     <- Takes folio_lock!       -> remove_migration_ptes()         -> __rmap_walk_file()           -> i_mmap_lock_read()       <- Waits for i_mmap_rwsem(read lock)!  hugetlbfs_fallocate()   -> hugetlbfs_punch_hole()           <- Takes i_mmap_rwsem(write lock)!     -> hugetlbfs_zero_partial_page()      -> filemap_lock_hugetlb_folio()       -> filemap_lock_folio()         -> __filemap_get_folio        <- Waits for folio_lock!  The migration path is the one taking locks in the wrong order according to the documentation at the top of mm/rmap.c.  So expand the scope of the existing i_mmap_lock to cover the calls to remove_migration_ptes() too.  This is (mostly) how it used to be after commit c0d0381ade79.  That was removed by 336bf30eb765 for both file & anon hugetlb pages when it should only have been removed for anon hugetlb pages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23108",
                        "url": "https://ubuntu.com/security/CVE-2026-23108",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: usb_8dev: usb_8dev_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In usb_8dev_open() -> usb_8dev_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback usb_8dev_read_bulk_callback(), the URBs are processed and resubmitted. In usb_8dev_close() -> unlink_all_urbs() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the usb_8dev_read_bulk_callback() to the priv->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23080",
                        "url": "https://ubuntu.com/security/CVE-2026-23080",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: mcba_usb: mcba_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In mcba_usb_probe() -> mcba_usb_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback mcba_usb_read_bulk_callback(), the URBs are processed and resubmitted. In mcba_usb_close() -> mcba_urb_unlink() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the mcba_usb_read_bulk_callback()to the priv->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23061",
                        "url": "https://ubuntu.com/security/CVE-2026-23061",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In kvaser_usb_set_{,data_}bittiming() -> kvaser_usb_setup_rx_urbs(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback kvaser_usb_read_bulk_callback(), the URBs are processed and resubmitted. In kvaser_usb_remove_interfaces() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the kvaser_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23058",
                        "url": "https://ubuntu.com/security/CVE-2026-23058",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In ems_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback ems_usb_read_bulk_callback(), the URBs are processed and resubmitted. In ems_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in ems_usb_close().  Fix the memory leak by anchoring the URB in the ems_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23085",
                        "url": "https://ubuntu.com/security/CVE-2026-23085",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/gic-v3-its: Avoid truncating memory addresses  On 32-bit machines with CONFIG_ARM_LPAE, it is possible for lowmem allocations to be backed by addresses physical memory above the 32-bit address limit, as found while experimenting with larger VMSPLIT configurations.  This caused the qemu virt model to crash in the GICv3 driver, which allocates the 'itt' object using GFP_KERNEL. Since all memory below the 4GB physical address limit is in ZONE_DMA in this configuration, kmalloc() defaults to higher addresses for ZONE_NORMAL, and the ITS driver stores the physical address in a 32-bit 'unsigned long' variable.  Change the itt_addr variable to the correct phys_addr_t type instead, along with all other variables in this driver that hold a physical address.  The gicv5 driver correctly uses u64 variables, while all other irqchip drivers don't call virt_to_phys or similar interfaces. It's expected that other device drivers have similar issues, but fixing this one is sufficient for booting a virtio based guest.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23116",
                        "url": "https://ubuntu.com/security/CVE-2026-23116",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu  For i.MX8MQ platform, the ADB in the VPUMIX domain has no separate reset and clock enable bits, but is ungated and reset together with the VPUs. So we can't reset G1 or G2 separately, it may led to the system hang. Remove rst_mask and clk_mask of imx8mq_vpu_blk_ctl_domain_data. Let imx8mq_vpu_power_notifier() do really vpu reset.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23098",
                        "url": "https://ubuntu.com/security/CVE-2026-23098",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: fix double-free in nr_route_frame()  In nr_route_frame(), old_skb is immediately freed without checking if nr_neigh->ax25 pointer is NULL. Therefore, if nr_neigh->ax25 is NULL, the caller function will free old_skb again, causing a double-free bug.  Therefore, to prevent this, we need to modify it to check whether nr_neigh->ax25 is NULL before freeing old_skb.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23063",
                        "url": "https://ubuntu.com/security/CVE-2026-23063",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: ensure safe queue release with state management  Directly calling `put_queue` carries risks since it cannot guarantee that resources of `uacce_queue` have been fully released beforehand. So adding a `stop_queue` operation for the UACCE_CMD_PUT_Q command and leaving the `put_queue` operation to the final resource release ensures safety.  Queue states are defined as follows: - UACCE_Q_ZOMBIE: Initial state - UACCE_Q_INIT: After opening `uacce` - UACCE_Q_STARTED: After `start` is issued via `ioctl`  When executing `poweroff -f` in virt while accelerator are still working, `uacce_fops_release` and `uacce_remove` may execute concurrently. This can cause `uacce_put_queue` within `uacce_fops_release` to access a NULL `ops` pointer. Therefore, add state checks to prevent accessing freed pointers.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23056",
                        "url": "https://ubuntu.com/security/CVE-2026-23056",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: implement mremap in uacce_vm_ops to return -EPERM  The current uacce_vm_ops does not support the mremap operation of vm_operations_struct. Implement .mremap to return -EPERM to remind users.  The reason we need to explicitly disable mremap is that when the driver does not implement .mremap, it uses the default mremap method. This could lead to a risk scenario:  An application might first mmap address p1, then mremap to p2, followed by munmap(p1), and finally munmap(p2). Since the default mremap copies the original vma's vm_private_data (i.e., q) to the new vma, both munmap operations would trigger vma_close, causing q->qfr to be freed twice(qfr will be set to null here, so repeated release is ok).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23094",
                        "url": "https://ubuntu.com/security/CVE-2026-23094",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix isolate sysfs check condition  uacce supports the device isolation feature. If the driver implements the isolate_err_threshold_read and isolate_err_threshold_write callback functions, uacce will create sysfs files now. Users can read and configure the isolation policy through sysfs. Currently, sysfs files are created as long as either isolate_err_threshold_read or isolate_err_threshold_write callback functions are present.  However, accessing a non-existent callback function may cause the system to crash. Therefore, intercept the creation of sysfs if neither read nor write exists; create sysfs if either is supported, but intercept unsupported operations at the call site.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23096",
                        "url": "https://ubuntu.com/security/CVE-2026-23096",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix cdev handling in the cleanup path  When cdev_device_add fails, it internally releases the cdev memory, and if cdev_device_del is then executed, it will cause a hang error. To fix it, we check the return value of cdev_device_add() and clear uacce->cdev to avoid calling cdev_device_del in the uacce_remove.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23091",
                        "url": "https://ubuntu.com/security/CVE-2026-23091",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  intel_th: fix device leak on output open()  Make sure to drop the reference taken when looking up the th device during output device open() on errors and on close().  Note that a recent commit fixed the leak in a couple of open() error paths but not all of them, and the reference is still leaking on successful open().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23088",
                        "url": "https://ubuntu.com/security/CVE-2026-23088",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Fix crash on synthetic stacktrace field usage  When creating a synthetic event based on an existing synthetic event that had a stacktrace field and the new synthetic event used that field a kernel crash occurred:   ~# cd /sys/kernel/tracing  ~# echo 's:stack unsigned long stack[];' > dynamic_events  ~# echo 'hist:keys=prev_pid:s0=common_stacktrace if prev_state & 3' >> events/sched/sched_switch/trigger  ~# echo 'hist:keys=next_pid:s1=$s0:onmatch(sched.sched_switch).trace(stack,$s1)' >> events/sched/sched_switch/trigger  The above creates a synthetic event that takes a stacktrace when a task schedules out in a non-running state and passes that stacktrace to the sched_switch event when that task schedules back in. It triggers the \"stack\" synthetic event that has a stacktrace as its field (called \"stack\").   ~# echo 's:syscall_stack s64 id; unsigned long stack[];' >> dynamic_events  ~# echo 'hist:keys=common_pid:s2=stack' >> events/synthetic/stack/trigger  ~# echo 'hist:keys=common_pid:s3=$s2,i0=id:onmatch(synthetic.stack).trace(syscall_stack,$i0,$s3)' >> events/raw_syscalls/sys_exit/trigger  The above makes another synthetic event called \"syscall_stack\" that attaches the first synthetic event (stack) to the sys_exit trace event and records the stacktrace from the stack event with the id of the system call that is exiting.  When enabling this event (or using it in a historgram):   ~# echo 1 > events/synthetic/syscall_stack/enable  Produces a kernel crash!   BUG: unable to handle page fault for address: 0000000000400010  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP PTI  CPU: 6 UID: 0 PID: 1257 Comm: bash Not tainted 6.16.3+deb14-amd64 #1 PREEMPT(lazy)  Debian 6.16.3-1  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:trace_event_raw_event_synth+0x90/0x380  Code: c5 00 00 00 00 85 d2 0f 84 e1 00 00 00 31 db eb 34 0f 1f 00 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 <49> 8b 04 24 48 83 c3 01 8d 0c c5 08 00 00 00 01 cd 41 3b 5d 40 0f  RSP: 0018:ffffd2670388f958 EFLAGS: 00010202  RAX: ffff8ba1065cc100 RBX: 0000000000000000 RCX: 0000000000000000  RDX: 0000000000000001 RSI: fffff266ffda7b90 RDI: ffffd2670388f9b0  RBP: 0000000000000010 R08: ffff8ba104e76000 R09: ffffd2670388fa50  R10: ffff8ba102dd42e0 R11: ffffffff9a908970 R12: 0000000000400010  R13: ffff8ba10a246400 R14: ffff8ba10a710220 R15: fffff266ffda7b90  FS:  00007fa3bc63f740(0000) GS:ffff8ba2e0f48000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000400010 CR3: 0000000107f9e003 CR4: 0000000000172ef0  Call Trace:   <TASK>   ? __tracing_map_insert+0x208/0x3a0   action_trace+0x67/0x70   event_hist_trigger+0x633/0x6d0   event_triggers_call+0x82/0x130   trace_event_buffer_commit+0x19d/0x250   trace_event_raw_event_sys_exit+0x62/0xb0   syscall_exit_work+0x9d/0x140   do_syscall_64+0x20a/0x2f0   ? trace_event_raw_event_sched_switch+0x12b/0x170   ? save_fpregs_to_fpstate+0x3e/0x90   ? _raw_spin_unlock+0xe/0x30   ? finish_task_switch.isra.0+0x97/0x2c0   ? __rseq_handle_notify_resume+0xad/0x4c0   ? __schedule+0x4b8/0xd00   ? restore_fpregs_from_fpstate+0x3c/0x90   ? switch_fpu_return+0x5b/0xe0   ? do_syscall_64+0x1ef/0x2f0   ? do_fault+0x2e9/0x540   ? __handle_mm_fault+0x7d1/0xf70   ? count_memcg_events+0x167/0x1d0   ? handle_mm_fault+0x1d7/0x2e0   ? do_user_addr_fault+0x2c3/0x7f0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  The reason is that the stacktrace field is not labeled as such, and is treated as a normal field and not as a dynamic event that it is.  In trace_event_raw_event_synth() the event is field is still treated as a dynamic array, but the retrieval of the data is considered a normal field, and the reference is just the meta data:  // Meta data is retrieved instead of a dynamic array ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23090",
                        "url": "https://ubuntu.com/security/CVE-2026-23090",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  slimbus: core: fix device reference leak on report present  Slimbus devices can be allocated dynamically upon reception of report-present messages.  Make sure to drop the reference taken when looking up already registered devices.  Note that this requires taking an extra reference in case the device has not yet been registered and has to be allocated.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23128",
                        "url": "https://ubuntu.com/security/CVE-2026-23128",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64: Set __nocfi on swsusp_arch_resume()  A DABT is reported[1] on an android based system when resume from hiberate. This happens because swsusp_arch_suspend_exit() is marked with SYM_CODE_*() and does not have a CFI hash, but swsusp_arch_resume() will attempt to verify the CFI hash when calling a copy of swsusp_arch_suspend_exit().  Given that there's an existing requirement that the entrypoint to swsusp_arch_suspend_exit() is the first byte of the .hibernate_exit.text section, we cannot fix this by marking swsusp_arch_suspend_exit() with SYM_FUNC_*(). The simplest fix for now is to disable the CFI check in swsusp_arch_resume().  Mark swsusp_arch_resume() as __nocfi to disable the CFI check.  [1] [   22.991934][    T1] Unable to handle kernel paging request at virtual address 0000000109170ffc [   22.991934][    T1] Mem abort info: [   22.991934][    T1]   ESR = 0x0000000096000007 [   22.991934][    T1]   EC = 0x25: DABT (current EL), IL = 32 bits [   22.991934][    T1]   SET = 0, FnV = 0 [   22.991934][    T1]   EA = 0, S1PTW = 0 [   22.991934][    T1]   FSC = 0x07: level 3 translation fault [   22.991934][    T1] Data abort info: [   22.991934][    T1]   ISV = 0, ISS = 0x00000007, ISS2 = 0x00000000 [   22.991934][    T1]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [   22.991934][    T1]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [   22.991934][    T1] [0000000109170ffc] user address but active_mm is swapper [   22.991934][    T1] Internal error: Oops: 0000000096000007 [#1] PREEMPT SMP [   22.991934][    T1] Dumping ftrace buffer: [   22.991934][    T1]    (ftrace buffer empty) [   22.991934][    T1] Modules linked in: [   22.991934][    T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.6.98-android15-8-g0b1d2aee7fc3-dirty-4k #1 688c7060a825a3ac418fe53881730b355915a419 [   22.991934][    T1] Hardware name: Unisoc UMS9360-base Board (DT) [   22.991934][    T1] pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [   22.991934][    T1] pc : swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1] lr : swsusp_arch_resume+0x294/0x344 [   22.991934][    T1] sp : ffffffc08006b960 [   22.991934][    T1] x29: ffffffc08006b9c0 x28: 0000000000000000 x27: 0000000000000000 [   22.991934][    T1] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000820 [   22.991934][    T1] x23: ffffffd0817e3000 x22: ffffffd0817e3000 x21: 0000000000000000 [   22.991934][    T1] x20: ffffff8089171000 x19: ffffffd08252c8c8 x18: ffffffc080061058 [   22.991934][    T1] x17: 00000000529c6ef0 x16: 00000000529c6ef0 x15: 0000000000000004 [   22.991934][    T1] x14: ffffff8178c88000 x13: 0000000000000006 x12: 0000000000000000 [   22.991934][    T1] x11: 0000000000000015 x10: 0000000000000001 x9 : ffffffd082533000 [   22.991934][    T1] x8 : 0000000109171000 x7 : 205b5d3433393139 x6 : 392e32322020205b [   22.991934][    T1] x5 : 000000010916f000 x4 : 000000008164b000 x3 : ffffff808a4e0530 [   22.991934][    T1] x2 : ffffffd08058e784 x1 : 0000000082326000 x0 : 000000010a283000 [   22.991934][    T1] Call trace: [   22.991934][    T1]  swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1]  hibernation_restore+0x158/0x18c [   22.991934][    T1]  load_image_and_restore+0xb0/0xec [   22.991934][    T1]  software_resume+0xf4/0x19c [   22.991934][    T1]  software_resume_initcall+0x34/0x78 [   22.991934][    T1]  do_one_initcall+0xe8/0x370 [   22.991934][    T1]  do_initcall_level+0xc8/0x19c [   22.991934][    T1]  do_initcalls+0x70/0xc0 [   22.991934][    T1]  do_basic_setup+0x1c/0x28 [   22.991934][    T1]  kernel_init_freeable+0xe0/0x148 [   22.991934][    T1]  kernel_init+0x20/0x1a8 [   22.991934][    T1]  ret_from_fork+0x10/0x20 [   22.991934][    T1] Code: a9400a61 f94013e0 f9438923 f9400a64 (b85fc110)  [catalin.marinas@arm.com: commit log updated by Mark Rutland]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23107",
                        "url": "https://ubuntu.com/security/CVE-2026-23107",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Allocate SSVE storage when restoring ZA  The code to restore a ZA context doesn't attempt to allocate the task's sve_state before setting TIF_SME. Consequently, restoring a ZA context can place a task into an invalid state where TIF_SME is set but the task's sve_state is NULL.  In legitimate but uncommon cases where the ZA signal context was NOT created by the kernel in the context of the same task (e.g. if the task is saved/restored with something like CRIU), we have no guarantee that sve_state had been allocated previously. In these cases, userspace can enter streaming mode without trapping while sve_state is NULL, causing a later NULL pointer dereference when the kernel attempts to store the register state:  | # ./sigreturn-za | Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 | Mem abort info: |   ESR = 0x0000000096000046 |   EC = 0x25: DABT (current EL), IL = 32 bits |   SET = 0, FnV = 0 |   EA = 0, S1PTW = 0 |   FSC = 0x06: level 2 translation fault | Data abort info: |   ISV = 0, ISS = 0x00000046, ISS2 = 0x00000000 |   CM = 0, WnR = 1, TnD = 0, TagAccess = 0 |   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 | user pgtable: 4k pages, 52-bit VAs, pgdp=0000000101f47c00 | [0000000000000000] pgd=08000001021d8403, p4d=0800000102274403, pud=0800000102275403, pmd=0000000000000000 | Internal error: Oops: 0000000096000046 [#1]  SMP | Modules linked in: | CPU: 0 UID: 0 PID: 153 Comm: sigreturn-za Not tainted 6.19.0-rc1 #1 PREEMPT | Hardware name: linux,dummy-virt (DT) | pstate: 214000c9 (nzCv daIF +PAN -UAO -TCO +DIT -SSBS BTYPE=--) | pc : sve_save_state+0x4/0xf0 | lr : fpsimd_save_user_state+0xb0/0x1c0 | sp : ffff80008070bcc0 | x29: ffff80008070bcc0 x28: fff00000c1ca4c40 x27: 63cfa172fb5cf658 | x26: fff00000c1ca5228 x25: 0000000000000000 x24: 0000000000000000 | x23: 0000000000000000 x22: fff00000c1ca4c40 x21: fff00000c1ca4c40 | x20: 0000000000000020 x19: fff00000ff6900f0 x18: 0000000000000000 | x17: fff05e8e0311f000 x16: 0000000000000000 x15: 028fca8f3bdaf21c | x14: 0000000000000212 x13: fff00000c0209f10 x12: 0000000000000020 | x11: 0000000000200b20 x10: 0000000000000000 x9 : fff00000ff69dcc0 | x8 : 00000000000003f2 x7 : 0000000000000001 x6 : fff00000c1ca5b48 | x5 : fff05e8e0311f000 x4 : 0000000008000000 x3 : 0000000000000000 | x2 : 0000000000000001 x1 : fff00000c1ca5970 x0 : 0000000000000440 | Call trace: |  sve_save_state+0x4/0xf0 (P) |  fpsimd_thread_switch+0x48/0x198 |  __switch_to+0x20/0x1c0 |  __schedule+0x36c/0xce0 |  schedule+0x34/0x11c |  exit_to_user_mode_loop+0x124/0x188 |  el0_interrupt+0xc8/0xd8 |  __el0_irq_handler_common+0x18/0x24 |  el0t_64_irq_handler+0x10/0x1c |  el0t_64_irq+0x198/0x19c | Code: 54000040 d51b4408 d65f03c0 d503245f (e5bb5800) | ---[ end trace 0000000000000000 ]---  Fix this by having restore_za_context() ensure that the task's sve_state is allocated, matching what we do when taking an SME trap. Any live SVE/SSVE state (which is restored earlier from a separate signal context) must be preserved, and hence this is not zeroed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23073",
                        "url": "https://ubuntu.com/security/CVE-2026-23073",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rsi: Fix memory corruption due to not set vif driver data size  The struct ieee80211_vif contains trailing space for vif driver data, when struct ieee80211_vif is allocated, the total memory size that is allocated is sizeof(struct ieee80211_vif) + size of vif driver data. The size of vif driver data is set by each WiFi driver as needed.  The RSI911x driver does not set vif driver data size, no trailing space for vif driver data is therefore allocated past struct ieee80211_vif . The RSI911x driver does however use the vif driver data to store its vif driver data structure \"struct vif_priv\". An access to vif->drv_priv leads to access out of struct ieee80211_vif bounds and corruption of some memory.  In case of the failure observed locally, rsi_mac80211_add_interface() would write struct vif_priv *vif_info = (struct vif_priv *)vif->drv_priv; vif_info->vap_id = vap_idx. This write corrupts struct fq_tin member struct list_head new_flows . The flow = list_first_entry(head, struct fq_flow, flowchain); in fq_tin_reset() then reports non-NULL bogus address, which when accessed causes a crash.  The trigger is very simple, boot the machine with init=/bin/sh , mount devtmpfs, sysfs, procfs, and then do \"ip link set wlan0 up\", \"sleep 1\", \"ip link set wlan0 down\" and the crash occurs.  Fix this by setting the correct size of vif driver data, which is the size of \"struct vif_priv\", so that memory is allocated and the driver can store its driver data in it, instead of corrupting memory around it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23135",
                        "url": "https://ubuntu.com/security/CVE-2026-23135",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath12k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23133",
                        "url": "https://ubuntu.com/security/CVE-2026-23133",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath10k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71200",
                        "url": "https://ubuntu.com/security/CVE-2025-71200",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: sdhci-of-dwcmshc: Prevent illegal clock reduction in HS200/HS400 mode  When operating in HS200 or HS400 timing modes, reducing the clock frequency below 52MHz will lead to link broken as the Rockchip DWC MSHC controller requires maintaining a minimum clock of 52MHz in these modes.  Add a check to prevent illegal clock reduction through debugfs:  root@debian:/# echo 50000000 > /sys/kernel/debug/mmc0/clock root@debian:/# [   30.090146] mmc0: running CQE recovery mmc0: cqhci: Failed to halt mmc0: cqhci: spurious TCN for tag 0 WARNING: drivers/mmc/host/cqhci-core.c:797 at cqhci_irq+0x254/0x818, CPU#1: kworker/1:0H/24 Modules linked in: CPU: 1 UID: 0 PID: 24 Comm: kworker/1:0H Not tainted 6.19.0-rc1-00001-g09db0998649d-dirty #204 PREEMPT Hardware name: Rockchip RK3588 EVB1 V10 Board (DT) Workqueue: kblockd blk_mq_run_work_fn pstate: 604000c9 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : cqhci_irq+0x254/0x818 lr : cqhci_irq+0x254/0x818 ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23089",
                        "url": "https://ubuntu.com/security/CVE-2026-23089",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix use-after-free in snd_usb_mixer_free()  When snd_usb_create_mixer() fails, snd_usb_mixer_free() frees mixer->id_elems but the controls already added to the card still reference the freed memory. Later when snd_card_register() runs, the OSS mixer layer calls their callbacks and hits a use-after-free read.  Call trace:   get_ctl_value+0x63f/0x820 sound/usb/mixer.c:411   get_min_max_with_quirks.isra.0+0x240/0x1f40 sound/usb/mixer.c:1241   mixer_ctl_feature_info+0x26b/0x490 sound/usb/mixer.c:1381   snd_mixer_oss_build_test+0x174/0x3a0 sound/core/oss/mixer_oss.c:887   ...   snd_card_register+0x4ed/0x6d0 sound/core/init.c:923   usb_audio_probe+0x5ef/0x2a90 sound/usb/card.c:1025  Fix by calling snd_ctl_remove() for all mixer controls before freeing id_elems. We save the next pointer first because snd_ctl_remove() frees the current element.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23076",
                        "url": "https://ubuntu.com/security/CVE-2026-23076",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ctxfi: Fix potential OOB access in audio mixer handling  In the audio mixer handling code of ctxfi driver, the conf field is used as a kind of loop index, and it's referred in the index callbacks (amixer_index() and sum_index()).  As spotted recently by fuzzers, the current code causes OOB access at those functions. | UBSAN: array-index-out-of-bounds in /build/reproducible-path/linux-6.17.8/sound/pci/ctxfi/ctamixer.c:347:48 | index 8 is out of range for type 'unsigned char [8]'  After the analysis, the cause was found to be the lack of the proper (re-)initialization of conj field.  This patch addresses those OOB accesses by adding the proper initializations of the loop indices.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71199",
                        "url": "https://ubuntu.com/security/CVE-2025-71199",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc driver  at91_adc_interrupt can call at91_adc_touch_data_handler function to start the work by schedule_work(&st->touch_st.workq).  If we remove the module which will call at91_adc_remove to make cleanup, it will free indio_dev through iio_device_unregister but quite a bit later. While the work mentioned above will be used. The sequence of operations that may lead to a UAF bug is as follows:  CPU0                                      CPU1                                       | at91_adc_workq_handler at91_adc_remove                      | iio_device_unregister(indio_dev)     | //free indio_dev a bit later         |                                      | iio_push_to_buffers(indio_dev)                                      | //use indio_dev  Fix it by ensuring that the work is canceled before proceeding with the cleanup in at91_adc_remove.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23101",
                        "url": "https://ubuntu.com/security/CVE-2026-23101",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  leds: led-class: Only Add LED to leds_list when it is fully ready  Before this change the LED was added to leds_list before led_init_core() gets called adding it the list before led_classdev.set_brightness_work gets initialized.  This leaves a window where led_trigger_register() of a LED's default trigger will call led_trigger_set() which calls led_set_brightness() which in turn will end up queueing the *uninitialized* led_classdev.set_brightness_work.  This race gets hit by the lenovo-thinkpad-t14s EC driver which registers 2 LEDs with a default trigger provided by snd_ctl_led.ko in quick succession. The first led_classdev_register() causes an async modprobe of snd_ctl_led to run and that async modprobe manages to exactly hit the window where the second LED is on the leds_list without led_init_core() being called for it, resulting in:   ------------[ cut here ]------------  WARNING: CPU: 11 PID: 5608 at kernel/workqueue.c:4234 __flush_work+0x344/0x390  Hardware name: LENOVO 21N2S01F0B/21N2S01F0B, BIOS N42ET93W (2.23 ) 09/01/2025  ...  Call trace:   __flush_work+0x344/0x390 (P)   flush_work+0x2c/0x50   led_trigger_set+0x1c8/0x340   led_trigger_register+0x17c/0x1c0   led_trigger_register_simple+0x84/0xe8   snd_ctl_led_init+0x40/0xf88 [snd_ctl_led]   do_one_initcall+0x5c/0x318   do_init_module+0x9c/0x2b8   load_module+0x7e0/0x998  Close the race window by moving the adding of the LED to leds_list to after the led_init_core() call.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23064",
                        "url": "https://ubuntu.com/security/CVE-2026-23064",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: act_ife: avoid possible NULL deref  tcf_ife_encode() must make sure ife_encode() does not return NULL.  syzbot reported:  Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]  RIP: 0010:ife_tlv_meta_encode+0x41/0xa0 net/ife/ife.c:166 CPU: 3 UID: 0 PID: 8990 Comm: syz.0.696 Not tainted syzkaller #0 PREEMPT(full) Call Trace:  <TASK>   ife_encode_meta_u32+0x153/0x180 net/sched/act_ife.c:101   tcf_ife_encode net/sched/act_ife.c:841 [inline]   tcf_ife_act+0x1022/0x1de0 net/sched/act_ife.c:877   tc_act include/net/tc_wrapper.h:130 [inline]   tcf_action_exec+0x1c0/0xa20 net/sched/act_api.c:1152   tcf_exts_exec include/net/pkt_cls.h:349 [inline]   mall_classify+0x1a0/0x2a0 net/sched/cls_matchall.c:42   tc_classify include/net/tc_wrapper.h:197 [inline]   __tcf_classify net/sched/cls_api.c:1764 [inline]   tcf_classify+0x7f2/0x1380 net/sched/cls_api.c:1860   multiq_classify net/sched/sch_multiq.c:39 [inline]   multiq_enqueue+0xe0/0x510 net/sched/sch_multiq.c:66   dev_qdisc_enqueue+0x45/0x250 net/core/dev.c:4147   __dev_xmit_skb net/core/dev.c:4262 [inline]   __dev_queue_xmit+0x2998/0x46c0 net/core/dev.c:4798",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23086",
                        "url": "https://ubuntu.com/security/CVE-2026-23086",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: cap TX credit to local buffer size  The virtio transports derives its TX credit directly from peer_buf_alloc, which is set from the remote endpoint's SO_VM_SOCKETS_BUFFER_SIZE value.  On the host side this means that the amount of data we are willing to queue for a connection is scaled by a guest-chosen buffer size, rather than the host's own vsock configuration. A malicious guest can advertise a large buffer and read slowly, causing the host to allocate a correspondingly large amount of sk_buff memory. The same thing would happen in the guest with a malicious host, since virtio transports share the same code base.  Introduce a small helper, virtio_transport_tx_buf_size(), that returns min(peer_buf_alloc, buf_alloc), and use it wherever we consume peer_buf_alloc.  This ensures the effective TX window is bounded by both the peer's advertised buffer and our own buf_alloc (already clamped to buffer_max_size via SO_VM_SOCKETS_BUFFER_MAX_SIZE), so a remote peer cannot force the other to queue more data than allowed by its own vsock settings.  On an unpatched Ubuntu 22.04 host (~64 GiB RAM), running a PoC with 32 guest vsock connections advertising 2 GiB each and reading slowly drove Slab/SUnreclaim from ~0.5 GiB to ~57 GiB; the system only recovered after killing the QEMU process. That said, if QEMU memory is limited with cgroups, the maximum memory used will be limited.  With this patch applied:    Before:     MemFree:        ~61.6 GiB     Slab:           ~142 MiB     SUnreclaim:     ~117 MiB    After 32 high-credit connections:     MemFree:        ~61.5 GiB     Slab:           ~178 MiB     SUnreclaim:     ~152 MiB  Only ~35 MiB increase in Slab/SUnreclaim, no host OOM, and the guest remains responsive.  Compatibility with non-virtio transports:    - VMCI uses the AF_VSOCK buffer knobs to size its queue pairs per     socket based on the local vsk->buffer_* values; the remote side     cannot enlarge those queues beyond what the local endpoint     configured.    - Hyper-V's vsock transport uses fixed-size VMBus ring buffers and     an MTU bound; there is no peer-controlled credit field comparable     to peer_buf_alloc, and the remote endpoint cannot drive in-flight     kernel memory above those ring sizes.    - The loopback path reuses virtio_transport_common.c, so it     naturally follows the same semantics as the virtio transport.  This change is limited to virtio_transport_common.c and thus affects virtio-vsock, vhost-vsock, and loopback, bringing them in line with the \"remote window intersected with local policy\" behaviour that VMCI and Hyper-V already effectively have.  [Stefano: small adjustments after changing the previous patch] [Stefano: tweak the commit message]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23069",
                        "url": "https://ubuntu.com/security/CVE-2026-23069",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: fix potential underflow in virtio_transport_get_credit()  The credit calculation in virtio_transport_get_credit() uses unsigned arithmetic:    ret = vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt);  If the peer shrinks its advertised buffer (peer_buf_alloc) while bytes are in flight, the subtraction can underflow and produce a large positive value, potentially allowing more data to be queued than the peer can handle.  Reuse virtio_transport_has_space() which already handles this case and add a comment to make it clear why we are doing that.  [Stefano: use virtio_transport_has_space() instead of duplicating the code] [Stefano: tweak the commit message]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23119",
                        "url": "https://ubuntu.com/security/CVE-2026-23119",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: provide a net pointer to __skb_flow_dissect()  After 3cbf4ffba5ee (\"net: plumb network namespace into __skb_flow_dissect\") we have to provide a net pointer to __skb_flow_dissect(), either via skb->dev, skb->sk, or a user provided pointer.  In the following case, syzbot was able to cook a bare skb.  WARNING: net/core/flow_dissector.c:1131 at __skb_flow_dissect+0xb57/0x68b0 net/core/flow_dissector.c:1131, CPU#1: syz.2.1418/11053 Call Trace:  <TASK>   bond_flow_dissect drivers/net/bonding/bond_main.c:4093 [inline]   __bond_xmit_hash+0x2d7/0xba0 drivers/net/bonding/bond_main.c:4157   bond_xmit_hash_xdp drivers/net/bonding/bond_main.c:4208 [inline]   bond_xdp_xmit_3ad_xor_slave_get drivers/net/bonding/bond_main.c:5139 [inline]   bond_xdp_get_xmit_slave+0x1fd/0x710 drivers/net/bonding/bond_main.c:5515   xdp_master_redirect+0x13f/0x2c0 net/core/filter.c:4388   bpf_prog_run_xdp include/net/xdp.h:700 [inline]   bpf_test_run+0x6b2/0x7d0 net/bpf/test_run.c:421   bpf_prog_test_run_xdp+0x795/0x10e0 net/bpf/test_run.c:1390   bpf_prog_test_run+0x2c7/0x340 kernel/bpf/syscall.c:4703   __sys_bpf+0x562/0x860 kernel/bpf/syscall.c:6182   __do_sys_bpf kernel/bpf/syscall.c:6274 [inline]   __se_sys_bpf kernel/bpf/syscall.c:6272 [inline]   __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:6272   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xec/0xf80 arch/x86/entry/syscall_64.c:94",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23084",
                        "url": "https://ubuntu.com/security/CVE-2026-23084",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list  When the parameter pmac_id_valid argument of be_cmd_get_mac_from_list() is set to false, the driver may request the PMAC_ID from the firmware of the network card, and this function will store that PMAC_ID at the provided address pmac_id. This is the contract of this function.  However, there is a location within the driver where both pmac_id_valid == false and pmac_id == NULL are being passed. This could result in dereferencing a NULL pointer.  To resolve this issue, it is necessary to pass the address of a stub variable to the function.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23124",
                        "url": "https://ubuntu.com/security/CVE-2026-23124",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: annotate data-race in ndisc_router_discovery()  syzbot found that ndisc_router_discovery() could read and write in6_dev->ra_mtu without holding a lock [1]  This looks fine, IFLA_INET6_RA_MTU is best effort.  Add READ_ONCE()/WRITE_ONCE() to document the race.  Note that we might also reject illegal MTU values (mtu < IPV6_MIN_MTU || mtu > skb->dev->mtu) in a future patch.  [1] BUG: KCSAN: data-race in ndisc_router_discovery / ndisc_router_discovery  read to 0xffff888119809c20 of 4 bytes by task 25817 on cpu 1:   ndisc_router_discovery+0x151d/0x1c90 net/ipv6/ndisc.c:1558   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  write to 0xffff888119809c20 of 4 bytes by task 25816 on cpu 0:   ndisc_router_discovery+0x155a/0x1c90 net/ipv6/ndisc.c:1559   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  value changed: 0x00000000 -> 0xe5400659",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23121",
                        "url": "https://ubuntu.com/security/CVE-2026-23121",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mISDN: annotate data-race around dev->work  dev->work can re read locklessly in mISDN_read() and mISDN_poll(). Add READ_ONCE()/WRITE_ONCE() annotations.  BUG: KCSAN: data-race in mISDN_ioctl / mISDN_read  write to 0xffff88812d848280 of 4 bytes by task 10864 on cpu 1:   misdn_add_timer drivers/isdn/mISDN/timerdev.c:175 [inline]   mISDN_ioctl+0x2fb/0x550 drivers/isdn/mISDN/timerdev.c:233   vfs_ioctl fs/ioctl.c:51 [inline]   __do_sys_ioctl fs/ioctl.c:597 [inline]   __se_sys_ioctl+0xce/0x140 fs/ioctl.c:583   __x64_sys_ioctl+0x43/0x50 fs/ioctl.c:583   x64_sys_call+0x14b0/0x3000 arch/x86/include/generated/asm/syscalls_64.h:17   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88812d848280 of 4 bytes by task 10857 on cpu 0:   mISDN_read+0x1f2/0x470 drivers/isdn/mISDN/timerdev.c:112   do_loop_readv_writev fs/read_write.c:847 [inline]   vfs_readv+0x3fb/0x690 fs/read_write.c:1020   do_readv+0xe7/0x210 fs/read_write.c:1080   __do_sys_readv fs/read_write.c:1165 [inline]   __se_sys_readv fs/read_write.c:1162 [inline]   __x64_sys_readv+0x45/0x50 fs/read_write.c:1162   x64_sys_call+0x2831/0x3000 arch/x86/include/generated/asm/syscalls_64.h:20   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  value changed: 0x00000000 -> 0x00000001",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23126",
                        "url": "https://ubuntu.com/security/CVE-2026-23126",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netdevsim: fix a race issue related to the operation on bpf_bound_progs list  The netdevsim driver lacks a protection mechanism for operations on the bpf_bound_progs list. When the nsim_bpf_create_prog() performs list_add_tail, it is possible that nsim_bpf_destroy_prog() is simultaneously performs list_del. Concurrent operations on the list may lead to list corruption and trigger a kernel crash as follows:  [  417.290971] kernel BUG at lib/list_debug.c:62! [  417.290983] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI [  417.290992] CPU: 10 PID: 168 Comm: kworker/10:1 Kdump: loaded Not tainted 6.19.0-rc5 #1 [  417.291003] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [  417.291007] Workqueue: events bpf_prog_free_deferred [  417.291021] RIP: 0010:__list_del_entry_valid_or_report+0xa7/0xc0 [  417.291034] Code: a8 ff 0f 0b 48 89 fe 48 89 ca 48 c7 c7 48 a1 eb ae e8 ed fb a8 ff 0f 0b 48 89 fe 48 89 c2 48 c7 c7 80 a1 eb ae e8 d9 fb a8 ff <0f> 0b 48 89 d1 48 c7 c7 d0 a1 eb ae 48 89 f2 48 89 c6 e8 c2 fb a8 [  417.291040] RSP: 0018:ffffb16a40807df8 EFLAGS: 00010246 [  417.291046] RAX: 000000000000006d RBX: ffff8e589866f500 RCX: 0000000000000000 [  417.291051] RDX: 0000000000000000 RSI: ffff8e59f7b23180 RDI: ffff8e59f7b23180 [  417.291055] RBP: ffffb16a412c9000 R08: 0000000000000000 R09: 0000000000000003 [  417.291059] R10: ffffb16a40807c80 R11: ffffffffaf9edce8 R12: ffff8e594427ac20 [  417.291063] R13: ffff8e59f7b44780 R14: ffff8e58800b7a05 R15: 0000000000000000 [  417.291074] FS:  0000000000000000(0000) GS:ffff8e59f7b00000(0000) knlGS:0000000000000000 [  417.291079] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [  417.291083] CR2: 00007fc4083efe08 CR3: 00000001c3626006 CR4: 0000000000770ee0 [  417.291088] PKRU: 55555554 [  417.291091] Call Trace: [  417.291096]  <TASK> [  417.291103]  nsim_bpf_destroy_prog+0x31/0x80 [netdevsim] [  417.291154]  __bpf_prog_offload_destroy+0x2a/0x80 [  417.291163]  bpf_prog_dev_bound_destroy+0x6f/0xb0 [  417.291171]  bpf_prog_free_deferred+0x18e/0x1a0 [  417.291178]  process_one_work+0x18a/0x3a0 [  417.291188]  worker_thread+0x27b/0x3a0 [  417.291197]  ? __pfx_worker_thread+0x10/0x10 [  417.291207]  kthread+0xe5/0x120 [  417.291214]  ? __pfx_kthread+0x10/0x10 [  417.291221]  ret_from_fork+0x31/0x50 [  417.291230]  ? __pfx_kthread+0x10/0x10 [  417.291236]  ret_from_fork_asm+0x1a/0x30 [  417.291246]  </TASK>  Add a mutex lock, to prevent simultaneous addition and deletion operations on the list.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23059",
                        "url": "https://ubuntu.com/security/CVE-2026-23059",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Sanitize payload size to prevent member overflow  In qla27xx_copy_fpin_pkt() and qla27xx_copy_multiple_pkt(), the frame_size reported by firmware is used to calculate the copy length into item->iocb. However, the iocb member is defined as a fixed-size 64-byte array within struct purex_item.  If the reported frame_size exceeds 64 bytes, subsequent memcpy calls will overflow the iocb member boundary. While extra memory might be allocated, this cross-member write is unsafe and triggers warnings under CONFIG_FORTIFY_SOURCE.  Fix this by capping total_bytes to the size of the iocb member (64 bytes) before allocation and copying. This ensures all copies remain within the bounds of the destination structure member.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23110",
                        "url": "https://ubuntu.com/security/CVE-2026-23110",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: core: Wake up the error handler when final completions race against each other  The fragile ordering between marking commands completed or failed so that the error handler only wakes when the last running command completes or times out has race conditions. These race conditions can cause the SCSI layer to fail to wake the error handler, leaving I/O through the SCSI host stuck as the error state cannot advance.  First, there is an memory ordering issue within scsi_dec_host_busy(). The write which clears SCMD_STATE_INFLIGHT may be reordered with reads counting in scsi_host_busy(). While the local CPU will see its own write, reordering can allow other CPUs in scsi_dec_host_busy() or scsi_eh_inc_host_failed() to see a raised busy count, causing no CPU to see a host busy equal to the host_failed count.  This race condition can be prevented with a memory barrier on the error path to force the write to be visible before counting host busy commands.  Second, there is a general ordering issue with scsi_eh_inc_host_failed(). By counting busy commands before incrementing host_failed, it can race with a final command in scsi_dec_host_busy(), such that scsi_dec_host_busy() does not see host_failed incremented but scsi_eh_inc_host_failed() counts busy commands before SCMD_STATE_INFLIGHT is cleared by scsi_dec_host_busy(), resulting in neither waking the error handler task.  This needs the call to scsi_host_busy() to be moved after host_failed is incremented to close the race condition.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23071",
                        "url": "https://ubuntu.com/security/CVE-2026-23071",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: Fix race condition in hwspinlock irqsave routine  Previously, the address of the shared member '&map->spinlock_flags' was passed directly to 'hwspin_lock_timeout_irqsave'. This creates a race condition where multiple contexts contending for the lock could overwrite the shared flags variable, potentially corrupting the state for the current lock owner.  Fix this by using a local stack variable 'flags' to store the IRQ state temporarily.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23068",
                        "url": "https://ubuntu.com/security/CVE-2026-23068",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: spi-sprd-adi: Fix double free in probe error path  The driver currently uses spi_alloc_host() to allocate the controller but registers it using devm_spi_register_controller().  If devm_register_restart_handler() fails, the code jumps to the put_ctlr label and calls spi_controller_put(). However, since the controller was registered via a devm function, the device core will automatically call spi_controller_put() again when the probe fails. This results in a double-free of the spi_controller structure.  Fix this by switching to devm_spi_alloc_host() and removing the manual spi_controller_put() call.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23123",
                        "url": "https://ubuntu.com/security/CVE-2026-23123",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  interconnect: debugfs: initialize src_node and dst_node to empty strings  The debugfs_create_str() API assumes that the string pointer is either NULL or points to valid kmalloc() memory. Leaving the pointer uninitialized can cause problems.  Initialize src_node and dst_node to empty strings before creating the debugfs entries to guarantee that reads and writes are safe.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71198",
                        "url": "https://ubuntu.com/security/CVE-2025-71198",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event detection  The st_lsm6dsx_acc_channels array of struct iio_chan_spec has a non-NULL event_spec field, indicating support for IIO events. However, event detection is not supported for all sensors, and if userspace tries to configure accelerometer wakeup events on a sensor device that does not support them (e.g. LSM6DS0), st_lsm6dsx_write_event() dereferences a NULL pointer when trying to write to the wakeup register. Define an additional struct iio_chan_spec array whose members have a NULL event_spec field, and use this array instead of st_lsm6dsx_acc_channels for sensors without event detection capability.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23113",
                        "url": "https://ubuntu.com/security/CVE-2026-23113",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop  Currently this is checked before running the pending work. Normally this is quite fine, as work items either end up blocking (which will create a new worker for other items), or they complete fairly quickly. But syzbot reports an issue where io-wq takes seemingly forever to exit, and with a bit of debugging, this turns out to be because it queues a bunch of big (2GB - 4096b) reads with a /dev/msr* file. Since this file type doesn't support ->read_iter(), loop_rw_iter() ends up handling them. Each read returns 16MB of data read, which takes 20 (!!) seconds. With a bunch of these pending, processing the whole chain can take a long time. Easily longer than the syzbot uninterruptible sleep timeout of 140 seconds. This then triggers a complaint off the io-wq exit path:  INFO: task syz.4.135:6326 blocked for more than 143 seconds.       Not tainted syzkaller #0       Blocked by coredump. \"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\" disables this message. task:syz.4.135       state:D stack:26824 pid:6326  tgid:6324  ppid:5957  task_flags:0x400548 flags:0x00080000 Call Trace:  <TASK>  context_switch kernel/sched/core.c:5256 [inline]  __schedule+0x1139/0x6150 kernel/sched/core.c:6863  __schedule_loop kernel/sched/core.c:6945 [inline]  schedule+0xe7/0x3a0 kernel/sched/core.c:6960  schedule_timeout+0x257/0x290 kernel/time/sleep_timeout.c:75  do_wait_for_common kernel/sched/completion.c:100 [inline]  __wait_for_common+0x2fc/0x4e0 kernel/sched/completion.c:121  io_wq_exit_workers io_uring/io-wq.c:1328 [inline]  io_wq_put_and_exit+0x271/0x8a0 io_uring/io-wq.c:1356  io_uring_clean_tctx+0x10d/0x190 io_uring/tctx.c:203  io_uring_cancel_generic+0x69c/0x9a0 io_uring/cancel.c:651  io_uring_files_cancel include/linux/io_uring.h:19 [inline]  do_exit+0x2ce/0x2bd0 kernel/exit.c:911  do_group_exit+0xd3/0x2a0 kernel/exit.c:1112  get_signal+0x2671/0x26d0 kernel/signal.c:3034  arch_do_signal_or_restart+0x8f/0x7e0 arch/x86/kernel/signal.c:337  __exit_to_user_mode_loop kernel/entry/common.c:41 [inline]  exit_to_user_mode_loop+0x8c/0x540 kernel/entry/common.c:75  __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]  syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]  syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]  syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]  do_syscall_64+0x4ee/0xf80 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa02738f749 RSP: 002b:00007fa0281ae0e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca RAX: fffffffffffffe00 RBX: 00007fa0275e6098 RCX: 00007fa02738f749 RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007fa0275e6098 RBP: 00007fa0275e6090 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fa0275e6128 R14: 00007fff14e4fcb0 R15: 00007fff14e4fd98  There's really nothing wrong here, outside of processing these reads will take a LONG time. However, we can speed up the exit by checking the IO_WQ_BIT_EXIT inside the io_worker_handle_work() loop, as syzbot will exit the ring after queueing up all of these reads. Then once the first item is processed, io-wq will simply cancel the rest. That should avoid syzbot running into this complaint again.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23062",
                        "url": "https://ubuntu.com/security/CVE-2026-23062",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro  The GET_INSTANCE_ID macro that caused a kernel panic when accessing sysfs attributes:  1. Off-by-one error: The loop condition used '<=' instead of '<',    causing access beyond array bounds. Since array indices are 0-based    and go from 0 to instances_count-1, the loop should use '<'.  2. Missing NULL check: The code dereferenced attr_name_kobj->name    without checking if attr_name_kobj was NULL, causing a null pointer    dereference in min_length_show() and other attribute show functions.  The panic occurred when fwupd tried to read BIOS configuration attributes:    Oops: general protection fault [#1] SMP KASAN NOPTI   KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]   RIP: 0010:min_length_show+0xcf/0x1d0 [hp_bioscfg]  Add a NULL check for attr_name_kobj before dereferencing and corrects the loop boundary to match the pattern used elsewhere in the driver.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23131",
                        "url": "https://ubuntu.com/security/CVE-2026-23131",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kobject warnings for empty attribute names  The hp-bioscfg driver attempts to register kobjects with empty names when the HP BIOS returns attributes with empty name strings. This causes multiple kernel warnings:    kobject: (00000000135fb5e6): attempted to be registered with empty name!   WARNING: CPU: 14 PID: 3336 at lib/kobject.c:219 kobject_add_internal+0x2eb/0x310  Add validation in hp_init_bios_buffer_attribute() to check if the attribute name is empty after parsing it from the WMI buffer. If empty, log a debug message and skip registration of that attribute, allowing the module to continue processing other valid attributes.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23087",
                        "url": "https://ubuntu.com/security/CVE-2026-23087",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: xen: scsiback: Fix potential memory leak in scsiback_remove()  Memory allocated for struct vscsiblk_info in scsiback_probe() is not freed in scsiback_remove() leading to potential memory leaks on remove, as well as in the scsiback_probe() error paths. Fix that by freeing it in scsiback_remove().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71197",
                        "url": "https://ubuntu.com/security/CVE-2025-71197",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  w1: therm: Fix off-by-one buffer overflow in alarms_store  The sysfs buffer passed to alarms_store() is allocated with 'size + 1' bytes and a NUL terminator is appended. However, the 'size' argument does not account for this extra byte. The original code then allocated 'size' bytes and used strcpy() to copy 'buf', which always writes one byte past the allocated buffer since strcpy() copies until the NUL terminator at index 'size'.  Fix this by parsing the 'buf' parameter directly using simple_strtoll() without allocating any intermediate memory or string copying. This removes the overflow while simplifying the code.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23105",
                        "url": "https://ubuntu.com/security/CVE-2026-23105",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag  This is more of a preventive patch to make the code more consistent and to prevent possible exploits that employ child qlen manipulations on qfq. use cl_is_active instead of relying on the child qdisc's qlen to determine class activation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23103",
                        "url": "https://ubuntu.com/security/CVE-2026-23103",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvlan: Make the addrs_lock be per port  Make the addrs_lock be per port, not per ipvlan dev.  Initial code seems to be written in the assumption, that any address change must occur under RTNL. But it is not so for the case of IPv6. So  1) Introduce per-port addrs_lock.  2) It was needed to fix places where it was forgotten to take lock (ipvlan_open/ipvlan_close)  This appears to be a very minor problem though. Since it's highly unlikely that ipvlan_add_addr() will be called on 2 CPU simultaneously. But nevertheless, this could cause:  1) False-negative of ipvlan_addr_busy(): one interface iterated through all port->ipvlans + ipvlan->addrs under some ipvlan spinlock, and another added IP under its own lock. Though this is only possible for IPv6, since looks like only ipvlan_addr6_event() can be called without rtnl_lock.  2) Race since ipvlan_ht_addr_add(port) is called under different ipvlan->addrs_lock locks  This should not affect performance, since add/remove IP is a rare situation and spinlock is not taken on fast paths.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23120",
                        "url": "https://ubuntu.com/security/CVE-2026-23120",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  l2tp: avoid one data-race in l2tp_tunnel_del_work()  We should read sk->sk_socket only when dealing with kernel sockets.  syzbot reported the following data-race:  BUG: KCSAN: data-race in l2tp_tunnel_del_work / sk_common_release  write to 0xffff88811c182b20 of 8 bytes by task 5365 on cpu 0:   sk_set_socket include/net/sock.h:2092 [inline]   sock_orphan include/net/sock.h:2118 [inline]   sk_common_release+0xae/0x230 net/core/sock.c:4003   udp_lib_close+0x15/0x20 include/net/udp.h:325   inet_release+0xce/0xf0 net/ipv4/af_inet.c:437   __sock_release net/socket.c:662 [inline]   sock_close+0x6b/0x150 net/socket.c:1455   __fput+0x29b/0x650 fs/file_table.c:468   ____fput+0x1c/0x30 fs/file_table.c:496   task_work_run+0x131/0x1a0 kernel/task_work.c:233   resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]   __exit_to_user_mode_loop kernel/entry/common.c:44 [inline]   exit_to_user_mode_loop+0x1fe/0x740 kernel/entry/common.c:75   __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]   syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]   syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]   syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]   do_syscall_64+0x1e1/0x2b0 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88811c182b20 of 8 bytes by task 827 on cpu 1:   l2tp_tunnel_del_work+0x2f/0x1a0 net/l2tp/l2tp_core.c:1418   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0x4ce/0x9d0 kernel/workqueue.c:3340   worker_thread+0x582/0x770 kernel/workqueue.c:3421   kthread+0x489/0x510 kernel/kthread.c:463   ret_from_fork+0x149/0x290 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246  value changed: 0xffff88811b818000 -> 0x0000000000000000",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23083",
                        "url": "https://ubuntu.com/security/CVE-2026-23083",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fou: Don't allow 0 for FOU_ATTR_IPPROTO.  fou_udp_recv() has the same problem mentioned in the previous patch.  If FOU_ATTR_IPPROTO is set to 0, skb is not freed by fou_udp_recv() nor \"resubmit\"-ted in ip_protocol_deliver_rcu().  Let's forbid 0 for FOU_ATTR_IPPROTO.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23095",
                        "url": "https://ubuntu.com/security/CVE-2026-23095",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gue: Fix skb memleak with inner IP protocol 0.  syzbot reported skb memleak below. [0]  The repro generated a GUE packet with its inner protocol 0.  gue_udp_recv() returns -guehdr->proto_ctype for \"resubmit\" in ip_protocol_deliver_rcu(), but this only works with non-zero protocol number.  Let's drop such packets.  Note that 0 is a valid number (IPv6 Hop-by-Hop Option).  I think it is not practical to encap HOPOPT in GUE, so once someone starts to complain, we could pass down a resubmit flag pointer to distinguish two zeros from the upper layer:    * no error   * resubmit HOPOPT  [0] BUG: memory leak unreferenced object 0xffff888109695a00 (size 240):   comm \"syz.0.17\", pid 6088, jiffies 4294943096   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 40 c2 10 81 88 ff ff 00 00 00 00 00 00 00 00  .@..............   backtrace (crc a84b336f):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4958 [inline]     slab_alloc_node mm/slub.c:5263 [inline]     kmem_cache_alloc_noprof+0x3b4/0x590 mm/slub.c:5270     __build_skb+0x23/0x60 net/core/skbuff.c:474     build_skb+0x20/0x190 net/core/skbuff.c:490     __tun_build_skb drivers/net/tun.c:1541 [inline]     tun_build_skb+0x4a1/0xa40 drivers/net/tun.c:1636     tun_get_user+0xc12/0x2030 drivers/net/tun.c:1770     tun_chr_write_iter+0x71/0x120 drivers/net/tun.c:1999     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0xa7/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xf80 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23125",
                        "url": "https://ubuntu.com/security/CVE-2026-23125",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT  A null-ptr-deref was reported in the SCTP transmit path when SCTP-AUTH key initialization fails:    ==================================================================   KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]   CPU: 0 PID: 16 Comm: ksoftirqd/0 Tainted: G W 6.6.0 #2   RIP: 0010:sctp_packet_bundle_auth net/sctp/output.c:264 [inline]   RIP: 0010:sctp_packet_append_chunk+0xb36/0x1260 net/sctp/output.c:401   Call Trace:    sctp_packet_transmit_chunk+0x31/0x250 net/sctp/output.c:189   sctp_outq_flush_data+0xa29/0x26d0 net/sctp/outqueue.c:1111   sctp_outq_flush+0xc80/0x1240 net/sctp/outqueue.c:1217   sctp_cmd_interpreter.isra.0+0x19a5/0x62c0 net/sctp/sm_sideeffect.c:1787   sctp_side_effects net/sctp/sm_sideeffect.c:1198 [inline]   sctp_do_sm+0x1a3/0x670 net/sctp/sm_sideeffect.c:1169   sctp_assoc_bh_rcv+0x33e/0x640 net/sctp/associola.c:1052   sctp_inq_push+0x1dd/0x280 net/sctp/inqueue.c:88   sctp_rcv+0x11ae/0x3100 net/sctp/input.c:243   sctp6_rcv+0x3d/0x60 net/sctp/ipv6.c:1127  The issue is triggered when sctp_auth_asoc_init_active_key() fails in sctp_sf_do_5_1C_ack() while processing an INIT_ACK. In this case, the command sequence is currently:  - SCTP_CMD_PEER_INIT - SCTP_CMD_TIMER_STOP (T1_INIT) - SCTP_CMD_TIMER_START (T1_COOKIE) - SCTP_CMD_NEW_STATE (COOKIE_ECHOED) - SCTP_CMD_ASSOC_SHKEY - SCTP_CMD_GEN_COOKIE_ECHO  If SCTP_CMD_ASSOC_SHKEY fails, asoc->shkey remains NULL, while asoc->peer.auth_capable and asoc->peer.peer_chunks have already been set by SCTP_CMD_PEER_INIT. This allows a DATA chunk with auth = 1 and shkey = NULL to be queued by sctp_datamsg_from_user().  Since command interpretation stops on failure, no COOKIE_ECHO should been sent via SCTP_CMD_GEN_COOKIE_ECHO. However, the T1_COOKIE timer has already been started, and it may enqueue a COOKIE_ECHO into the outqueue later. As a result, the DATA chunk can be transmitted together with the COOKIE_ECHO in sctp_outq_flush_data(), leading to the observed issue.  Similar to the other places where it calls sctp_auth_asoc_init_active_key() right after sctp_process_init(), this patch moves the SCTP_CMD_ASSOC_SHKEY immediately after SCTP_CMD_PEER_INIT, before stopping T1_INIT and starting T1_COOKIE. This ensures that if shared key generation fails, authenticated DATA cannot be sent. It also allows the T1_INIT timer to retransmit INIT, giving the client another chance to process INIT_ACK and retry key setup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23099",
                        "url": "https://ubuntu.com/security/CVE-2026-23099",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: limit BOND_MODE_8023AD to Ethernet devices  BOND_MODE_8023AD makes sense for ARPHRD_ETHER only.  syzbot reported:   BUG: KASAN: global-out-of-bounds in __hw_addr_create net/core/dev_addr_lists.c:63 [inline]  BUG: KASAN: global-out-of-bounds in __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118 Read of size 16 at addr ffffffff8bf94040 by task syz.1.3580/19497  CPU: 1 UID: 0 PID: 19497 Comm: syz.1.3580 Tainted: G             L     syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>   dump_stack_lvl+0xe8/0x150 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  check_region_inline mm/kasan/generic.c:-1 [inline]   kasan_check_range+0x2b0/0x2c0 mm/kasan/generic.c:200   __asan_memcpy+0x29/0x70 mm/kasan/shadow.c:105   __hw_addr_create net/core/dev_addr_lists.c:63 [inline]   __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118   __dev_mc_add net/core/dev_addr_lists.c:868 [inline]   dev_mc_add+0xa1/0x120 net/core/dev_addr_lists.c:886   bond_enslave+0x2b8b/0x3ac0 drivers/net/bonding/bond_main.c:2180   do_set_master+0x533/0x6d0 net/core/rtnetlink.c:2963   do_setlink+0xcf0/0x41c0 net/core/rtnetlink.c:3165   rtnl_changelink net/core/rtnetlink.c:3776 [inline]   __rtnl_newlink net/core/rtnetlink.c:3935 [inline]   rtnl_newlink+0x161c/0x1c90 net/core/rtnetlink.c:4072   rtnetlink_rcv_msg+0x7cf/0xb70 net/core/rtnetlink.c:6958   netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2550   netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline]   netlink_unicast+0x82f/0x9e0 net/netlink/af_netlink.c:1344   netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1894   sock_sendmsg_nosec net/socket.c:727 [inline]   __sock_sendmsg+0x21c/0x270 net/socket.c:742   ____sys_sendmsg+0x505/0x820 net/socket.c:2592   ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2646   __sys_sendmsg+0x164/0x220 net/socket.c:2678   do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]   __do_fast_syscall_32+0x1dc/0x560 arch/x86/entry/syscall_32.c:307   do_fast_syscall_32+0x34/0x80 arch/x86/entry/syscall_32.c:332  entry_SYSENTER_compat_after_hwframe+0x84/0x8e  </TASK>  The buggy address belongs to the variable:  lacpdu_mcast_addr+0x0/0x40",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71194",
                        "url": "https://ubuntu.com/security/CVE-2025-71194",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix deadlock in wait_current_trans() due to ignored transaction type  When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans().  This can lead to a deadlock scenario involving two transactions and pending ordered extents:    1. Transaction A is in TRANS_STATE_COMMIT_DOING state    2. A worker processing an ordered extent calls start_transaction()      with TRANS_JOIN    3. join_transaction() returns -EBUSY because Transaction A is in      TRANS_STATE_COMMIT_DOING    4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes    5. A new Transaction B is created (TRANS_STATE_RUNNING)    6. The ordered extent from step 2 is added to Transaction B's      pending ordered extents    7. Transaction B immediately starts commit by another task and      enters TRANS_STATE_COMMIT_START    8. The worker finally reaches wait_current_trans(), sees Transaction B      in TRANS_STATE_COMMIT_START (a blocked state), and waits      unconditionally    9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START      according to btrfs_blocked_trans_types[]    10. Transaction B is waiting for pending ordered extents to complete    11. Deadlock: Transaction B waits for ordered extent, ordered extent       waits for Transaction B  This can be illustrated by the following call stacks:   CPU0                              CPU1                                     btrfs_finish_ordered_io()                                       start_transaction(TRANS_JOIN)                                         join_transaction()                                           # -EBUSY (Transaction A is                                           # TRANS_STATE_COMMIT_DOING)   # Transaction A completes   # Transaction B created   # ordered extent added to   # Transaction B's pending list   btrfs_commit_transaction()     # Transaction B enters     # TRANS_STATE_COMMIT_START     # waiting for pending ordered     # extents                                         wait_current_trans()                                           # waits for Transaction B                                           # (should not wait!)  Task bstore_kv_sync in btrfs_commit_transaction waiting for ordered extents:    __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   btrfs_commit_transaction+0xbf7/0xda0 [btrfs]   btrfs_sync_file+0x342/0x4d0 [btrfs]   __x64_sys_fdatasync+0x4b/0x80   do_syscall_64+0x33/0x40   entry_SYSCALL_64_after_hwframe+0x44/0xa9  Task kworker in wait_current_trans waiting for transaction commit:    Workqueue: btrfs-syno_nocow btrfs_work_helper [btrfs]   __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   wait_current_trans+0xb0/0x110 [btrfs]   start_transaction+0x346/0x5b0 [btrfs]   btrfs_finish_ordered_io.isra.0+0x49b/0x9c0 [btrfs]   btrfs_work_helper+0xe8/0x350 [btrfs]   process_one_work+0x1d3/0x3c0   worker_thread+0x4d/0x3e0   kthread+0x12d/0x150   ret_from_fork+0x1f/0x30  Fix this by passing the transaction type to wait_current_trans() and checking btrfs_blocked_trans_types[cur_trans->state] against the given type before deciding to wait. This ensures that transaction types which are allowed to join during certain blocked states will not unnecessarily wait and cause deadlocks.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71185",
                        "url": "https://ubuntu.com/security/CVE-2025-71185",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation  Make sure to drop the reference taken when looking up the crossbar platform device during am335x route allocation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23026",
                        "url": "https://ubuntu.com/security/CVE-2026-23026",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config()  Fix a memory leak in gpi_peripheral_config() where the original memory pointed to by gchan->config could be lost if krealloc() fails.  The issue occurs when: 1. gchan->config points to previously allocated memory 2. krealloc() fails and returns NULL 3. The function directly assigns NULL to gchan->config, losing the    reference to the original memory 4. The original memory becomes unreachable and cannot be freed  Fix this by using a temporary variable to hold the krealloc() result and only updating gchan->config when the allocation succeeds.  Found via static analysis and code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71188",
                        "url": "https://ubuntu.com/security/CVE-2025-71188",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: lpc18xx-dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71163",
                        "url": "https://ubuntu.com/security/CVE-2025-71163",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: idxd: fix device leaks on compat bind and unbind  Make sure to drop the reference taken when looking up the idxd device as part of the compat bind and unbind sysfs interface.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71189",
                        "url": "https://ubuntu.com/security/CVE-2025-71189",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: dw: dmamux: fix OF node leak on route allocation failure  Make sure to drop the reference taken to the DMA master OF node also on late route allocation failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71190",
                        "url": "https://ubuntu.com/security/CVE-2025-71190",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: bcm-sba-raid: fix device leak on probe  Make sure to drop the reference taken when looking up the mailbox device during probe on probe failures and on driver unbind.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71191",
                        "url": "https://ubuntu.com/security/CVE-2025-71191",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: at_hdmac: fix device leak on of_dma_xlate()  Make sure to drop the reference taken when looking up the DMA platform device during of_dma_xlate() when releasing channel resources.  Note that commit 3832b78b3ec2 (\"dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()\") fixed the leak in a couple of error paths but the reference is still leaking on successful allocation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23049",
                        "url": "https://ubuntu.com/security/CVE-2026-23049",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel  The connector type for the DataImage SCF0700C48GGU18 panel is missing and devm_drm_panel_bridge_add() requires connector type to be set. This leads to a warning and a backtrace in the kernel log and panel does not work: \" WARNING: CPU: 3 PID: 38 at drivers/gpu/drm/bridge/panel.c:379 devm_drm_of_get_bridge+0xac/0xb8 \" The warning is triggered by a check for valid connector type in devm_drm_panel_bridge_add(). If there is no valid connector type set for a panel, the warning is printed and panel is not added. Fill in the missing connector type to fix the warning and make the panel operational once again.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23144",
                        "url": "https://ubuntu.com/security/CVE-2026-23144",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure  When a context DAMON sysfs directory setup is failed after setup of attrs/ directory, subdirectories of attrs/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23145",
                        "url": "https://ubuntu.com/security/CVE-2026-23145",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref  The error branch for ext4_xattr_inode_update_ref forget to release the refcount for iloc.bh. Find this when review code.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22997",
                        "url": "https://ubuntu.com/security/CVE-2026-22997",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session upon receiving the second rts  Since j1939_session_deactivate_activate_next() in j1939_tp_rxtimer() is called only when the timer is enabled, we need to call j1939_session_deactivate_activate_next() if we cancelled the timer. Otherwise, refcount for j1939_session leaks, which will later appear as  | unregister_netdevice: waiting for vcan0 to become free. Usage count = 2.  problem.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23031",
                        "url": "https://ubuntu.com/security/CVE-2026-23031",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak  In gs_can_open(), the URBs for USB-in transfers are allocated, added to the parent->rx_submitted anchor and submitted. In the complete callback gs_usb_receive_bulk_callback(), the URB is processed and resubmitted. In gs_can_close() the URBs are freed by calling usb_kill_anchored_urbs(parent->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in gs_can_close().  Fix the memory leak by anchoring the URB in the gs_usb_receive_bulk_callback() to the parent->rx_submitted anchor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23032",
                        "url": "https://ubuntu.com/security/CVE-2026-23032",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  null_blk: fix kmemleak by releasing references to fault configfs items  When CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is enabled, the null-blk driver sets up fault injection support by creating the timeout_inject, requeue_inject, and init_hctx_fault_inject configfs items as children of the top-level nullbX configfs group.  However, when the nullbX device is removed, the references taken to these fault-config configfs items are not released. As a result, kmemleak reports a memory leak, for example:  unreferenced object 0xc00000021ff25c40 (size 32):   comm \"mkdir\", pid 10665, jiffies 4322121578   hex dump (first 32 bytes):     69 6e 69 74 5f 68 63 74 78 5f 66 61 75 6c 74 5f  init_hctx_fault_     69 6e 6a 65 63 74 00 88 00 00 00 00 00 00 00 00  inject..........   backtrace (crc 1a018c86):     __kmalloc_node_track_caller_noprof+0x494/0xbd8     kvasprintf+0x74/0xf4     config_item_set_name+0xf0/0x104     config_group_init_type_name+0x48/0xfc     fault_config_init+0x48/0xf0     0xc0080000180559e4     configfs_mkdir+0x304/0x814     vfs_mkdir+0x49c/0x604     do_mkdirat+0x314/0x3d0     sys_mkdir+0xa0/0xd8     system_call_exception+0x1b0/0x4f0     system_call_vectored_common+0x15c/0x2ec  Fix this by explicitly releasing the references to the fault-config configfs items when dropping the reference to the top-level nullbX configfs group.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23033",
                        "url": "https://ubuntu.com/security/CVE-2026-23033",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: omap-dma: fix dma_pool resource leak in error paths  The dma_pool created by dma_pool_create() is not destroyed when dma_async_device_register() or of_dma_controller_register() fails, causing a resource leak in the probe error paths.  Add dma_pool_destroy() in both error paths to properly release the allocated dma_pool resource.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71196",
                        "url": "https://ubuntu.com/security/CVE-2025-71196",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: stm32-usphyc: Fix off by one in probe()  The \"index\" variable is used as an index into the usbphyc->phys[] array which has usbphyc->nphys elements.  So if it is equal to usbphyc->nphys then it is one element out of bounds.  The \"index\" comes from the device tree so it's data that we trust and it's unlikely to be wrong, however it's obviously still worth fixing the bug.  Change the > to >=.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71193",
                        "url": "https://ubuntu.com/security/CVE-2025-71193",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: qcom-qusb2: Fix NULL pointer dereference on early suspend  Enabling runtime PM before attaching the QPHY instance as driver data can lead to a NULL pointer dereference in runtime PM callbacks that expect valid driver data. There is a small window where the suspend callback may run after PM runtime enabling and before runtime forbid. This causes a sporadic crash during boot:  ``` Unable to handle kernel NULL pointer dereference at virtual address 00000000000000a1 [...] CPU: 0 UID: 0 PID: 11 Comm: kworker/0:1 Not tainted 6.16.7+ #116 PREEMPT Workqueue: pm pm_runtime_work pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : qusb2_phy_runtime_suspend+0x14/0x1e0 [phy_qcom_qusb2] lr : pm_generic_runtime_suspend+0x2c/0x44 [...] ```  Attach the QPHY instance as driver data before enabling runtime PM to prevent NULL pointer dereference in runtime PM callbacks.  Reorder pm_runtime_enable() and pm_runtime_forbid() to prevent a short window where an unnecessary runtime suspend can occur.  Use the devres-managed version to ensure PM runtime is symmetrically disabled during driver removal for proper cleanup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71162",
                        "url": "https://ubuntu.com/security/CVE-2025-71162",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: tegra-adma: Fix use-after-free  A use-after-free bug exists in the Tegra ADMA driver when audio streams are terminated, particularly during XRUN conditions. The issue occurs when the DMA buffer is freed by tegra_adma_terminate_all() before the vchan completion tasklet finishes accessing it.  The race condition follows this sequence:    1. DMA transfer completes, triggering an interrupt that schedules the      completion tasklet (tasklet has not executed yet)   2. Audio playback stops, calling tegra_adma_terminate_all() which      frees the DMA buffer memory via kfree()   3. The scheduled tasklet finally executes, calling vchan_complete()      which attempts to access the already-freed memory  Since tasklets can execute at any time after being scheduled, there is no guarantee that the buffer will remain valid when vchan_complete() runs.  Fix this by properly synchronizing the virtual channel completion:  - Calling vchan_terminate_vdesc() in tegra_adma_stop() to mark the    descriptors as terminated instead of freeing the descriptor.  - Add the callback tegra_adma_synchronize() that calls    vchan_synchronize() which kills any pending tasklets and frees any    terminated descriptors.  Crash logs: [  337.427523] BUG: KASAN: use-after-free in vchan_complete+0x124/0x3b0 [  337.427544] Read of size 8 at addr ffff000132055428 by task swapper/0/0  [  337.427562] Call trace: [  337.427564]  dump_backtrace+0x0/0x320 [  337.427571]  show_stack+0x20/0x30 [  337.427575]  dump_stack_lvl+0x68/0x84 [  337.427584]  print_address_description.constprop.0+0x74/0x2b8 [  337.427590]  kasan_report+0x1f4/0x210 [  337.427598]  __asan_load8+0xa0/0xd0 [  337.427603]  vchan_complete+0x124/0x3b0 [  337.427609]  tasklet_action_common.constprop.0+0x190/0x1d0 [  337.427617]  tasklet_action+0x30/0x40 [  337.427623]  __do_softirq+0x1a0/0x5c4 [  337.427628]  irq_exit+0x110/0x140 [  337.427633]  handle_domain_irq+0xa4/0xe0 [  337.427640]  gic_handle_irq+0x64/0x160 [  337.427644]  call_on_irq_stack+0x20/0x4c [  337.427649]  do_interrupt_handler+0x7c/0x90 [  337.427654]  el1_interrupt+0x30/0x80 [  337.427659]  el1h_64_irq_handler+0x18/0x30 [  337.427663]  el1h_64_irq+0x7c/0x80 [  337.427667]  cpuidle_enter_state+0xe4/0x540 [  337.427674]  cpuidle_enter+0x54/0x80 [  337.427679]  do_idle+0x2e0/0x380 [  337.427685]  cpu_startup_entry+0x2c/0x70 [  337.427690]  rest_init+0x114/0x130 [  337.427695]  arch_call_rest_init+0x18/0x24 [  337.427702]  start_kernel+0x380/0x3b4 [  337.427706]  __primary_switched+0xc0/0xc8",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71195",
                        "url": "https://ubuntu.com/security/CVE-2025-71195",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: xilinx: xdma: Fix regmap max_register  The max_register field is assigned the size of the register memory region instead of the offset of the last register. The result is that reading from the regmap via debugfs can cause a segmentation fault:  tail /sys/kernel/debug/regmap/xdma.1.auto/registers Unable to handle kernel paging request at virtual address ffff800082f70000 Mem abort info:   ESR = 0x0000000096000007   EC = 0x25: DABT (current EL), IL = 32 bits   SET = 0, FnV = 0   EA = 0, S1PTW = 0   FSC = 0x07: level 3 translation fault [...] Call trace:  regmap_mmio_read32le+0x10/0x30  _regmap_bus_reg_read+0x74/0xc0  _regmap_read+0x68/0x198  regmap_read+0x54/0x88  regmap_read_debugfs+0x140/0x380  regmap_map_read_file+0x30/0x48  full_proxy_read+0x68/0xc8  vfs_read+0xcc/0x310  ksys_read+0x7c/0x120  __arm64_sys_read+0x24/0x40  invoke_syscall.constprop.0+0x64/0x108  do_el0_svc+0xb0/0xd8  el0_svc+0x38/0x130  el0t_64_sync_handler+0x120/0x138  el0t_64_sync+0x194/0x198 Code: aa1e03e9 d503201f f9400000 8b214000 (b9400000) ---[ end trace 0000000000000000 ]--- note: tail[1217] exited with irqs disabled note: tail[1217] exited with preempt_count 1 Segmentation fault",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23006",
                        "url": "https://ubuntu.com/security/CVE-2026-23006",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: tlv320adcx140: fix null pointer  The \"snd_soc_component\" in \"adcx140_priv\" was only used once but never set. It was only used for reaching \"dev\" which is already present in \"adcx140_priv\".",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22999",
                        "url": "https://ubuntu.com/security/CVE-2026-22999",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: do not free existing class in qfq_change_class()  Fixes qfq_change_class() error case.  cl->qdisc and cl should only be freed if a new class and qdisc were allocated, or we risk various UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23010",
                        "url": "https://ubuntu.com/security/CVE-2026-23010",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix use-after-free in inet6_addr_del().  syzbot reported use-after-free of inet6_ifaddr in inet6_addr_del(). [0]  The cited commit accidentally moved ipv6_del_addr() for mngtmpaddr before reading its ifp->flags for temporary addresses in inet6_addr_del().  Let's move ipv6_del_addr() down to fix the UAF.  [0]: BUG: KASAN: slab-use-after-free in inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117 Read of size 4 at addr ffff88807b89c86c by task syz.3.1618/9593  CPU: 0 UID: 0 PID: 9593 Comm: syz.3.1618 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>  __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:378 [inline]  print_report+0xcd/0x630 mm/kasan/report.c:482  kasan_report+0xe0/0x110 mm/kasan/report.c:595  inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117  addrconf_del_ifaddr+0x11e/0x190 net/ipv6/addrconf.c:3181  inet6_ioctl+0x1e5/0x2b0 net/ipv6/af_inet6.c:582  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f164cf8f749 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f164de64038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007f164d1e5fa0 RCX: 00007f164cf8f749 RDX: 0000200000000000 RSI: 0000000000008936 RDI: 0000000000000003 RBP: 00007f164d013f91 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f164d1e6038 R14: 00007f164d1e5fa0 R15: 00007ffde15c8288  </TASK>  Allocated by task 9593:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  poison_kmalloc_redzone mm/kasan/common.c:397 [inline]  __kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:414  kmalloc_noprof include/linux/slab.h:957 [inline]  kzalloc_noprof include/linux/slab.h:1094 [inline]  ipv6_add_addr+0x4e3/0x2010 net/ipv6/addrconf.c:1120  inet6_addr_add+0x256/0x9b0 net/ipv6/addrconf.c:3050  addrconf_add_ifaddr+0x1fc/0x450 net/ipv6/addrconf.c:3160  inet6_ioctl+0x103/0x2b0 net/ipv6/af_inet6.c:580  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 6099:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  kasan_save_free_info+0x3b/0x60 mm/kasan/generic.c:584  poison_slab_object mm/kasan/common.c:252 [inline]  __kasan_slab_free+0x5f/0x80 mm/kasan/common.c:284  kasan_slab_free include/linux/kasan.h:234 [inline]  slab_free_hook mm/slub.c:2540 [inline]  slab_free_freelist_hook mm/slub.c:2569 [inline]  slab_free_bulk mm/slub.c:6696 [inline]  kmem_cache_free_bulk mm/slub.c:7383 [inline]  kmem_cache_free_bulk+0x2bf/0x680 mm/slub.c:7362  kfree_bulk include/linux/slab.h:830 [inline]  kvfree_rcu_bulk+0x1b7/0x1e0 mm/slab_common.c:1523  kvfree_rcu_drain_ready mm/slab_common.c:1728 [inline]  kfree_rcu_monitor+0x1d0/0x2f0 mm/slab_common.c:1801  process_one_work+0x9ba/0x1b20 kernel/workqueue.c:3257  process_scheduled_works kernel/workqu ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23054",
                        "url": "https://ubuntu.com/security/CVE-2026-23054",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hv_netvsc: reject RSS hash key programming without RX indirection table  RSS configuration requires a valid RX indirection table. When the device reports a single receive queue, rndis_filter_device_add() does not allocate an indirection table, accepting RSS hash key updates in this state leads to a hang.  Fix this by gating netvsc_set_rxfh() on ndc->rx_table_sz and return -EOPNOTSUPP when the table is absent. This aligns set_rxfh with the device capabilities and prevents incorrect behavior.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23011",
                        "url": "https://ubuntu.com/security/CVE-2026-23011",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: ip_gre: make ipgre_header() robust  Analog to commit db5b4e39c4e6 (\"ip6_gre: make ip6gre_header() robust\")  Over the years, syzbot found many ways to crash the kernel in ipgre_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 ipgre device.  [1] skbuff: skb_under_panic: text:ffffffff89ea3cb7 len:2030915468 put:2030915372 head:ffff888058b43000 data:ffff887fdfa6e194 tail:0x120 end:0x6c0 dev:team0  kernel BUG at net/core/skbuff.c:213 ! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 1 UID: 0 PID: 1322 Comm: kworker/1:9 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Workqueue: mld mld_ifc_work  RIP: 0010:skb_panic+0x157/0x160 net/core/skbuff.c:213 Call Trace:  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ipgre_header+0x67/0x290 net/ipv4/ip_gre.c:897   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   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   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0xad1/0x1770 kernel/workqueue.c:3340   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23001",
                        "url": "https://ubuntu.com/security/CVE-2026-23001",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix possible UAF in macvlan_forward_source()  Add RCU protection on (struct macvlan_source_entry)->vlan.  Whenever macvlan_hash_del_source() is called, we must clear entry->vlan pointer before RCU grace period starts.  This allows macvlan_forward_source() to skip over entries queued for freeing.  Note that macvlan_dev are already RCU protected, as they are embedded in a standard netdev (netdev_priv(ndev)).  https: //lore.kernel.org/netdev/695fb1e8.050a0220.1c677c.039f.GAE@google.com/T/#u",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23003",
                        "url": "https://ubuntu.com/security/CVE-2026-23003",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv()  Blamed commit did not take care of VLAN encapsulations as spotted by syzbot [1].  Use skb_vlan_inet_prepare() instead of pskb_inet_may_pull().  [1]  BUG: KMSAN: uninit-value in __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]  BUG: KMSAN: uninit-value in INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]  BUG: KMSAN: uninit-value in IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]   INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]   IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   ip6ip6_dscp_ecn_decapsulate+0x16f/0x1b0 net/ipv6/ip6_tunnel.c:729   __ip6_tnl_rcv+0xed9/0x1b50 net/ipv6/ip6_tunnel.c:860   ip6_tnl_rcv+0xc3/0x100 net/ipv6/ip6_tunnel.c:903  gre_rcv+0x1529/0x1b90 net/ipv6/ip6_gre.c:-1   ip6_protocol_deliver_rcu+0x1c89/0x2c60 net/ipv6/ip6_input.c:438   ip6_input_finish+0x1f4/0x4a0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x9c/0x330 net/ipv6/ip6_input.c:500   ip6_mc_input+0x7ca/0xc10 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x958/0x990 net/ipv6/ip6_input.c:79   NF_HOOK include/linux/netfilter.h:318 [inline]   ipv6_rcv+0xf1/0x3c0 net/ipv6/ip6_input.c:311   __netif_receive_skb_one_core net/core/dev.c:6139 [inline]   __netif_receive_skb+0x1df/0xac0 net/core/dev.c:6252   netif_receive_skb_internal net/core/dev.c:6338 [inline]   netif_receive_skb+0x57/0x630 net/core/dev.c:6397   tun_rx_batched+0x1df/0x980 drivers/net/tun.c:1485   tun_get_user+0x5c0e/0x6c60 drivers/net/tun.c:1953   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Uninit was created at:   slab_post_alloc_hook mm/slub.c:4960 [inline]   slab_alloc_node mm/slub.c:5263 [inline]   kmem_cache_alloc_node_noprof+0x9e7/0x17a0 mm/slub.c:5315   kmalloc_reserve+0x13c/0x4b0 net/core/skbuff.c:586   __alloc_skb+0x805/0x1040 net/core/skbuff.c:690   alloc_skb include/linux/skbuff.h:1383 [inline]   alloc_skb_with_frags+0xc5/0xa60 net/core/skbuff.c:6712   sock_alloc_send_pskb+0xacc/0xc60 net/core/sock.c:2995   tun_alloc_skb drivers/net/tun.c:1461 [inline]   tun_get_user+0x1142/0x6c60 drivers/net/tun.c:1794   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  CPU: 0 UID: 0 PID: 6465 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(none) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23141",
                        "url": "https://ubuntu.com/security/CVE-2026-23141",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: send: check for inline extents in range_is_hole_in_parent()  Before accessing the disk_bytenr field of a file extent item we need to check if we are dealing with an inline extent. This is because for inline extents their data starts at the offset of the disk_bytenr field. So accessing the disk_bytenr means we are accessing inline data or in case the inline data is less than 8 bytes we can actually cause an invalid memory access if this inline extent item is the first item in the leaf or access metadata from other items.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22998",
                        "url": "https://ubuntu.com/security/CVE-2026-22998",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec  Commit efa56305908b (\"nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length\") added ttag bounds checking and data_offset validation in nvmet_tcp_handle_h2c_data_pdu(), but it did not validate whether the command's data structures (cmd->req.sg and cmd->iov) have been properly initialized before processing H2C_DATA PDUs.  The nvmet_tcp_build_pdu_iovec() function dereferences these pointers without NULL checks. This can be triggered by sending H2C_DATA PDU immediately after the ICREQ/ICRESP handshake, before sending a CONNECT command or NVMe write command.  Attack vectors that trigger NULL pointer dereferences: 1. H2C_DATA PDU sent before CONNECT → both pointers NULL 2. H2C_DATA PDU for READ command → cmd->req.sg allocated, cmd->iov NULL 3. H2C_DATA PDU for uninitialized command slot → both pointers NULL  The fix validates both cmd->req.sg and cmd->iov before calling nvmet_tcp_build_pdu_iovec(). Both checks are required because: - Uninitialized commands: both NULL - READ commands: cmd->req.sg allocated, cmd->iov NULL - WRITE commands: both allocated",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23037",
                        "url": "https://ubuntu.com/security/CVE-2026-23037",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: etas_es58x: allow partial RX URB allocation to succeed  When es58x_alloc_rx_urbs() fails to allocate the requested number of URBs but succeeds in allocating some, it returns an error code. This causes es58x_open() to return early, skipping the cleanup label 'free_urbs', which leads to the anchored URBs being leaked.  As pointed out by maintainer Vincent Mailhol, the driver is designed to handle partial URB allocation gracefully. Therefore, partial allocation should not be treated as a fatal error.  Modify es58x_alloc_rx_urbs() to return 0 if at least one URB has been allocated, restoring the intended behavior and preventing the leak in es58x_open().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23038",
                        "url": "https://ubuntu.com/security/CVE-2026-23038",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node()  In nfs4_ff_alloc_deviceid_node(), if the allocation for ds_versions fails, the function jumps to the out_scratch label without freeing the already allocated dsaddrs list, leading to a memory leak.  Fix this by jumping to the out_err_drain_dsaddrs label, which properly frees the dsaddrs list before cleaning up other resources.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71184",
                        "url": "https://ubuntu.com/security/CVE-2025-71184",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix NULL dereference on root when tracing inode eviction  When evicting an inode the first thing we do is to setup tracing for it, which implies fetching the root's id. But in btrfs_evict_inode() the root might be NULL, as implied in the next check that we do in btrfs_evict_inode().  Hence, we either should set the ->root_objectid to 0 in case the root is NULL, or we move tracing setup after checking that the root is not NULL. Setting the rootid to 0 at least gives us the possibility to trace this call even in the case when the root is NULL, so that's the solution taken here.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "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-2025-71160",
                        "url": "https://ubuntu.com/security/CVE-2025-71160",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: avoid chain re-validation if possible  Hamza Mahfooz reports cpu soft lock-ups in nft_chain_validate():   watchdog: BUG: soft lockup - CPU#1 stuck for 27s! [iptables-nft-re:37547] [..]  RIP: 0010:nft_chain_validate+0xcb/0x110 [nf_tables] [..]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_table_validate+0x6b/0xb0 [nf_tables]   nf_tables_validate+0x8b/0xa0 [nf_tables]   nf_tables_commit+0x1df/0x1eb0 [nf_tables] [..]  Currently nf_tables will traverse the entire table (chain graph), starting from the entry points (base chains), exploring all possible paths (chain jumps).  But there are cases where we could avoid revalidation.  Consider: 1  input -> j2 -> j3 2  input -> j2 -> j3 3  input -> j1 -> j2 -> j3  Then the second rule does not need to revalidate j2, and, by extension j3, because this was already checked during validation of the first rule. We need to validate it only for rule 3.  This is needed because chain loop detection also ensures we do not exceed the jump stack: Just because we know that j2 is cycle free, its last jump might now exceed the allowed stack size.  We also need to update all reachable chains with the new largest observed call depth.  Care has to be taken to revalidate even if the chain depth won't be an issue: chain validation also ensures that expressions are not called from invalid base chains.  For example, the masquerade expression can only be called from NAT postrouting base chains.  Therefore we also need to keep record of the base chain context (type, hooknum) and revalidate if the chain becomes reachable from a different hook location.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22994",
                        "url": "https://ubuntu.com/security/CVE-2026-22994",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix reference count leak in bpf_prog_test_run_xdp()  syzbot is reporting    unregister_netdevice: waiting for sit0 to become free. Usage count = 2  problem. A debug printk() patch found that a refcount is obtained at xdp_convert_md_to_buff() from bpf_prog_test_run_xdp().  According to commit ec94670fcb3b (\"bpf: Support specifying ingress via xdp_md context in BPF_PROG_TEST_RUN\"), the refcount obtained by xdp_convert_md_to_buff() will be released by xdp_convert_buff_to_md().  Therefore, we can consider that the error handling path introduced by commit 1c1949982524 (\"bpf: introduce frags support to bpf_prog_test_run_xdp()\") forgot to call xdp_convert_buff_to_md().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23140",
                        "url": "https://ubuntu.com/security/CVE-2026-23140",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf, test_run: Subtract size of xdp_frame from allowed metadata size  The xdp_frame structure takes up part of the XDP frame headroom, limiting the size of the metadata. However, in bpf_test_run, we don't take this into account, which makes it possible for userspace to supply a metadata size that is too large (taking up the entire headroom).  If userspace supplies such a large metadata size in live packet mode, the xdp_update_frame_from_buff() call in xdp_test_run_init_page() call will fail, after which packet transmission proceeds with an uninitialised frame structure, leading to the usual Bad Stuff.  The commit in the Fixes tag fixed a related bug where the second check in xdp_update_frame_from_buff() could fail, but did not add any additional constraints on the metadata size. Complete the fix by adding an additional check on the metadata size. Reorder the checks slightly to make the logic clearer and add a comment.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71192",
                        "url": "https://ubuntu.com/security/CVE-2025-71192",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ac97: fix a double free in snd_ac97_controller_register()  If ac97_add_adapter() fails, put_device() is the correct way to drop the device reference. kfree() is not required. Add kfree() if idr_alloc() fails and in ac97_adapter_release() to do the cleanup.  Found by code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 16:16: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-22979",
                        "url": "https://ubuntu.com/security/CVE-2026-22979",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix memory leak in skb_segment_list for GRO packets  When skb_segment_list() is called during packet forwarding, it handles packets that were aggregated by the GRO engine.  Historically, the segmentation logic in skb_segment_list assumes that individual segments are split from a parent SKB and may need to carry their own socket memory accounting. Accordingly, the code transfers truesize from the parent to the newly created segments.  Prior to commit ed4cccef64c1 (\"gro: fix ownership transfer\"), this truesize subtraction in skb_segment_list() was valid because fragments still carry a reference to the original socket.  However, commit ed4cccef64c1 (\"gro: fix ownership transfer\") changed this behavior by ensuring that fraglist entries are explicitly orphaned (skb->sk = NULL) to prevent illegal orphaning later in the stack. This change meant that the entire socket memory charge remained with the head SKB, but the corresponding accounting logic in skb_segment_list() was never updated.  As a result, the current code unconditionally adds each fragment's truesize to delta_truesize and subtracts it from the parent SKB. Since the fragments are no longer charged to the socket, this subtraction results in an effective under-count of memory when the head is freed. This causes sk_wmem_alloc to remain non-zero, preventing socket destruction and leading to a persistent memory leak.  The leak can be observed via KMEMLEAK when tearing down the networking environment:  unreferenced object 0xffff8881e6eb9100 (size 2048):   comm \"ping\", pid 6720, jiffies 4295492526   backtrace:     kmem_cache_alloc_noprof+0x5c6/0x800     sk_prot_alloc+0x5b/0x220     sk_alloc+0x35/0xa00     inet6_create.part.0+0x303/0x10d0     __sock_create+0x248/0x640     __sys_socket+0x11b/0x1d0  Since skb_segment_list() is exclusively used for SKB_GSO_FRAGLIST packets constructed by GRO, the truesize adjustment is removed.  The call to skb_release_head_state() must be preserved. As documented in commit cf673ed0e057 (\"net: fix fraglist segmentation reference count leak\"), it is still required to correctly drop references to SKB extensions that may be overwritten during __copy_skb_header().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15: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-2026-23139",
                        "url": "https://ubuntu.com/security/CVE-2026-23139",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_conncount: update last_gc only when GC has been performed  Currently last_gc is being updated everytime a new connection is tracked, that means that it is updated even if a GC wasn't performed. With a sufficiently high packet rate, it is possible to always bypass the GC, causing the list to grow infinitely.  Update the last_gc value only when a GC has been actually performed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40149",
                        "url": "https://ubuntu.com/security/CVE-2025-40149",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock().  get_netdev_for_sock() is called during setsockopt(), so not under RCU.  Using sk_dst_get(sk)->dev could trigger UAF.  Let's use __sk_dst_get() and dst_dev_rcu().  Note that the only ->ndo_sk_get_lower_dev() user is bond_sk_get_lower_dev(), which uses RCU.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-12 11:15: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-2026-23047",
                        "url": "https://ubuntu.com/security/CVE-2026-23047",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make calc_target() set t->paused, not just clear it  Currently calc_target() clears t->paused if the request shouldn't be paused anymore, but doesn't ever set t->paused even though it's able to determine when the request should be paused.  Setting t->paused is left to __submit_request() which is fine for regular requests but doesn't work for linger requests -- since __submit_request() doesn't operate on linger requests, there is nowhere for lreq->t.paused to be set. One consequence of this is that watches don't get reestablished on paused -> unpaused transitions in cases where requests have been paused long enough for the (paused) unwatch request to time out and for the subsequent (re)watch request to enter the paused state.  On top of the watch not getting reestablished, rbd_reregister_watch() gets stuck with rbd_dev->watch_mutex held:    rbd_register_watch     __rbd_register_watch       ceph_osdc_watch         linger_reg_commit_wait  It's waiting for lreq->reg_commit_wait to be completed, but for that to happen the respective request needs to end up on need_resend_linger list and be kicked when requests are unpaused.  There is no chance for that if the request in question is never marked paused in the first place.  The fact that rbd_dev->watch_mutex remains taken out forever then prevents the image from getting unmapped -- \"rbd unmap\" would inevitably hang in D state on an attempt to grab the mutex.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23136",
                        "url": "https://ubuntu.com/security/CVE-2026-23136",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: reset sparse-read state in osd_fault()  When a fault occurs, the connection is abandoned, reestablished, and any pending operations are retried. The OSD client tracks the progress of a sparse-read reply using a separate state machine, largely independent of the messenger's state.  If a connection is lost mid-payload or the sparse-read state machine returns an error, the sparse-read state is not reset. The OSD client will then interpret the beginning of a new reply as the continuation of the old one. If this makes the sparse-read machinery enter a failure state, it may never recover, producing loops like:    libceph:  [0] got 0 extents   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read  Therefore, reset the sparse-read state in osd_fault(), ensuring retries start from a clean state.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 16:15: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": "high",
                        "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-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-2025-71183",
                        "url": "https://ubuntu.com/security/CVE-2025-71183",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: always detect conflicting inodes when logging inode refs  After rename exchanging (either with the rename exchange operation or regular renames in multiple non-atomic steps) two inodes and at least one of them is a directory, we can end up with a log tree that contains only of the inodes and after a power failure that can result in an attempt to delete the other inode when it should not because it was not deleted before the power failure. In some case that delete attempt fails when the target inode is a directory that contains a subvolume inside it, since the log replay code is not prepared to deal with directory entries that point to root items (only inode items).  1) We have directories \"dir1\" (inode A) and \"dir2\" (inode B) under the    same parent directory;  2) We have a file (inode C) under directory \"dir1\" (inode A);  3) We have a subvolume inside directory \"dir2\" (inode B);  4) All these inodes were persisted in a past transaction and we are    currently at transaction N;  5) We rename the file (inode C), so at btrfs_log_new_name() we update    inode C's last_unlink_trans to N;  6) We get a rename exchange for \"dir1\" (inode A) and \"dir2\" (inode B),    so after the exchange \"dir1\" is inode B and \"dir2\" is inode A.    During the rename exchange we call btrfs_log_new_name() for inodes    A and B, but because they are directories, we don't update their    last_unlink_trans to N;  7) An fsync against the file (inode C) is done, and because its inode    has a last_unlink_trans with a value of N we log its parent directory    (inode A) (through btrfs_log_all_parents(), called from    btrfs_log_inode_parent()).  8) So we end up with inode B not logged, which now has the old name    of inode A. At copy_inode_items_to_log(), when logging inode A, we    did not check if we had any conflicting inode to log because inode    A has a generation lower than the current transaction (created in    a past transaction);  9) After a power failure, when replaying the log tree, since we find that    inode A has a new name that conflicts with the name of inode B in the    fs tree, we attempt to delete inode B... this is wrong since that    directory was never deleted before the power failure, and because there    is a subvolume inside that directory, attempting to delete it will fail    since replay_dir_deletes() and btrfs_unlink_inode() are not prepared    to deal with dir items that point to roots instead of inodes.     When that happens the mount fails and we get a stack trace like the    following:     [87.2314] BTRFS info (device dm-0): start tree-log replay    [87.2318] BTRFS critical (device dm-0): failed to delete reference to subvol, root 5 inode 256 parent 259    [87.2332] ------------[ cut here ]------------    [87.2338] BTRFS: Transaction aborted (error -2)    [87.2346] WARNING: CPU: 1 PID: 638968 at fs/btrfs/inode.c:4345 __btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2368] Modules linked in: btrfs loop dm_thin_pool (...)    [87.2470] CPU: 1 UID: 0 PID: 638968 Comm: mount Tainted: G        W          6.18.0-rc7-btrfs-next-218+ #2 PREEMPT(full)    [87.2489] Tainted: [W]=WARN    [87.2494] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014    [87.2514] RIP: 0010:__btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2538] Code: c0 89 04 24 (...)    [87.2568] RSP: 0018:ffffc0e741f4b9b8 EFLAGS: 00010286    [87.2574] RAX: 0000000000000000 RBX: ffff9d3ec8a6cf60 RCX: 0000000000000000    [87.2582] RDX: 0000000000000002 RSI: ffffffff84ab45a1 RDI: 00000000ffffffff    [87.2591] RBP: ffff9d3ec8a6ef20 R08: 0000000000000000 R09: ffffc0e741f4b840    [87.2599] R10: ffff9d45dc1fffa8 R11: 0000000000000003 R12: ffff9d3ee26d77e0    [87.2608] R13: ffffc0e741f4ba98 R14: ffff9d4458040800 R15: ffff9d44b6b7ca10    [87.2618] FS:  00007f7b9603a840(0000) GS:ffff9d4658982000(0000) knlGS:0000000000000000    [87. ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16: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-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-2024-50004",
                        "url": "https://ubuntu.com/security/CVE-2024-50004",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: update DML2 policy EnhancedPrefetchScheduleAccelerationFinal DCN35  [WHY & HOW] Mismatch in DCN35 DML2 cause bw validation failed to acquire unexpected DPP pipe to cause grey screen and system hang. Remove EnhancedPrefetchScheduleAccelerationFinal value override to match HW spec.  (cherry picked from commit 9dad21f910fcea2bdcff4af46159101d7f9cd8ba)",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-10-21 19:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23274",
                        "url": "https://ubuntu.com/security/CVE-2026-23274",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels  IDLETIMER revision 0 rules reuse existing timers by label and always call mod_timer() on timer->timer.  If the label was created first by revision 1 with XT_IDLETIMER_ALARM, the object uses alarm timer semantics and timer->timer is never initialized. Reusing that object from revision 0 causes mod_timer() on an uninitialized timer_list, triggering debugobjects warnings and possible panic when panic_on_warn=1.  Fix this by rejecting revision 0 rule insertion when an existing timer with the same label is of ALARM type.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-20 09:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23351",
                        "url": "https://ubuntu.com/security/CVE-2026-23351",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: split gc into unlink and reclaim phase  Yiming Qian reports Use-after-free in the pipapo set type:   Under a large number of expired elements, commit-time GC can run for a very   long time in a non-preemptible context, triggering soft lockup warnings and   RCU stall reports (local denial of service).  We must split GC in an unlink and a reclaim phase.  We cannot queue elements for freeing until pointers have been swapped. Expired elements are still exposed to both the packet path and userspace dumpers via the live copy of the data structure.  call_rcu() does not protect us: dump operations or element lookups starting after call_rcu has fired can still observe the free'd element, unless the commit phase has made enough progress to swap the clone and live pointers before any new reader has picked up the old version.  This a similar approach as done recently for the rbtree backend in commit 35f83a75529a (\"netfilter: nft_set_rbtree: don't gc elements on insert\").",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-25 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23231",
                        "url": "https://ubuntu.com/security/CVE-2026-23231",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-03-04 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23209",
                        "url": "https://ubuntu.com/security/CVE-2026-23209",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23112",
                        "url": "https://ubuntu.com/security/CVE-2026-23112",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23231",
                        "url": "https://ubuntu.com/security/CVE-2026-23231",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-03-04 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23209",
                        "url": "https://ubuntu.com/security/CVE-2026-23209",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23112",
                        "url": "https://ubuntu.com/security/CVE-2026-23112",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-36347",
                        "url": "https://ubuntu.com/security/CVE-2024-36347",
                        "cve_description": "Improper signature verification in AMD CPU ROM microcode patch loader may allow an attacker with local administrator privilege to load malicious microcode, potentially resulting in loss of integrity of x86 instruction execution, loss of confidentiality and integrity of data in x86 CPU privileged context and compromise of SMM execution environment.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-06-27 23:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40164",
                        "url": "https://ubuntu.com/security/CVE-2025-40164",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Fix using smp_processor_id() in preemptible code warnings  Syzbot reported the following warning:  BUG: using smp_processor_id() in preemptible [00000000] code: dhcpcd/2879 caller is usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331 CPU: 1 UID: 0 PID: 2879 Comm: dhcpcd Not tainted 6.15.0-rc4-syzkaller-00098-g615dca38c2ea #0 PREEMPT(voluntary) Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120  check_preemption_disabled+0xd0/0xe0 lib/smp_processor_id.c:49  usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331  usbnet_resume_rx+0x4b/0x170 drivers/net/usb/usbnet.c:708  usbnet_change_mtu+0x1be/0x220 drivers/net/usb/usbnet.c:417  __dev_set_mtu net/core/dev.c:9443 [inline]  netif_set_mtu_ext+0x369/0x5c0 net/core/dev.c:9496  netif_set_mtu+0xb0/0x160 net/core/dev.c:9520  dev_set_mtu+0xae/0x170 net/core/dev_api.c:247  dev_ifsioc+0xa31/0x18d0 net/core/dev_ioctl.c:572  dev_ioctl+0x223/0x10e0 net/core/dev_ioctl.c:821  sock_do_ioctl+0x19d/0x280 net/socket.c:1204  sock_ioctl+0x42f/0x6a0 net/socket.c:1311  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+0x190/0x200 fs/ioctl.c:892  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  For historical and portability reasons, the netif_rx() is usually run in the softirq or interrupt context, this commit therefore add local_bh_disable/enable() protection in the usbnet_resume_rx().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-12 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40325",
                        "url": "https://ubuntu.com/security/CVE-2025-40325",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid10: wait barrier before returning discard request with REQ_NOWAIT  raid10_handle_discard should wait barrier before returning a discard bio which has REQ_NOWAIT. And there is no need to print warning calltrace if a discard bio has REQ_NOWAIT flag. Quality engineer usually checks dmesg and reports error if dmesg has warning/error calltrace.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-18 07:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68206",
                        "url": "https://ubuntu.com/security/CVE-2025-68206",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_ct: add seqadj extension for natted connections  Sequence adjustment may be required for FTP traffic with PASV/EPSV modes. due to need to re-write packet payload (IP, port) on the ftp control connection. This can require changes to the TCP length and expected seq / ack_seq.  The easiest way to reproduce this issue is with PASV mode. Example ruleset: table inet ftp_nat {         ct helper ftp_helper {                 type \"ftp\" protocol tcp                 l3proto inet         }          chain prerouting {                 type filter hook prerouting priority 0; policy accept;                 tcp dport 21 ct state new ct helper set \"ftp_helper\"         } } table ip nat {         chain prerouting {                 type nat hook prerouting priority -100; policy accept;                 tcp dport 21 dnat ip prefix to ip daddr map { \t\t\t192.168.100.1 : 192.168.13.2/32 }         }          chain postrouting {                 type nat hook postrouting priority 100 ; policy accept;                 tcp sport 21 snat ip prefix to ip saddr map { \t\t\t192.168.13.2 : 192.168.100.1/32 }         } }  Note that the ftp helper gets assigned *after* the dnat setup.  The inverse (nat after helper assign) is handled by an existing check in nf_nat_setup_info() and will not show the problem.  Topoloy:   +-------------------+     +----------------------------------+  | FTP: 192.168.13.2 | <-> | NAT: 192.168.13.3, 192.168.100.1 |  +-------------------+     +----------------------------------+                                       |                          +-----------------------+                          | Client: 192.168.100.2 |                          +-----------------------+  ftp nat changes do not work as expected in this case: Connected to 192.168.100.1. [..] ftp> epsv EPSV/EPRT on IPv4 off. ftp> ls 227 Entering passive mode (192,168,100,1,209,129). 421 Service not available, remote server has closed connection.  Kernel logs: Missing nfct_seqadj_ext_add() setup call WARNING: CPU: 1 PID: 0 at net/netfilter/nf_conntrack_seqadj.c:41 [..]  __nf_nat_mangle_tcp_packet+0x100/0x160 [nf_nat]  nf_nat_ftp+0x142/0x280 [nf_nat_ftp]  help+0x4d1/0x880 [nf_conntrack_ftp]  nf_confirm+0x122/0x2e0 [nf_conntrack]  nf_hook_slow+0x3c/0xb0  ..  Fix this by adding the required extension when a conntrack helper is assigned to a connection that has a nat binding.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15: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-71135",
                        "url": "https://ubuntu.com/security/CVE-2025-71135",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid5: fix possible null-pointer dereferences in raid5_store_group_thread_cnt()  The variable mddev->private is first assigned to conf and then checked:    conf = mddev->private;   if (!conf) ...  If conf is NULL, then mddev->private is also NULL. In this case, null-pointer dereferences can occur when calling raid5_quiesce():    raid5_quiesce(mddev, true);   raid5_quiesce(mddev, false);  since mddev->private is assigned to conf again in raid5_quiesce(), and conf is dereferenced in several places, for example:    conf->quiesce = 0;   wake_up(&conf->wait_for_quiescent);  To fix this issue, the function should unlock mddev and return before invoking raid5_quiesce() when conf is NULL, following the existing pattern in raid5_change_consistency_policy().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38234",
                        "url": "https://ubuntu.com/security/CVE-2025-38234",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/rt: Fix race in push_rt_task  Overview ======== When a CPU chooses to call push_rt_task and picks a task to push to another CPU's runqueue then it will call find_lock_lowest_rq method which would take a double lock on both CPUs' runqueues. If one of the locks aren't readily available, it may lead to dropping the current runqueue lock and reacquiring both the locks at once. During this window it is possible that the task is already migrated and is running on some other CPU. These cases are already handled. However, if the task is migrated and has already been executed and another CPU is now trying to wake it up (ttwu) such that it is queued again on the runqeue (on_rq is 1) and also if the task was run by the same CPU, then the current checks will pass even though the task was migrated out and is no longer in the pushable tasks list.  Crashes ======= This bug resulted in quite a few flavors of crashes triggering kernel panics with various crash signatures such as assert failures, page faults, null pointer dereferences, and queue corruption errors all coming from scheduler itself.  Some of the crashes: -> kernel BUG at kernel/sched/rt.c:1616! BUG_ON(idx >= MAX_RT_PRIO)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? pick_next_task_rt+0x6e/0x1d0    ? do_error_trap+0x64/0xa0    ? pick_next_task_rt+0x6e/0x1d0    ? exc_invalid_op+0x4c/0x60    ? pick_next_task_rt+0x6e/0x1d0    ? asm_exc_invalid_op+0x12/0x20    ? pick_next_task_rt+0x6e/0x1d0    __schedule+0x5cb/0x790    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: kernel NULL pointer dereference, address: 00000000000000c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? __warn+0x8a/0xe0    ? exc_page_fault+0x3d6/0x520    ? asm_exc_page_fault+0x1e/0x30    ? pick_next_task_rt+0xb5/0x1d0    ? pick_next_task_rt+0x8c/0x1d0    __schedule+0x583/0x7e0    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: unable to handle page fault for address: ffff9464daea5900    kernel BUG at kernel/sched/rt.c:1861! BUG_ON(rq->cpu != task_cpu(p))  -> kernel BUG at kernel/sched/rt.c:1055! BUG_ON(!rq->nr_running)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? dequeue_top_rt_rq+0xa2/0xb0    ? do_error_trap+0x64/0xa0    ? dequeue_top_rt_rq+0xa2/0xb0    ? exc_invalid_op+0x4c/0x60    ? dequeue_top_rt_rq+0xa2/0xb0    ? asm_exc_invalid_op+0x12/0x20    ? dequeue_top_rt_rq+0xa2/0xb0    dequeue_rt_entity+0x1f/0x70    dequeue_task_rt+0x2d/0x70    __schedule+0x1a8/0x7e0    ? blk_finish_plug+0x25/0x40    schedule+0x3c/0xb0    futex_wait_queue_me+0xb6/0x120    futex_wait+0xd9/0x240    do_futex+0x344/0xa90    ? get_mm_exe_file+0x30/0x60    ? audit_exe_compare+0x58/0x70    ? audit_filter_rules.constprop.26+0x65e/0x1220    __x64_sys_futex+0x148/0x1f0    do_syscall_64+0x30/0x80    entry_SYSCALL_64_after_hwframe+0x62/0xc7  -> BUG: unable to handle page fault for address: ffff8cf3608bc2c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? spurious_kernel_fault+0x171/0x1c0    ? exc_page_fault+0x3b6/0x520    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? asm_exc_page_fault+0x1e/0x30    ? _cond_resched+0x15/0x30    ? futex_wait_queue_me+0xc8/0x120    ? futex_wait+0xd9/0x240    ? try_to_wake_up+0x1b8/0x490    ? futex_wake+0x78/0x160    ? do_futex+0xcd/0xa90    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? plist_del+0x6a/0xd0    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? dequeue_pushable_task+0x20/0x70    ? __schedule+0x382/0x7e0    ? asm_sysvec_reschedule_i ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-07-04 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68811",
                        "url": "https://ubuntu.com/security/CVE-2025-68811",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: use rc_pageoff for memcpy byte offset  svc_rdma_copy_inline_range added rc_curpage (page index) to the page base instead of the byte offset rc_pageoff. Use rc_pageoff so copies land within the current page.  Found by ZeroPath (https://zeropath.com)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68810",
                        "url": "https://ubuntu.com/security/CVE-2025-68810",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot  Reject attempts to disable KVM_MEM_GUEST_MEMFD on a memslot that was initially created with a guest_memfd binding, as KVM doesn't support toggling KVM_MEM_GUEST_MEMFD on existing memslots.  KVM prevents enabling KVM_MEM_GUEST_MEMFD, but doesn't prevent clearing the flag.  Failure to reject the new memslot results in a use-after-free due to KVM not unbinding from the guest_memfd instance.  Unbinding on a FLAGS_ONLY change is easy enough, and can/will be done as a hardening measure (in anticipation of KVM supporting dirty logging on guest_memfd at some point), but fixing the use-after-free would only address the immediate symptom.    ==================================================================   BUG: KASAN: slab-use-after-free in kvm_gmem_release+0x362/0x400 [kvm]   Write of size 8 at addr ffff8881111ae908 by task repro/745    CPU: 7 UID: 1000 PID: 745 Comm: repro Not tainted 6.18.0-rc6-115d5de2eef3-next-kasan #3 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   Call Trace:    <TASK>    dump_stack_lvl+0x51/0x60    print_report+0xcb/0x5c0    kasan_report+0xb4/0xe0    kvm_gmem_release+0x362/0x400 [kvm]    __fput+0x2fa/0x9d0    task_work_run+0x12c/0x200    do_exit+0x6ae/0x2100    do_group_exit+0xa8/0x230    __x64_sys_exit_group+0x3a/0x50    x64_sys_call+0x737/0x740    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f581f2eac31    </TASK>    Allocated by task 745 on cpu 6 at 9.746971s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_kmalloc+0x77/0x90    kvm_set_memory_region.part.0+0x652/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53    Freed by task 745 on cpu 6 at 9.747467s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_save_free_info+0x37/0x50    __kasan_slab_free+0x3b/0x60    kfree+0xf5/0x440    kvm_set_memslot+0x3c2/0x1160 [kvm]    kvm_set_memory_region.part.0+0x86a/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71109",
                        "url": "https://ubuntu.com/security/CVE-2025-71109",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  MIPS: ftrace: Fix memory corruption when kernel is located beyond 32 bits  Since commit e424054000878 (\"MIPS: Tracing: Reduce the overhead of dynamic Function Tracer\"), the macro UASM_i_LA_mostly has been used, and this macro can generate more than 2 instructions. At the same time, the code in ftrace assumes that no more than 2 instructions can be generated, which is why it stores them in an int[2] array. However, as previously noted, the macro UASM_i_LA_mostly (and now UASM_i_LA) causes a buffer overflow when _mcount is beyond 32 bits. This leads to corruption of the variables located in the __read_mostly section.  This corruption was observed because the variable __cpu_primary_thread_mask was corrupted, causing a hang very early during boot.  This fix prevents the corruption by avoiding the generation of instructions if they could exceed 2 instructions in length. Fortunately, insn_la_mcount is only used if the instrumented code is located outside the kernel code section, so dynamic ftrace can still be used, albeit in a more limited scope. This is still preferable to corrupting memory and/or crashing the kernel.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68770",
                        "url": "https://ubuntu.com/security/CVE-2025-68770",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bnxt_en: Fix XDP_TX path  For XDP_TX action in bnxt_rx_xdp(), clearing of the event flags is not correct.  __bnxt_poll_work() -> bnxt_rx_pkt() -> bnxt_rx_xdp() may be looping within NAPI and some event flags may be set in earlier iterations.  In particular, if BNXT_TX_EVENT is set earlier indicating some XDP_TX packets are ready and pending, it will be cleared if it is XDP_TX action again.  Normally, we will set BNXT_TX_EVENT again when we successfully call __bnxt_xmit_xdp().  But if the TX ring has no more room, the flag will not be set.  This will cause the TX producer to be ahead but the driver will not hit the TX doorbell.  For multi-buf XDP_TX, there is no need to clear the event flags and set BNXT_AGG_EVENT.  The BNXT_AGG_EVENT flag should have been set earlier in bnxt_rx_pkt().  The visible symptom of this is that the RX ring associated with the TX XDP ring will eventually become empty and all packets will be dropped. Because this condition will cause the driver to not refill the RX ring seeing that the TX ring has forever pending XDP_TX packets.  The fix is to only clear BNXT_RX_EVENT when we have successfully called __bnxt_xmit_xdp().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71072",
                        "url": "https://ubuntu.com/security/CVE-2025-71072",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  shmem: fix recovery on rename failures  maple_tree insertions can fail if we are seriously short on memory; simple_offset_rename() does not recover well if it runs into that. The same goes for simple_offset_rename_exchange().  Moreover, shmem_whiteout() expects that if it succeeds, the caller will progress to d_move(), i.e. that shmem_rename2() won't fail past the successful call of shmem_whiteout().  Not hard to fix, fortunately - mtree_store() can't fail if the index we are trying to store into is already present in the tree as a singleton.  For simple_offset_rename_exchange() that's enough - we just need to be careful about the order of operations.  For simple_offset_rename() solution is to preinsert the target into the tree for new_dir; the rest can be done without any potentially failing operations.  That preinsertion has to be done in shmem_rename2() rather than in simple_offset_rename() itself - otherwise we'd need to deal with the possibility of failure after successful shmem_whiteout().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68374",
                        "url": "https://ubuntu.com/security/CVE-2025-68374",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: fix rcu protection in md_wakeup_thread  We attempted to use RCU to protect the pointer 'thread', but directly passed the value when calling md_wakeup_thread(). This means that the RCU pointer has been acquired before rcu_read_lock(), which renders rcu_read_lock() ineffective and could lead to a use-after-free.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68378",
                        "url": "https://ubuntu.com/security/CVE-2025-68378",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix stackmap overflow check in __bpf_get_stackid()  Syzkaller reported a KASAN slab-out-of-bounds write in __bpf_get_stackid() when copying stack trace data. The issue occurs when the perf trace  contains more stack entries than the stack map bucket can hold,  leading to an out-of-bounds write in the bucket's data array.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-57795",
                        "url": "https://ubuntu.com/security/CVE-2024-57795",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Remove the direct link to net_device  The similar patch in siw is in the link: https://git.kernel.org/rdma/rdma/c/16b87037b48889  This problem also occurred in RXE. The following analyze this problem. In the following Call Traces: \" BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 net/core/dev.c:8782 Read of size 4 at addr ffff8880554640b0 by task kworker/1:4/5295  CPU: 1 UID: 0 PID: 5295 Comm: kworker/1:4 Not tainted 6.12.0-rc3-syzkaller-00399-g9197b73fd7bb #0 Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: infiniband ib_cache_event_task 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:377 [inline]  print_report+0x169/0x550 mm/kasan/report.c:488  kasan_report+0x143/0x180 mm/kasan/report.c:601  dev_get_flags+0x188/0x1d0 net/core/dev.c:8782  rxe_query_port+0x12d/0x260 drivers/infiniband/sw/rxe/rxe_verbs.c:60  __ib_query_port drivers/infiniband/core/device.c:2111 [inline]  ib_query_port+0x168/0x7d0 drivers/infiniband/core/device.c:2143  ib_cache_update+0x1a9/0xb80 drivers/infiniband/core/cache.c:1494  ib_cache_event_task+0xf3/0x1e0 drivers/infiniband/core/cache.c:1568  process_one_work kernel/workqueue.c:3229 [inline]  process_scheduled_works+0xa65/0x1850 kernel/workqueue.c:3310  worker_thread+0x870/0xd30 kernel/workqueue.c:3391  kthread+0x2f2/0x390 kernel/kthread.c:389  ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:147  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244  </TASK> \"  1). In the link [1],  \"  infiniband syz2: set down \"  This means that on 839.350575, the event ib_cache_event_task was sent andi queued in ib_wq.  2). In the link [1],  \"  team0 (unregistering): Port device team_slave_0 removed \"  It indicates that before 843.251853, the net device should be freed.  3). In the link [1],  \"  BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 \"  This means that on 850.559070, this slab-use-after-free problem occurred.  In all, on 839.350575, the event ib_cache_event_task was sent and queued in ib_wq,  before 843.251853, the net device veth was freed.  on 850.559070, this event was executed, and the mentioned freed net device was called. Thus, the above call trace occurred.  [1] https://syzkaller.appspot.com/x/log.txt?x=12e7025f980000",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-01-15 13: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-71140",
                        "url": "https://ubuntu.com/security/CVE-2025-71140",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: mediatek: vcodec: Use spinlock for context list protection lock  Previously a mutex was added to protect the encoder and decoder context lists from unexpected changes originating from the SCP IP block, causing the context pointer to go invalid, resulting in a NULL pointer dereference in the IPI handler.  Turns out on the MT8173, the VPU IPI handler is called from hard IRQ context. This causes a big warning from the scheduler. This was first reported downstream on the ChromeOS kernels, but is also reproducible on mainline using Fluster with the FFmpeg v4l2m2m decoders. Even though the actual capture format is not supported, the affected code paths are triggered.  Since this lock just protects the context list and operations on it are very fast, it should be OK to switch to a spinlock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-68772",
                        "url": "https://ubuntu.com/security/CVE-2025-68772",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating compression context during writeback  Bai, Shuangpeng <sjb7183@psu.edu> reported a bug as below:  Oops: divide error: 0000 [#1] SMP KASAN PTI CPU: 0 UID: 0 PID: 11441 Comm: syz.0.46 Not tainted 6.17.0 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP: 0010:f2fs_all_cluster_page_ready+0x106/0x550 fs/f2fs/compress.c:857 Call Trace:  <TASK>  f2fs_write_cache_pages fs/f2fs/data.c:3078 [inline]  __f2fs_write_data_pages fs/f2fs/data.c:3290 [inline]  f2fs_write_data_pages+0x1c19/0x3600 fs/f2fs/data.c:3317  do_writepages+0x38e/0x640 mm/page-writeback.c:2634  filemap_fdatawrite_wbc mm/filemap.c:386 [inline]  __filemap_fdatawrite_range mm/filemap.c:419 [inline]  file_write_and_wait_range+0x2ba/0x3e0 mm/filemap.c:794  f2fs_do_sync_file+0x6e6/0x1b00 fs/f2fs/file.c:294  generic_write_sync include/linux/fs.h:3043 [inline]  f2fs_file_write_iter+0x76e/0x2700 fs/f2fs/file.c:5259  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x7e9/0xe00 fs/read_write.c:686  ksys_write+0x19d/0x2d0 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xf7/0x470 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The bug was triggered w/ below race condition:  fsync\t\t\t\tsetattr\t\t\tioctl - f2fs_do_sync_file  - file_write_and_wait_range   - f2fs_write_cache_pages   : inode is non-compressed   : cc.cluster_size =     F2FS_I(inode)->i_cluster_size = 0    - tag_pages_for_writeback \t\t\t\t- f2fs_setattr \t\t\t\t - truncate_setsize \t\t\t\t - f2fs_truncate \t\t\t\t\t\t\t- f2fs_fileattr_set \t\t\t\t\t\t\t - f2fs_setflags_common \t\t\t\t\t\t\t  - set_compress_context \t\t\t\t\t\t\t  : F2FS_I(inode)->i_cluster_size = 4 \t\t\t\t\t\t\t  : set_inode_flag(inode, FI_COMPRESSED_FILE)    - f2fs_compressed_file    : return true    - f2fs_all_cluster_page_ready    : \"pgidx % cc->cluster_size\" trigger dividing 0 issue  Let's change as below to fix this issue: - introduce a new atomic type variable .writeback in structure f2fs_inode_info to track the number of threads which calling f2fs_write_cache_pages(). - use .i_sem lock to protect .writeback update. - check .writeback before update compression context in f2fs_setflags_common() to avoid race w/ ->writepages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15: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-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-71141",
                        "url": "https://ubuntu.com/security/CVE-2025-71141",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/tilcdc: Fix removal actions in case of failed probe  The drm_kms_helper_poll_fini() and drm_atomic_helper_shutdown() helpers should only be called when the device has been successfully registered. Currently, these functions are called unconditionally in tilcdc_fini(), which causes warnings during probe deferral scenarios.  [    7.972317] WARNING: CPU: 0 PID: 23 at drivers/gpu/drm/drm_atomic_state_helper.c:175 drm_atomic_helper_crtc_duplicate_state+0x60/0x68 ... [    8.005820]  drm_atomic_helper_crtc_duplicate_state from drm_atomic_get_crtc_state+0x68/0x108 [    8.005858]  drm_atomic_get_crtc_state from drm_atomic_helper_disable_all+0x90/0x1c8 [    8.005885]  drm_atomic_helper_disable_all from drm_atomic_helper_shutdown+0x90/0x144 [    8.005911]  drm_atomic_helper_shutdown from tilcdc_fini+0x68/0xf8 [tilcdc] [    8.005957]  tilcdc_fini [tilcdc] from tilcdc_pdev_probe+0xb0/0x6d4 [tilcdc]  Fix this by rewriting the failed probe cleanup path using the standard goto error handling pattern, which ensures that cleanup functions are only called on successfully initialized resources. Additionally, remove the now-unnecessary is_registered flag.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 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-71088",
                        "url": "https://ubuntu.com/security/CVE-2025-71088",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fallback earlier on simult connection  Syzkaller reports a simult-connect race leading to inconsistent fallback status:    WARNING: CPU: 3 PID: 33 at net/mptcp/subflow.c:1515 subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Modules linked in:   CPU: 3 UID: 0 PID: 33 Comm: ksoftirqd/3 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:subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Code: 89 ee e8 78 61 3c f6 40 84 ed 75 21 e8 8e 66 3c f6 44 89 fe bf 07 00 00 00 e8 c1 61 3c f6 41 83 ff 07 74 09 e8 76 66 3c f6 90 <0f> 0b 90 e8 6d 66 3c f6 48 89 df e8 e5 ad ff ff 31 ff 89 c5 89 c6   RSP: 0018:ffffc900006cf338 EFLAGS: 00010246   RAX: 0000000000000000 RBX: ffff888031acd100 RCX: ffffffff8b7f2abf   RDX: ffff88801e6ea440 RSI: ffffffff8b7f2aca RDI: 0000000000000005   RBP: 0000000000000000 R08: 0000000000000005 R09: 0000000000000007   R10: 0000000000000004 R11: 0000000000002c10 R12: ffff88802ba69900   R13: 1ffff920000d9e67 R14: ffff888046f81800 R15: 0000000000000004   FS:  0000000000000000(0000) GS:ffff8880d69bc000(0000) knlGS:0000000000000000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 0000560fc0ca1670 CR3: 0000000032c3a000 CR4: 0000000000352ef0   Call Trace:    <TASK>    tcp_data_queue+0x13b0/0x4f90 net/ipv4/tcp_input.c:5197    tcp_rcv_state_process+0xfdf/0x4ec0 net/ipv4/tcp_input.c:6922    tcp_v6_do_rcv+0x492/0x1740 net/ipv6/tcp_ipv6.c:1672    tcp_v6_rcv+0x2976/0x41e0 net/ipv6/tcp_ipv6.c:1918    ip6_protocol_deliver_rcu+0x188/0x1520 net/ipv6/ip6_input.c:438    ip6_input_finish+0x1e4/0x4b0 net/ipv6/ip6_input.c:489    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ip6_input+0x105/0x2f0 net/ipv6/ip6_input.c:500    dst_input include/net/dst.h:471 [inline]    ip6_rcv_finish net/ipv6/ip6_input.c:79 [inline]    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ipv6_rcv+0x264/0x650 net/ipv6/ip6_input.c:311    __netif_receive_skb_one_core+0x12d/0x1e0 net/core/dev.c:5979    __netif_receive_skb+0x1d/0x160 net/core/dev.c:6092    process_backlog+0x442/0x15e0 net/core/dev.c:6444    __napi_poll.constprop.0+0xba/0x550 net/core/dev.c:7494    napi_poll net/core/dev.c:7557 [inline]    net_rx_action+0xa9f/0xfe0 net/core/dev.c:7684    handle_softirqs+0x216/0x8e0 kernel/softirq.c:579    run_ksoftirqd kernel/softirq.c:968 [inline]    run_ksoftirqd+0x3a/0x60 kernel/softirq.c:960    smpboot_thread_fn+0x3f7/0xae0 kernel/smpboot.c:160    kthread+0x3c2/0x780 kernel/kthread.c:463    ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148    ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245    </TASK>  The TCP subflow can process the simult-connect syn-ack packet after transitioning to TCP_FIN1 state, bypassing the MPTCP fallback check, as the sk_state_change() callback is not invoked for * -> FIN_WAIT1 transitions.  That will move the msk socket to an inconsistent status and the next incoming data will hit the reported splat.  Close the race moving the simult-fallback check at the earliest possible stage - that is at syn-ack generation time.  About the fixes tags: [2] was supposed to also fix this issue introduced by [3]. [1] is required as a dependence: it was not explicitly marked as a fix, but it is one and it has already been backported before [3]. In other words, this commit should be backported up to [3], including [2] and [1] if that's not already there.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71065",
                        "url": "https://ubuntu.com/security/CVE-2025-71065",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid potential deadlock  As Jiaming Zhang and syzbot reported, there is potential deadlock in f2fs as below:  Chain exists of:   &sbi->cp_rwsem --> fs_reclaim --> sb_internal#2   Possible unsafe locking scenario:         CPU0                    CPU1        ----                    ----   rlock(sb_internal#2);                                lock(fs_reclaim);                                lock(sb_internal#2);   rlock(&sbi->cp_rwsem);   *** DEADLOCK ***  3 locks held by kswapd0/73:  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat mm/vmscan.c:7015 [inline]  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0x951/0x2800 mm/vmscan.c:7389  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_trylock_shared fs/super.c:562 [inline]  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_cache_scan+0x91/0x4b0 fs/super.c:197  #2: ffff888011840610 (sb_internal#2){.+.+}-{0:0}, at: f2fs_evict_inode+0x8d9/0x1b60 fs/f2fs/inode.c:890  stack backtrace: CPU: 0 UID: 0 PID: 73 Comm: kswapd0 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 Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_circular_bug+0x2ee/0x310 kernel/locking/lockdep.c:2043  check_noncircular+0x134/0x160 kernel/locking/lockdep.c:2175  check_prev_add kernel/locking/lockdep.c:3165 [inline]  check_prevs_add kernel/locking/lockdep.c:3284 [inline]  validate_chain+0xb9b/0x2140 kernel/locking/lockdep.c:3908  __lock_acquire+0xab9/0xd20 kernel/locking/lockdep.c:5237  lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5868  down_read+0x46/0x2e0 kernel/locking/rwsem.c:1537  f2fs_down_read fs/f2fs/f2fs.h:2278 [inline]  f2fs_lock_op fs/f2fs/f2fs.h:2357 [inline]  f2fs_do_truncate_blocks+0x21c/0x10c0 fs/f2fs/file.c:791  f2fs_truncate_blocks+0x10a/0x300 fs/f2fs/file.c:867  f2fs_truncate+0x489/0x7c0 fs/f2fs/file.c:925  f2fs_evict_inode+0x9f2/0x1b60 fs/f2fs/inode.c:897  evict+0x504/0x9c0 fs/inode.c:810  f2fs_evict_inode+0x1dc/0x1b60 fs/f2fs/inode.c:853  evict+0x504/0x9c0 fs/inode.c:810  dispose_list fs/inode.c:852 [inline]  prune_icache_sb+0x21b/0x2c0 fs/inode.c:1000  super_cache_scan+0x39b/0x4b0 fs/super.c:224  do_shrink_slab+0x6ef/0x1110 mm/shrinker.c:437  shrink_slab_memcg mm/shrinker.c:550 [inline]  shrink_slab+0x7ef/0x10d0 mm/shrinker.c:628  shrink_one+0x28a/0x7c0 mm/vmscan.c:4955  shrink_many mm/vmscan.c:5016 [inline]  lru_gen_shrink_node mm/vmscan.c:5094 [inline]  shrink_node+0x315d/0x3780 mm/vmscan.c:6081  kswapd_shrink_node mm/vmscan.c:6941 [inline]  balance_pgdat mm/vmscan.c:7124 [inline]  kswapd+0x147c/0x2800 mm/vmscan.c:7389  kthread+0x70e/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>  The root cause is deadlock among four locks as below:  kswapd - fs_reclaim\t\t\t\t--- Lock A  - shrink_one   - evict    - f2fs_evict_inode     - sb_start_intwrite\t\t\t--- Lock B  - iput  - evict   - f2fs_evict_inode    - sb_start_intwrite\t\t\t--- Lock B    - f2fs_truncate     - f2fs_truncate_blocks      - f2fs_do_truncate_blocks       - f2fs_lock_op\t\t\t--- Lock C  ioctl - f2fs_ioc_commit_atomic_write  - f2fs_lock_op\t\t\t\t--- Lock C   - __f2fs_commit_atomic_write    - __replace_atomic_write_block     - f2fs_get_dnode_of_data      - __get_node_folio       - f2fs_check_nid_range        - f2fs_handle_error         - f2fs_record_errors          - f2fs_down_write\t\t--- Lock D  open - do_open  - do_truncate   - security_inode_need_killpriv    - f2fs_getxattr     - lookup_all_xattrs      - f2fs_handle_error       - f2fs_record_errors        - f2fs_down_write\t\t--- Lock D         - f2fs_commit_super          - read_mapping_folio           - filemap_alloc_folio_noprof            - prepare_alloc_pages             - fs_reclaim_acquire\t--- Lock A  In order to a ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68345",
                        "url": "https://ubuntu.com/security/CVE-2025-68345",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: hda: cs35l41: Fix NULL pointer dereference in cs35l41_hda_read_acpi()  The acpi_get_first_physical_node() function can return NULL, in which case the get_device() function also returns NULL, but this value is then dereferenced without checking,so add a check to prevent a crash.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11: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-71130",
                        "url": "https://ubuntu.com/security/CVE-2025-71130",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/gem: Zero-initialize the eb.vma array in i915_gem_do_execbuffer  Initialize the eb.vma array with values of 0 when the eb structure is first set up. In particular, this sets the eb->vma[i].vma pointers to NULL, simplifying cleanup and getting rid of the bug described below.  During the execution of eb_lookup_vmas(), the eb->vma array is successively filled up with struct eb_vma objects. This process includes calling eb_add_vma(), which might fail; however, even in the event of failure, eb->vma[i].vma is set for the currently processed buffer.  If eb_add_vma() fails, eb_lookup_vmas() returns with an error, which prompts a call to eb_release_vmas() to clean up the mess. Since eb_lookup_vmas() might fail during processing any (possibly not first) buffer, eb_release_vmas() checks whether a buffer's vma is NULL to know at what point did the lookup function fail.  In eb_lookup_vmas(), eb->vma[i].vma is set to NULL if either the helper function eb_lookup_vma() or eb_validate_vma() fails. eb->vma[i+1].vma is set to NULL in case i915_gem_object_userptr_submit_init() fails; the current one needs to be cleaned up by eb_release_vmas() at this point, so the next one is set. If eb_add_vma() fails, neither the current nor the next vma is set to NULL, which is a source of a NULL deref bug described in the issue linked in the Closes tag.  When entering eb_lookup_vmas(), the vma pointers are set to the slab poison value, instead of NULL. This doesn't matter for the actual lookup, since it gets overwritten anyway, however the eb_release_vmas() function only recognizes NULL as the stopping value, hence the pointers are being set to NULL as they go in case of intermediate failure. This patch changes the approach to filling them all with NULL at the start instead, rather than handling that manually during failure.  (cherry picked from commit 08889b706d4f0b8d2352b7ca29c2d8df4d0787cd)",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71138",
                        "url": "https://ubuntu.com/security/CVE-2025-71138",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/msm/dpu: Add missing NULL pointer check for pingpong interface  It is checked almost always in dpu_encoder_phys_wb_setup_ctl(), but in a single place the check is missing. Also use convenient locals instead of phys_enc->* where available.  Patchwork: https://patchwork.freedesktop.org/patch/693860/",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16: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-71129",
                        "url": "https://ubuntu.com/security/CVE-2025-71129",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: BPF: Sign extend kfunc call arguments  The kfunc calls are native calls so they should follow LoongArch calling conventions. Sign extend its arguments properly to avoid kernel panic. This is done by adding a new emit_abi_ext() helper. The emit_abi_ext() helper performs extension in place meaning a value already store in the target register (Note: this is different from the existing sign_extend() helper and thus we can't reuse it).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-71143",
                        "url": "https://ubuntu.com/security/CVE-2025-71143",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  clk: samsung: exynos-clkout: Assign .num before accessing .hws  Commit f316cdff8d67 (\"clk: Annotate struct clk_hw_onecell_data with __counted_by\") annotated the hws member of 'struct clk_hw_onecell_data' with __counted_by, which informs the bounds sanitizer (UBSAN_BOUNDS) about the number of elements in .hws[], so that it can warn when .hws[] is accessed out of bounds. As noted in that change, the __counted_by member must be initialized with the number of elements before the first array access happens, otherwise there will be a warning from each access prior to the initialization because the number of elements is zero. This occurs in exynos_clkout_probe() due to .num being assigned after .hws[] has been accessed:    UBSAN: array-index-out-of-bounds in drivers/clk/samsung/clk-exynos-clkout.c:178:18   index 0 is out of range for type 'clk_hw *[*]'  Move the .num initialization to before the first access of .hws[], clearing up the warning.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-71089",
                        "url": "https://ubuntu.com/security/CVE-2025-71089",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu: disable SVA when CONFIG_X86 is set  Patch series \"Fix stale IOTLB entries for kernel address space\", v7.  This proposes a fix for a security vulnerability related to IOMMU Shared Virtual Addressing (SVA).  In an SVA context, an IOMMU can cache kernel page table entries.  When a kernel page table page is freed and reallocated for another purpose, the IOMMU might still hold stale, incorrect entries.  This can be exploited to cause a use-after-free or write-after-free condition, potentially leading to privilege escalation or data corruption.  This solution introduces a deferred freeing mechanism for kernel page table pages, which provides a safe window to notify the IOMMU to invalidate its caches before the page is reused.   This patch (of 8):  In the IOMMU Shared Virtual Addressing (SVA) context, the IOMMU hardware shares and walks the CPU's page tables.  The x86 architecture maps the kernel's virtual address space into the upper portion of every process's page table.  Consequently, in an SVA context, the IOMMU hardware can walk and cache kernel page table entries.  The Linux kernel currently lacks a notification mechanism for kernel page table changes, specifically when page table pages are freed and reused. The IOMMU driver is only notified of changes to user virtual address mappings.  This can cause the IOMMU's internal caches to retain stale entries for kernel VA.  Use-After-Free (UAF) and Write-After-Free (WAF) conditions arise when kernel page table pages are freed and later reallocated.  The IOMMU could misinterpret the new data as valid page table entries.  The IOMMU might then walk into attacker-controlled memory, leading to arbitrary physical memory DMA access or privilege escalation.  This is also a Write-After-Free issue, as the IOMMU will potentially continue to write Accessed and Dirty bits to the freed memory while attempting to walk the stale page tables.  Currently, SVA contexts are unprivileged and cannot access kernel mappings.  However, the IOMMU will still walk kernel-only page tables all the way down to the leaf entries, where it realizes the mapping is for the kernel and errors out.  This means the IOMMU still caches these intermediate page table entries, making the described vulnerability a real concern.  Disable SVA on x86 architecture until the IOMMU can receive notification to flush the paging cache before freeing the CPU kernel page table pages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16: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-71153",
                        "url": "https://ubuntu.com/security/CVE-2025-71153",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix memory leak in get_file_all_info()  In get_file_all_info(), if vfs_getattr() fails, the function returns immediately without freeing the allocated filename, leading to a memory leak.  Fix this by freeing the filename before returning in this error case.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 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-71095",
                        "url": "https://ubuntu.com/security/CVE-2025-71095",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: stmmac: fix the crash issue for zero copy XDP_TX action  There is a crash issue when running zero copy XDP_TX action, the crash log is shown below.  [  216.122464] Unable to handle kernel paging request at virtual address fffeffff80000000 [  216.187524] Internal error: Oops: 0000000096000144 [#1]  SMP [  216.301694] Call trace: [  216.304130]  dcache_clean_poc+0x20/0x38 (P) [  216.308308]  __dma_sync_single_for_device+0x1bc/0x1e0 [  216.313351]  stmmac_xdp_xmit_xdpf+0x354/0x400 [  216.317701]  __stmmac_xdp_run_prog+0x164/0x368 [  216.322139]  stmmac_napi_poll_rxtx+0xba8/0xf00 [  216.326576]  __napi_poll+0x40/0x218 [  216.408054] Kernel panic - not syncing: Oops: Fatal exception in interrupt  For XDP_TX action, the xdp_buff is converted to xdp_frame by xdp_convert_buff_to_frame(). The memory type of the resulting xdp_frame depends on the memory type of the xdp_buff. For page pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_POOL. For zero copy XSK pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_ORDER0. However, stmmac_xdp_xmit_back() does not check the memory type and always uses the page pool type, this leads to invalid mappings and causes the crash. Therefore, check the xdp_buff memory type in stmmac_xdp_xmit_back() to fix this issue.",
                        "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-71101",
                        "url": "https://ubuntu.com/security/CVE-2025-71101",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix out-of-bounds array access in ACPI package parsing  The hp_populate_*_elements_from_package() functions in the hp-bioscfg driver contain out-of-bounds array access vulnerabilities.  These functions parse ACPI packages into internal data structures using a for loop with index variable 'elem' that iterates through enum_obj/integer_obj/order_obj/password_obj/string_obj arrays.  When processing multi-element fields like PREREQUISITES and ENUM_POSSIBLE_VALUES, these functions read multiple consecutive array elements using expressions like 'enum_obj[elem + reqs]' and 'enum_obj[elem + pos_values]' within nested loops.  The bug is that the bounds check only validated elem, but did not consider the additional offset when accessing elem + reqs or elem + pos_values.  The fix changes the bounds check to validate the actual accessed index.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16: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-71071",
                        "url": "https://ubuntu.com/security/CVE-2025-71071",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu/mediatek: fix use-after-free on probe deferral  The driver is dropping the references taken to the larb devices during probe after successful lookup as well as on errors. This can potentially lead to a use-after-free in case a larb device has not yet been bound to its driver so that the iommu driver probe defers.  Fix this by keeping the references as expected while the iommu driver is bound.",
                        "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-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-71149",
                        "url": "https://ubuntu.com/security/CVE-2025-71149",
                        "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68778",
                        "url": "https://ubuntu.com/security/CVE-2025-68778",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: don't log conflicting inode if it's a dir moved in the current transaction  We can't log a conflicting inode if it's a directory and it was moved from one parent directory to another parent directory in the current transaction, as this can result an attempt to have a directory with two hard links during log replay, one for the old parent directory and another for the new parent directory.  The following scenario triggers that issue:  1) We have directories \"dir1\" and \"dir2\" created in a past transaction.    Directory \"dir1\" has inode A as its parent directory;  2) We move \"dir1\" to some other directory;  3) We create a file with the name \"dir1\" in directory inode A;  4) We fsync the new file. This results in logging the inode of the new file    and the inode for the directory \"dir1\" that was previously moved in the    current transaction. So the log tree has the INODE_REF item for the    new location of \"dir1\";  5) We move the new file to some other directory. This results in updating    the log tree to included the new INODE_REF for the new location of the    file and removes the INODE_REF for the old location. This happens    during the rename when we call btrfs_log_new_name();  6) We fsync the file, and that persists the log tree changes done in the    previous step (btrfs_log_new_name() only updates the log tree in    memory);  7) We have a power failure;  8) Next time the fs is mounted, log replay happens and when processing    the inode for directory \"dir1\" we find a new INODE_REF and add that    link, but we don't remove the old link of the inode since we have    not logged the old parent directory of the directory inode \"dir1\".  As a result after log replay finishes when we trigger writeback of the subvolume tree's extent buffers, the tree check will detect that we have a directory a hard link count of 2 and we get a mount failure. The errors and stack traces reported in dmesg/syslog are like this:     [ 3845.729764] BTRFS info (device dm-0): start tree-log replay    [ 3845.730304] page: refcount:3 mapcount:0 mapping:000000005c8a3027 index:0x1d00 pfn:0x11510c    [ 3845.731236] memcg:ffff9264c02f4e00    [ 3845.731751] aops:btree_aops [btrfs] ino:1    [ 3845.732300] flags: 0x17fffc00000400a(uptodate|private|writeback|node=0|zone=2|lastcpupid=0x1ffff)    [ 3845.733346] raw: 017fffc00000400a 0000000000000000 dead000000000122 ffff9264d978aea8    [ 3845.734265] raw: 0000000000001d00 ffff92650e6d4738 00000003ffffffff ffff9264c02f4e00    [ 3845.735305] page dumped because: eb page dump    [ 3845.735981] BTRFS critical (device dm-0): corrupt leaf: root=5 block=30408704 slot=6 ino=257, invalid nlink: has 2 expect no more than 1 for dir    [ 3845.737786] BTRFS info (device dm-0): leaf 30408704 gen 10 total ptrs 17 free space 14881 owner 5    [ 3845.737789] BTRFS info (device dm-0): refs 4 lock_owner 0 current 30701    [ 3845.737792] \titem 0 key (256 INODE_ITEM 0) itemoff 16123 itemsize 160    [ 3845.737794] \t\tinode generation 3 transid 9 size 16 nbytes 16384    [ 3845.737795] \t\tblock group 0 mode 40755 links 1 uid 0 gid 0    [ 3845.737797] \t\trdev 0 sequence 2 flags 0x0    [ 3845.737798] \t\tatime 1764259517.0    [ 3845.737800] \t\tctime 1764259517.572889464    [ 3845.737801] \t\tmtime 1764259517.572889464    [ 3845.737802] \t\totime 1764259517.0    [ 3845.737803] \titem 1 key (256 INODE_REF 256) itemoff 16111 itemsize 12    [ 3845.737805] \t\tindex 0 name_len 2    [ 3845.737807] \titem 2 key (256 DIR_ITEM 2363071922) itemoff 16077 itemsize 34    [ 3845.737808] \t\tlocation key (257 1 0) type 2    [ 3845.737810] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737811] \titem 3 key (256 DIR_ITEM 2676584006) itemoff 16043 itemsize 34    [ 3845.737813] \t\tlocation key (258 1 0) type 2    [ 3845.737814] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737815] \titem 4 key (256 DIR_INDEX 2) itemoff 16009 itemsize 34    [ 3845.737816] \t\tlocation key (257 1 0) type 2    [ ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71119",
                        "url": "https://ubuntu.com/security/CVE-2025-71119",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/kexec: Enable SMT before waking offline CPUs  If SMT is disabled or a partial SMT state is enabled, when a new kernel image is loaded for kexec, on reboot the following warning is observed:  kexec: Waking offline cpu 228. WARNING: CPU: 0 PID: 9062 at arch/powerpc/kexec/core_64.c:223 kexec_prepare_cpus+0x1b0/0x1bc [snip]  NIP kexec_prepare_cpus+0x1b0/0x1bc  LR  kexec_prepare_cpus+0x1a0/0x1bc  Call Trace:   kexec_prepare_cpus+0x1a0/0x1bc (unreliable)   default_machine_kexec+0x160/0x19c   machine_kexec+0x80/0x88   kernel_kexec+0xd0/0x118   __do_sys_reboot+0x210/0x2c4   system_call_exception+0x124/0x320   system_call_vectored_common+0x15c/0x2ec  This occurs as add_cpu() fails due to cpu_bootable() returning false for CPUs that fail the cpu_smt_thread_allowed() check or non primary threads if SMT is disabled.  Fix the issue by enabling SMT and resetting the number of SMT threads to the number of threads per core, before attempting to wake up all present CPUs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-71148",
                        "url": "https://ubuntu.com/security/CVE-2025-71148",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: restore destructor on submit failure  handshake_req_submit() replaces sk->sk_destruct but never restores it when submission fails before the request is hashed. handshake_sk_destruct() then returns early and the original destructor never runs, leaking the socket. Restore sk_destruct on the error path.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15: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-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-71107",
                        "url": "https://ubuntu.com/security/CVE-2025-71107",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: ensure node page reads complete before f2fs_put_super() finishes  Xfstests generic/335, generic/336 sometimes crash with the following message:  F2FS-fs (dm-0): detect filesystem reference count leak during umount, type: 9, count: 1 ------------[ cut here ]------------ kernel BUG at fs/f2fs/super.c:1939! Oops: invalid opcode: 0000 [#1] SMP NOPTI CPU: 1 UID: 0 PID: 609351 Comm: umount Tainted: G        W          6.17.0-rc5-xfstests-g9dd1835ecda5 #1 PREEMPT(none) Tainted: [W]=WARN Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:f2fs_put_super+0x3b3/0x3c0 Call Trace:  <TASK>  generic_shutdown_super+0x7e/0x190  kill_block_super+0x1a/0x40  kill_f2fs_super+0x9d/0x190  deactivate_locked_super+0x30/0xb0  cleanup_mnt+0xba/0x150  task_work_run+0x5c/0xa0  exit_to_user_mode_loop+0xb7/0xc0  do_syscall_64+0x1ae/0x1c0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  </TASK> ---[ end trace 0000000000000000 ]---  It appears that sometimes it is possible that f2fs_put_super() is called before all node page reads are completed. Adding a call to f2fs_wait_on_all_pages() for F2FS_RD_NODE fixes the problem.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15: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-71126",
                        "url": "https://ubuntu.com/security/CVE-2025-71126",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: avoid deadlock on fallback while reinjecting  Jakub reported an MPTCP deadlock at fallback time:   WARNING: possible recursive locking detected  6.18.0-rc7-virtme #1 Not tainted  --------------------------------------------  mptcp_connect/20858 is trying to acquire lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_try_fallback+0xd8/0x280   but task is already holding lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   other info that might help us debug this:   Possible unsafe locking scenario:          CPU0         ----    lock(&msk->fallback_lock);    lock(&msk->fallback_lock);    *** DEADLOCK ***    May be due to missing lock nesting notation   3 locks held by mptcp_connect/20858:   #0: ff1100001da18290 (sk_lock-AF_INET){+.+.}-{0:0}, at: mptcp_sendmsg+0x114/0x1bc0   #1: ff1100001db40fd0 (k-sk_lock-AF_INET#2){+.+.}-{0:0}, at: __mptcp_retrans+0x2cb/0xaa0   #2: ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   stack backtrace:  CPU: 0 UID: 0 PID: 20858 Comm: mptcp_connect Not tainted 6.18.0-rc7-virtme #1 PREEMPT(full)  Hardware name: Bochs, BIOS Bochs 01/01/2011  Call Trace:   <TASK>   dump_stack_lvl+0x6f/0xa0   print_deadlock_bug.cold+0xc0/0xcd   validate_chain+0x2ff/0x5f0   __lock_acquire+0x34c/0x740   lock_acquire.part.0+0xbc/0x260   _raw_spin_lock_bh+0x38/0x50   __mptcp_try_fallback+0xd8/0x280   mptcp_sendmsg_frag+0x16c2/0x3050   __mptcp_retrans+0x421/0xaa0   mptcp_release_cb+0x5aa/0xa70   release_sock+0xab/0x1d0   mptcp_sendmsg+0xd5b/0x1bc0   sock_write_iter+0x281/0x4d0   new_sync_write+0x3c5/0x6f0   vfs_write+0x65e/0xbb0   ksys_write+0x17e/0x200   do_syscall_64+0xbb/0xfd0   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7fa5627cbc5e  Code: 4d 89 d8 e8 14 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa  RSP: 002b:00007fff1fe14700 EFLAGS: 00000202 ORIG_RAX: 0000000000000001  RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00007fa5627cbc5e  RDX: 0000000000001f9c RSI: 00007fff1fe16984 RDI: 0000000000000005  RBP: 00007fff1fe14710 R08: 0000000000000000 R09: 0000000000000000  R10: 0000000000000000 R11: 0000000000000202 R12: 00007fff1fe16920  R13: 0000000000002000 R14: 0000000000001f9c R15: 0000000000001f9c  The packet scheduler could attempt a reinjection after receiving an MP_FAIL and before the infinite map has been transmitted, causing a deadlock since MPTCP needs to do the reinjection atomically from WRT fallback.  Address the issue explicitly avoiding the reinjection in the critical scenario. Note that this is the only fallback critical section that could potentially send packets and hit the double-lock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-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-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-71151",
                        "url": "https://ubuntu.com/security/CVE-2025-71151",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cifs: Fix memory and information leak in smb3_reconfigure()  In smb3_reconfigure(), if smb3_sync_session_ctx_passwords() fails, the function returns immediately without freeing and erasing the newly allocated new_password and new_password2. This causes both a memory leak and a potential information leak.  Fix this by calling kfree_sensitive() on both password buffers before returning in this error case.",
                        "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-68773",
                        "url": "https://ubuntu.com/security/CVE-2025-68773",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: fsl-cpm: Check length parity before switching to 16 bit mode  Commit fc96ec826bce (\"spi: fsl-cpm: Use 16 bit mode for large transfers with even size\") failed to make sure that the size is really even before switching to 16 bit mode. Until recently the problem went unnoticed because kernfs uses a pre-allocated bounce buffer of size PAGE_SIZE for reading EEPROM.  But commit 8ad6249c51d0 (\"eeprom: at25: convert to spi-mem API\") introduced an additional dynamically allocated bounce buffer whose size is exactly the size of the transfer, leading to a buffer overrun in the fsl-cpm driver when that size is odd.  Add the missing length parity verification and remain in 8 bit mode when the length is not even.",
                        "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-68806",
                        "url": "https://ubuntu.com/security/CVE-2025-68806",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix buffer validation by including null terminator size in EA length  The smb2_set_ea function, which handles Extended Attributes (EA), was performing buffer validation checks that incorrectly omitted the size of the null terminating character (+1 byte) for EA Name. This patch fixes the issue by explicitly adding '+ 1' to EaNameLength where the null terminator is expected to be present in the buffer, ensuring the validation accurately reflects the total required buffer size.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71150",
                        "url": "https://ubuntu.com/security/CVE-2025-71150",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix refcount leak when invalid session is found on session lookup  When a session is found but its state is not SMB2_SESSION_VALID, It indicates that no valid session was found, but it is missing to decrement the reference count acquired by the session lookup, which results in a reference count leak. This patch fixes the issue by explicitly calling ksmbd_user_session_put to release the reference to the session.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68786",
                        "url": "https://ubuntu.com/security/CVE-2025-68786",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: skip lock-range check on equal size to avoid size==0 underflow  When size equals the current i_size (including 0), the code used to call check_lock_range(filp, i_size, size - 1, WRITE), which computes `size - 1` and can underflow for size==0. Skip the equal case.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68789",
                        "url": "https://ubuntu.com/security/CVE-2025-68789",
                        "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                        "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-68775",
                        "url": "https://ubuntu.com/security/CVE-2025-68775",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: duplicate handshake cancellations leak socket  When a handshake request is cancelled it is removed from the handshake_net->hn_requests list, but it is still present in the handshake_rhashtbl until it is destroyed.  If a second cancellation request arrives for the same handshake request, then remove_pending() will return false... and assuming HANDSHAKE_F_REQ_COMPLETED isn't set in req->hr_flags, we'll continue processing through the out_true label, where we put another reference on the sock and a refcount underflow occurs.  This can happen for example if a handshake times out - particularly if the SUNRPC client sends the AUTH_TLS probe to the server but doesn't follow it up with the ClientHello due to a problem with tlshd.  When the timeout is hit on the server, the server will send a FIN, which triggers a cancellation request via xs_reset_transport().  When the timeout is hit on the client, another cancellation request happens via xs_tls_handshake_sync().  Add a test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED) in the pending cancel path so duplicate cancels can be detected.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15: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-71122",
                        "url": "https://ubuntu.com/security/CVE-2025-71122",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommufd/selftest: Check for overflow in IOMMU_TEST_OP_ADD_RESERVED  syzkaller found it could overflow math in the test infrastructure and cause a WARN_ON by corrupting the reserved interval tree. This only effects test kernels with CONFIG_IOMMUFD_TEST.  Validate the user input length in the test ioctl.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15: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-68809",
                        "url": "https://ubuntu.com/security/CVE-2025-68809",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: vfs: fix race on m_flags in vfs_cache  ksmbd maintains delete-on-close and pending-delete state in ksmbd_inode->m_flags. In vfs_cache.c this field is accessed under inconsistent locking: some paths read and modify m_flags under ci->m_lock while others do so without taking the lock at all.  Examples:   - ksmbd_query_inode_status() and __ksmbd_inode_close() use    ci->m_lock when checking or updating m_flags.  - ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete() and ksmbd_fd_set_delete_on_close()    used to read and modify m_flags without ci->m_lock.  This creates a potential data race on m_flags when multiple threads open, close and delete the same file concurrently. In the worst case delete-on-close and pending-delete bits can be lost or observed in an inconsistent state, leading to confusing delete semantics (files that stay on disk after delete-on-close, or files that disappear while still in use).  Fix it by:   - Making ksmbd_query_inode_status() look at m_flags under ci->m_lock    after dropping inode_hash_lock.  - Adding ci->m_lock protection to all helpers that read or modify    m_flags (ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete(), ksmbd_fd_set_delete_on_close()).  - Keeping the existing ci->m_lock protection in __ksmbd_inode_close(),    and moving the actual unlink/xattr removal outside the lock.  This unifies the locking around m_flags and removes the data race while preserving the existing delete-on-close behaviour.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68817",
                        "url": "https://ubuntu.com/security/CVE-2025-68817",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency  Under high concurrency, A tree-connection object (tcon) is freed on a disconnect path while another path still holds a reference and later executes *_put()/write on it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16: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-71067",
                        "url": "https://ubuntu.com/security/CVE-2025-71067",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs: set dummy blocksize to read boot_block when mounting  When mounting, sb->s_blocksize is used to read the boot_block without being defined or validated. Set a dummy blocksize before attempting to read the boot_block.  The issue can be triggered with the following syz reproducer:    mkdirat(0xffffffffffffff9c, &(0x7f0000000080)='./file1\\x00', 0x0)   r4 = openat$nullb(0xffffffffffffff9c, &(0x7f0000000040), 0x121403, 0x0)   ioctl$FS_IOC_SETFLAGS(r4, 0x40081271, &(0x7f0000000980)=0x4000)   mount(&(0x7f0000000140)=@nullb, &(0x7f0000000040)='./cgroup\\x00',         &(0x7f0000000000)='ntfs3\\x00', 0x2208004, 0x0)   syz_clone(0x88200200, 0x0, 0x0, 0x0, 0x0, 0x0)  Here, the ioctl sets the bdev block size to 16384. During mount, get_tree_bdev_flags() calls sb_set_blocksize(sb, block_size(bdev)), but since block_size(bdev) > PAGE_SIZE, sb_set_blocksize() leaves sb->s_blocksize at zero.  Later, ntfs_init_from_boot() attempts to read the boot_block while sb->s_blocksize is still zero, which triggers the bug.  [almaz.alexandrovich@paragon-software.com: changed comment style, added return value handling]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16: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-68798",
                        "url": "https://ubuntu.com/security/CVE-2025-68798",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf/x86/amd: Check event before enable to avoid GPF  On AMD machines cpuc->events[idx] can become NULL in a subtle race condition with NMI->throttle->x86_pmu_stop().  Check event for NULL in amd_pmu_enable_all() before enable to avoid a GPF. This appears to be an AMD only issue.  Syzkaller reported a GPF in amd_pmu_enable_all.  INFO: NMI handler (perf_event_nmi_handler) took too long to run: 13.143     msecs Oops: general protection fault, probably for non-canonical address     0xdffffc0000000034: 0000  PREEMPT SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x00000000000001a0-0x00000000000001a7] CPU: 0 UID: 0 PID: 328415 Comm: repro_36674776 Not tainted 6.12.0-rc1-syzk RIP: 0010:x86_pmu_enable_event (arch/x86/events/perf_event.h:1195     arch/x86/events/core.c:1430) RSP: 0018:ffff888118009d60 EFLAGS: 00010012 RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000000034 RSI: 0000000000000000 RDI: 00000000000001a0 RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000002 R13: ffff88811802a440 R14: ffff88811802a240 R15: ffff8881132d8601 FS:  00007f097dfaa700(0000) GS:ffff888118000000(0000) GS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000200001c0 CR3: 0000000103d56000 CR4: 00000000000006f0 Call Trace:  <IRQ> amd_pmu_enable_all (arch/x86/events/amd/core.c:760 (discriminator 2)) x86_pmu_enable (arch/x86/events/core.c:1360) event_sched_out (kernel/events/core.c:1191 kernel/events/core.c:1186     kernel/events/core.c:2346) __perf_remove_from_context (kernel/events/core.c:2435) event_function (kernel/events/core.c:259) remote_function (kernel/events/core.c:92 (discriminator 1)     kernel/events/core.c:72 (discriminator 1)) __flush_smp_call_function_queue (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207 ./include/trace/events/csd.h:64     kernel/smp.c:135 kernel/smp.c:540) __sysvec_call_function_single (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207     ./arch/x86/include/asm/trace/irq_vectors.h:99 arch/x86/kernel/smp.c:272) sysvec_call_function_single (arch/x86/kernel/smp.c:266 (discriminator 47)     arch/x86/kernel/smp.c:266 (discriminator 47))  </IRQ>",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68794",
                        "url": "https://ubuntu.com/security/CVE-2025-68794",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iomap: adjust read range correctly for non-block-aligned positions  iomap_adjust_read_range() assumes that the position and length passed in are block-aligned. This is not always the case however, as shown in the syzbot generated case for erofs. This causes too many bytes to be skipped for uptodate blocks, which results in returning the incorrect position and length to read in. If all the blocks are uptodate, this underflows length and returns a position beyond the folio.  Fix the calculation to also take into account the block offset when calculating how many bytes can be skipped for uptodate blocks.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16: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-68766",
                        "url": "https://ubuntu.com/security/CVE-2025-68766",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()  If irq_domain_translate_twocell() sets \"hwirq\" to >= MCHP_EIC_NIRQ (2) then it results in an out of bounds access.  The code checks for invalid values, but doesn't set the error code.  Return -EINVAL in that case, instead of returning success.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68756",
                        "url": "https://ubuntu.com/security/CVE-2025-68756",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  block: Use RCU in blk_mq_[un]quiesce_tagset() instead of set->tag_list_lock  blk_mq_{add,del}_queue_tag_set() functions add and remove queues from tagset, the functions make sure that tagset and queues are marked as shared when two or more queues are attached to the same tagset. Initially a tagset starts as unshared and when the number of added queues reaches two, blk_mq_add_queue_tag_set() marks it as shared along with all the queues attached to it. When the number of attached queues drops to 1 blk_mq_del_queue_tag_set() need to mark both the tagset and the remaining queues as unshared.  Both functions need to freeze current queues in tagset before setting on unsetting BLK_MQ_F_TAG_QUEUE_SHARED flag. While doing so, both functions hold set->tag_list_lock mutex, which makes sense as we do not want queues to be added or deleted in the process. This used to work fine until commit 98d81f0df70c (\"nvme: use blk_mq_[un]quiesce_tagset\") made the nvme driver quiesce tagset instead of quiscing individual queues. blk_mq_quiesce_tagset() does the job and quiesce the queues in set->tag_list while holding set->tag_list_lock also.  This results in deadlock between two threads with these stacktraces:    __schedule+0x47c/0xbb0   ? timerqueue_add+0x66/0xb0   schedule+0x1c/0xa0   schedule_preempt_disabled+0xa/0x10   __mutex_lock.constprop.0+0x271/0x600   blk_mq_quiesce_tagset+0x25/0xc0   nvme_dev_disable+0x9c/0x250   nvme_timeout+0x1fc/0x520   blk_mq_handle_expired+0x5c/0x90   bt_iter+0x7e/0x90   blk_mq_queue_tag_busy_iter+0x27e/0x550   ? __blk_mq_complete_request_remote+0x10/0x10   ? __blk_mq_complete_request_remote+0x10/0x10   ? __call_rcu_common.constprop.0+0x1c0/0x210   blk_mq_timeout_work+0x12d/0x170   process_one_work+0x12e/0x2d0   worker_thread+0x288/0x3a0   ? rescuer_thread+0x480/0x480   kthread+0xb8/0xe0   ? kthread_park+0x80/0x80   ret_from_fork+0x2d/0x50   ? kthread_park+0x80/0x80   ret_from_fork_asm+0x11/0x20    __schedule+0x47c/0xbb0   ? xas_find+0x161/0x1a0   schedule+0x1c/0xa0   blk_mq_freeze_queue_wait+0x3d/0x70   ? destroy_sched_domains_rcu+0x30/0x30   blk_mq_update_tag_set_shared+0x44/0x80   blk_mq_exit_queue+0x141/0x150   del_gendisk+0x25a/0x2d0   nvme_ns_remove+0xc9/0x170   nvme_remove_namespaces+0xc7/0x100   nvme_remove+0x62/0x150   pci_device_remove+0x23/0x60   device_release_driver_internal+0x159/0x200   unbind_store+0x99/0xa0   kernfs_fop_write_iter+0x112/0x1e0   vfs_write+0x2b1/0x3d0   ksys_write+0x4e/0xb0   do_syscall_64+0x5b/0x160   entry_SYSCALL_64_after_hwframe+0x4b/0x53  The top stacktrace is showing nvme_timeout() called to handle nvme command timeout. timeout handler is trying to disable the controller and as a first step, it needs to blk_mq_quiesce_tagset() to tell blk-mq not to call queue callback handlers. The thread is stuck waiting for set->tag_list_lock as it tries to walk the queues in set->tag_list.  The lock is held by the second thread in the bottom stack which is waiting for one of queues to be frozen. The queue usage counter will drop to zero after nvme_timeout() finishes, and this will not happen because the thread will wait for this mutex forever.  Given that [un]quiescing queue is an operation that does not need to sleep, update blk_mq_[un]quiesce_tagset() to use RCU instead of taking set->tag_list_lock, update blk_mq_{add,del}_queue_tag_set() to use RCU safe list operations. Also, delete INIT_LIST_HEAD(&q->tag_set_list) in blk_mq_del_queue_tag_set() because we can not re-initialize it while the list is being traversed under RCU. The deleted queue will not be added/deleted to/from a tagset and it will be freed in blk_free_queue() after the end of RCU grace period.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68753",
                        "url": "https://ubuntu.com/security/CVE-2025-68753",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: add bounds check in put_user loop for DSP events  In the DSP event handling code, a put_user() loop copies event data. When the user buffer size is not aligned to 4 bytes, it could overwrite beyond the buffer boundary.  Fix by adding a bounds check before put_user().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68347",
                        "url": "https://ubuntu.com/security/CVE-2025-68347",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: fix buffer overflow in hwdep read for DSP events  The DSP event handling code in hwdep_read() could write more bytes to the user buffer than requested, when a user provides a buffer smaller than the event header size (8 bytes).  Fix by using min_t() to clamp the copy size, This ensures we never copy more than the user requested.",
                        "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-68763",
                        "url": "https://ubuntu.com/security/CVE-2025-68763",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: starfive - Correctly handle return of sg_nents_for_len  The return value of sg_nents_for_len was assigned to an unsigned long in starfive_hash_digest, causing negative error codes to be converted to large positive integers.  Add error checking for sg_nents_for_len and return immediately on failure to prevent potential buffer overflows.",
                        "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-68741",
                        "url": "https://ubuntu.com/security/CVE-2025-68741",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Fix improper freeing of purex item  In qla2xxx_process_purls_iocb(), an item is allocated via qla27xx_copy_multiple_pkt(), which internally calls qla24xx_alloc_purex_item().  The qla24xx_alloc_purex_item() function may return a pre-allocated item from a per-adapter pool for small allocations, instead of dynamically allocating memory with kzalloc().  An error handling path in qla2xxx_process_purls_iocb() incorrectly uses kfree() to release the item. If the item was from the pre-allocated pool, calling kfree() on it is a bug that can lead to memory corruption.  Fix this by using the correct deallocation function, qla24xx_free_purex_item(), which properly handles both dynamically allocated and pre-allocated items.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68742",
                        "url": "https://ubuntu.com/security/CVE-2025-68742",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix invalid prog->stats access when update_effective_progs fails  Syzkaller triggers an invalid memory access issue following fault injection in update_effective_progs. The issue can be described as follows:  __cgroup_bpf_detach   update_effective_progs     compute_effective_progs       bpf_prog_array_alloc <-- fault inject   purge_effective_progs     /* change to dummy_bpf_prog */     array->items[index] = &dummy_bpf_prog.prog  ---softirq start--- __do_softirq   ...     __cgroup_bpf_run_filter_skb       __bpf_prog_run_save_cb         bpf_prog_run           stats = this_cpu_ptr(prog->stats)           /* invalid memory access */           flags = u64_stats_update_begin_irqsave(&stats->syncp) ---softirq end---    static_branch_dec(&cgroup_bpf_enabled_key[atype])  The reason is that fault injection caused update_effective_progs to fail and then changed the original prog into dummy_bpf_prog.prog in purge_effective_progs. Then a softirq came, and accessing the members of dummy_bpf_prog.prog in the softirq triggers invalid mem access.  To fix it, skip updating stats when stats is NULL.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16: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-68363",
                        "url": "https://ubuntu.com/security/CVE-2025-68363",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Check skb->transport_header is set in bpf_skb_check_mtu  The bpf_skb_check_mtu helper needs to use skb->transport_header when the BPF_MTU_CHK_SEGS flag is used:  \tbpf_skb_check_mtu(skb, ifindex, &mtu_len, 0, BPF_MTU_CHK_SEGS)  The transport_header is not always set. There is a WARN_ON_ONCE report when CONFIG_DEBUG_NET is enabled + skb->gso_size is set + bpf_prog_test_run is used:  WARNING: CPU: 1 PID: 2216 at ./include/linux/skbuff.h:3071  skb_gso_validate_network_len  bpf_skb_check_mtu  bpf_prog_3920e25740a41171_tc_chk_segs_flag # A test in the next patch  bpf_test_run  bpf_prog_test_run_skb  For a normal ingress skb (not test_run), skb_reset_transport_header is performed but there is plan to avoid setting it as described in commit 2170a1f09148 (\"net: no longer reset transport_header in __netif_receive_skb_core()\").  This patch fixes the bpf helper by checking skb_transport_header_was_set(). The check is done just before skb->transport_header is used, to avoid breaking the existing bpf prog. The WARN_ON_ONCE is limited to bpf_prog_test_run, so targeting bpf-next.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68744",
                        "url": "https://ubuntu.com/security/CVE-2025-68744",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Free special fields when update [lru_,]percpu_hash maps  As [lru_,]percpu_hash maps support BPF_KPTR_{REF,PERCPU}, missing calls to 'bpf_obj_free_fields()' in 'pcpu_copy_value()' could cause the memory referenced by BPF_KPTR_{REF,PERCPU} fields to be held until the map gets freed.  Fix this by calling 'bpf_obj_free_fields()' after 'copy_map_value[,_long]()' in 'pcpu_copy_value()'.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16: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-68755",
                        "url": "https://ubuntu.com/security/CVE-2025-68755",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: most: remove broken i2c driver  The MOST I2C driver has been completely broken for five years without anyone noticing so remove the driver from staging.  Specifically, commit 723de0f9171e (\"staging: most: remove device from interface structure\") started requiring drivers to set the interface device pointer before registration, but the I2C driver was never updated which results in a NULL pointer dereference if anyone ever tries to probe it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68371",
                        "url": "https://ubuntu.com/security/CVE-2025-68371",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: smartpqi: Fix device resources accessed after device removal  Correct possible race conditions during device removal.  Previously, a scheduled work item to reset a LUN could still execute after the device was removed, leading to use-after-free and other resource access issues.  This race condition occurs because the abort handler may schedule a LUN reset concurrently with device removal via sdev_destroy(), leading to use-after-free and improper access to freed resources.    - Check in the device reset handler if the device is still present in     the controller's SCSI device list before running; if not, the reset     is skipped.    - Cancel any pending TMF work that has not started in sdev_destroy().    - Ensure device freeing in sdev_destroy() is done while holding the     LUN reset mutex to avoid races with ongoing resets.",
                        "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-68379",
                        "url": "https://ubuntu.com/security/CVE-2025-68379",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Fix null deref on srq->rq.queue after resize failure  A NULL pointer dereference can occur in rxe_srq_chk_attr() when ibv_modify_srq() is invoked twice in succession under certain error conditions. The first call may fail in rxe_queue_resize(), which leads rxe_srq_from_attr() to set srq->rq.queue = NULL. The second call then triggers a crash (null deref) when accessing srq->rq.queue->buf->index_mask.  Call Trace: <TASK> rxe_modify_srq+0x170/0x480 [rdma_rxe] ? __pfx_rxe_modify_srq+0x10/0x10 [rdma_rxe] ? uverbs_try_lock_object+0x4f/0xa0 [ib_uverbs] ? rdma_lookup_get_uobject+0x1f0/0x380 [ib_uverbs] ib_uverbs_modify_srq+0x204/0x290 [ib_uverbs] ? __pfx_ib_uverbs_modify_srq+0x10/0x10 [ib_uverbs] ? tryinc_node_nr_active+0xe6/0x150 ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x2c0/0x470 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_run_method+0x55a/0x6e0 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ib_uverbs_cmd_verbs+0x54d/0x800 [ib_uverbs] ? __pfx_ib_uverbs_cmd_verbs+0x10/0x10 [ib_uverbs] ? __pfx___raw_spin_lock_irqsave+0x10/0x10 ? __pfx_do_vfs_ioctl+0x10/0x10 ? ioctl_has_perm.constprop.0.isra.0+0x2c7/0x4c0 ? __pfx_ioctl_has_perm.constprop.0.isra.0+0x10/0x10 ib_uverbs_ioctl+0x13e/0x220 [ib_uverbs] ? __pfx_ib_uverbs_ioctl+0x10/0x10 [ib_uverbs] __x64_sys_ioctl+0x138/0x1c0 do_syscall_64+0x82/0x250 ? fdget_pos+0x58/0x4c0 ? ksys_write+0xf3/0x1c0 ? __pfx_ksys_write+0x10/0x10 ? do_syscall_64+0xc8/0x250 ? __pfx_vm_mmap_pgoff+0x10/0x10 ? fget+0x173/0x230 ? fput+0x2a/0x80 ? ksys_mmap_pgoff+0x224/0x4c0 ? do_syscall_64+0xc8/0x250 ? do_user_addr_fault+0x37b/0xfe0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 entry_SYSCALL_64_after_hwframe+0x76/0x7e",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68380",
                        "url": "https://ubuntu.com/security/CVE-2025-68380",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix peer HE MCS assignment  In ath11k_wmi_send_peer_assoc_cmd(), peer's transmit MCS is sent to firmware as receive MCS while peer's receive MCS sent as transmit MCS, which goes against firmwire's definition.  While connecting to a misbehaved AP that advertises 0xffff (meaning not supported) for 160 MHz transmit MCS map, firmware crashes due to 0xffff is assigned to he_mcs->rx_mcs_set field.  \tExt Tag: HE Capabilities \t    [...] \t    Supported HE-MCS and NSS Set \t\t[...] \t        Rx and Tx MCS Maps 160 MHz \t\t    [...] \t            Tx HE-MCS Map 160 MHz: 0xffff  Swap the assignment to fix this issue.  As the HE rate control mask is meant to limit our own transmit MCS, it needs to go via he_mcs->rx_mcs_set field. With the aforementioned swapping done, change is needed as well to apply it to the peer's receive MCS.  Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41 Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11: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-68256",
                        "url": "https://ubuntu.com/security/CVE-2025-68256",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in rtw_get_ie() parser  The Information Element (IE) parser rtw_get_ie() trusted the length byte of each IE without validating that the IE body (len bytes after the 2-byte header) fits inside the remaining frame buffer. A malformed frame can advertise an IE length larger than the available data, causing the parser to increment its pointer beyond the buffer end. This results in out-of-bounds reads or, depending on the pattern, an infinite loop.  Fix by validating that (offset + 2 + len) does not exceed the limit before accepting the IE or advancing to the next element.  This prevents OOB reads and ensures the parser terminates safely on malformed frames.",
                        "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-68265",
                        "url": "https://ubuntu.com/security/CVE-2025-68265",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: fix admin request_queue lifetime  The namespaces can access the controller's admin request_queue, and stale references on the namespaces may exist after tearing down the controller. Ensure the admin request_queue is active by moving the controller's 'put' to after all controller references have been released to ensure no one is can access the request_queue. This fixes a reported use-after-free bug:    BUG: KASAN: slab-use-after-free in blk_queue_enter+0x41c/0x4a0   Read of size 8 at addr ffff88c0a53819f8 by task nvme/3287   CPU: 67 UID: 0 PID: 3287 Comm: nvme Tainted: G            E      6.13.2-ga1582f1a031e #15   Tainted: [E]=UNSIGNED_MODULE   Hardware name: Jabil /EGS 2S MB1, BIOS 1.00 06/18/2025   Call Trace:    <TASK>    dump_stack_lvl+0x4f/0x60    print_report+0xc4/0x620    ? _raw_spin_lock_irqsave+0x70/0xb0    ? _raw_read_unlock_irqrestore+0x30/0x30    ? blk_queue_enter+0x41c/0x4a0    kasan_report+0xab/0xe0    ? blk_queue_enter+0x41c/0x4a0    blk_queue_enter+0x41c/0x4a0    ? __irq_work_queue_local+0x75/0x1d0    ? blk_queue_start_drain+0x70/0x70    ? irq_work_queue+0x18/0x20    ? vprintk_emit.part.0+0x1cc/0x350    ? wake_up_klogd_work_func+0x60/0x60    blk_mq_alloc_request+0x2b7/0x6b0    ? __blk_mq_alloc_requests+0x1060/0x1060    ? __switch_to+0x5b7/0x1060    nvme_submit_user_cmd+0xa9/0x330    nvme_user_cmd.isra.0+0x240/0x3f0    ? force_sigsegv+0xe0/0xe0    ? nvme_user_cmd64+0x400/0x400    ? vfs_fileattr_set+0x9b0/0x9b0    ? cgroup_update_frozen_flag+0x24/0x1c0    ? cgroup_leave_frozen+0x204/0x330    ? nvme_ioctl+0x7c/0x2c0    blkdev_ioctl+0x1a8/0x4d0    ? blkdev_common_ioctl+0x1930/0x1930    ? fdget+0x54/0x380    __x64_sys_ioctl+0x129/0x190    do_syscall_64+0x5b/0x160    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f765f703b0b   Code: ff ff ff 85 c0 79 9b 49 c7 c4 ff ff ff ff 5b 5d 4c 89 e0 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d dd 52 0f 00 f7 d8 64 89 01 48   RSP: 002b:00007ffe2cefe808 EFLAGS: 00000202 ORIG_RAX: 0000000000000010   RAX: ffffffffffffffda RBX: 00007ffe2cefe860 RCX: 00007f765f703b0b   RDX: 00007ffe2cefe860 RSI: 00000000c0484e41 RDI: 0000000000000003   RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000000   R10: 00007f765f611d50 R11: 0000000000000202 R12: 0000000000000003   R13: 00000000c0484e41 R14: 0000000000000001 R15: 00007ffe2cefea60    </TASK>",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15: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-68259",
                        "url": "https://ubuntu.com/security/CVE-2025-68259",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: SVM: Don't skip unrelated instruction if INT3/INTO is replaced  When re-injecting a soft interrupt from an INT3, INT0, or (select) INTn instruction, discard the exception and retry the instruction if the code stream is changed (e.g. by a different vCPU) between when the CPU executes the instruction and when KVM decodes the instruction to get the next RIP.  As effectively predicted by commit 6ef88d6e36c2 (\"KVM: SVM: Re-inject INT3/INTO instead of retrying the instruction\"), failure to verify that the correct INTn instruction was decoded can effectively clobber guest state due to decoding the wrong instruction and thus specifying the wrong next RIP.  The bug most often manifests as \"Oops: int3\" panics on static branch checks in Linux guests.  Enabling or disabling a static branch in Linux uses the kernel's \"text poke\" code patching mechanism.  To modify code while other CPUs may be executing that code, Linux (temporarily) replaces the first byte of the original instruction with an int3 (opcode 0xcc), then patches in the new code stream except for the first byte, and finally replaces the int3 with the first byte of the new code stream.  If a CPU hits the int3, i.e. executes the code while it's being modified, then the guest kernel must look up the RIP to determine how to handle the #BP, e.g. by emulating the new instruction.  If the RIP is incorrect, then this lookup fails and the guest kernel panics.  The bug reproduces almost instantly by hacking the guest kernel to repeatedly check a static branch[1] while running a drgn script[2] on the host to constantly swap out the memory containing the guest's TSS.  [1]: https://gist.github.com/osandov/44d17c51c28c0ac998ea0334edf90b5a [2]: https://gist.github.com/osandov/10e45e45afa29b11e0c7209247afc00b",
                        "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-68263",
                        "url": "https://ubuntu.com/security/CVE-2025-68263",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: ipc: fix use-after-free in ipc_msg_send_request  ipc_msg_send_request() waits for a generic netlink reply using an ipc_msg_table_entry on the stack. The generic netlink handler (handle_generic_event()/handle_response()) fills entry->response under ipc_msg_table_lock, but ipc_msg_send_request() used to validate and free entry->response without holding the same lock.  Under high concurrency this allows a race where handle_response() is copying data into entry->response while ipc_msg_send_request() has just freed it, leading to a slab-use-after-free reported by KASAN in handle_generic_event():    BUG: KASAN: slab-use-after-free in handle_generic_event+0x3c4/0x5f0 [ksmbd]   Write of size 12 at addr ffff888198ee6e20 by task pool/109349   ...   Freed by task:     kvfree     ipc_msg_send_request [ksmbd]     ksmbd_rpc_open -> ksmbd_session_rpc_open [ksmbd]  Fix by: - Taking ipc_msg_table_lock in ipc_msg_send_request() while validating   entry->response, freeing it when invalid, and removing the entry from   ipc_msg_table. - Returning the final entry->response pointer to the caller only after   the hash entry is removed under the lock. - Returning NULL in the error path, preserving the original API   semantics.  This makes all accesses to entry->response consistent with handle_response(), which already updates and fills the response buffer under ipc_msg_table_lock, and closes the race that allowed the UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15: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-2026-23111",
                        "url": "https://ubuntu.com/security/CVE-2026-23111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23209",
                        "url": "https://ubuntu.com/security/CVE-2026-23209",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-14 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23074",
                        "url": "https://ubuntu.com/security/CVE-2026-23074",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23060",
                        "url": "https://ubuntu.com/security/CVE-2026-23060",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23074",
                        "url": "https://ubuntu.com/security/CVE-2026-23074",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23060",
                        "url": "https://ubuntu.com/security/CVE-2026-23060",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23111",
                        "url": "https://ubuntu.com/security/CVE-2026-23111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2151069,
                    2151070,
                    2150047,
                    2150048,
                    2149766,
                    2149762,
                    2147981,
                    2148397,
                    2146465,
                    2147982,
                    2147447,
                    2147400,
                    2147065,
                    2144577,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147841,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2147543,
                    2145171,
                    2144060,
                    2144006,
                    2144914,
                    2143152,
                    2143083,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2146465,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144058,
                    2144380,
                    2147889,
                    2147890,
                    2144380,
                    2143477,
                    2144887,
                    2144730,
                    2143478,
                    2142235,
                    2143033,
                    2142337,
                    2141276,
                    2139322,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2142789,
                    2144266,
                    2144267
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-31419",
                                "url": "https://ubuntu.com/security/CVE-2026-31419",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: bonding: fix use-after-free in bond_xmit_broadcast()  bond_xmit_broadcast() reuses the original skb for the last slave (determined by bond_is_last_slave()) and clones it for others. Concurrent slave enslave/release can mutate the slave list during RCU-protected iteration, changing which slave is \"last\" mid-loop. This causes the original skb to be double-consumed (double-freed).  Replace the racy bond_is_last_slave() check with a simple index comparison (i + 1 == slaves_count) against the pre-snapshot slave count taken via READ_ONCE() before the loop.  This preserves the zero-copy optimization for the last slave while making the \"last\" determination stable against concurrent list mutations.  The UAF can trigger the following crash:  ================================================================== BUG: KASAN: slab-use-after-free in skb_clone Read of size 8 at addr ffff888100ef8d40 by task exploit/147  CPU: 1 UID: 0 PID: 147 Comm: exploit Not tainted 7.0.0-rc3+ #4 PREEMPTLAZY Call Trace:  <TASK>  dump_stack_lvl (lib/dump_stack.c:123)  print_report (mm/kasan/report.c:379 mm/kasan/report.c:482)  kasan_report (mm/kasan/report.c:597)  skb_clone (include/linux/skbuff.h:1724 include/linux/skbuff.h:1792 include/linux/skbuff.h:3396 net/core/skbuff.c:2108)  bond_xmit_broadcast (drivers/net/bonding/bond_main.c:5334)  bond_start_xmit (drivers/net/bonding/bond_main.c:5567 drivers/net/bonding/bond_main.c:5593)  dev_hard_start_xmit (include/linux/netdevice.h:5325 include/linux/netdevice.h:5334 net/core/dev.c:3871 net/core/dev.c:3887)  __dev_queue_xmit (include/linux/netdevice.h:3601 net/core/dev.c:4838)  ip6_finish_output2 (include/net/neighbour.h:540 include/net/neighbour.h:554 net/ipv6/ip6_output.c:136)  ip6_finish_output (net/ipv6/ip6_output.c:208 net/ipv6/ip6_output.c:219)  ip6_output (net/ipv6/ip6_output.c:250)  ip6_send_skb (net/ipv6/ip6_output.c:1985)  udp_v6_send_skb (net/ipv6/udp.c:1442)  udpv6_sendmsg (net/ipv6/udp.c:1733)  __sys_sendto (net/socket.c:730 net/socket.c:742 net/socket.c:2206)  __x64_sys_sendto (net/socket.c:2209)  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)  </TASK>  Allocated by task 147:  Freed by task 147:  The buggy address belongs to the object at ffff888100ef8c80  which belongs to the cache skbuff_head_cache of size 224 The buggy address is located 192 bytes inside of  freed 224-byte region [ffff888100ef8c80, ffff888100ef8d60)  Memory state around the buggy address:  ffff888100ef8c00: fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc  ffff888100ef8c80: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff888100ef8d00: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc                                                     ^  ffff888100ef8d80: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb  ffff888100ef8e00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-13 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31431",
                                "url": "https://ubuntu.com/security/CVE-2026-31431",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: algif_aead - Revert to operating out-of-place  This mostly reverts commit 72548b093ee3 except for the copying of the associated data.  There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings.  Get rid of all the complexity added for in-place operation and just copy the AD directly.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-04-22 09:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31533",
                                "url": "https://ubuntu.com/security/CVE-2026-31533",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption  The -EBUSY handling in tls_do_encryption(), introduced by commit 859054147318 (\"net: tls: handle backlogging of crypto requests\"), has a use-after-free due to double cleanup of encrypt_pending and the scatterlist entry.  When crypto_aead_encrypt() returns -EBUSY, the request is enqueued to the cryptd backlog and the async callback tls_encrypt_done() will be invoked upon completion. That callback unconditionally restores the scatterlist entry (sge->offset, sge->length) and decrements ctx->encrypt_pending. However, if tls_encrypt_async_wait() returns an error, the synchronous error path in tls_do_encryption() performs the same cleanup again, double-decrementing encrypt_pending and double-restoring the scatterlist.  The double-decrement corrupts the encrypt_pending sentinel (initialized to 1), making tls_encrypt_async_wait() permanently skip the wait for pending async callbacks. A subsequent sendmsg can then free the tls_rec via bpf_exec_tx_verdict() while a cryptd callback is still pending, resulting in a use-after-free when the callback fires on the freed record.  Fix this by skipping the synchronous cleanup when the -EBUSY async wait returns an error, since the callback has already handled encrypt_pending and sge restoration.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-23 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31504",
                                "url": "https://ubuntu.com/security/CVE-2026-31504",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix fanout UAF in packet_release() via NETDEV_UP race  `packet_release()` has a race window where `NETDEV_UP` can re-register a socket into a fanout group's `arr[]` array. The re-registration is not cleaned up by `fanout_release()`, leaving a dangling pointer in the fanout array. `packet_release()` does NOT zero `po->num` in its `bind_lock` section. After releasing `bind_lock`, `po->num` is still non-zero and `po->ifindex` still matches the bound device. A concurrent `packet_notifier(NETDEV_UP)` that already found the socket in `sklist` can re-register the hook. For fanout sockets, this re-registration calls `__fanout_link(sk, po)` which adds the socket back into `f->arr[]` and increments `f->num_members`, but does NOT increment `f->sk_ref`.  The fix sets `po->num` to zero in `packet_release` while `bind_lock` is held to prevent NETDEV_UP from linking, preventing the race window.  This bug was found following an additional audit with Claude Code based on CVE-2025-38617.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-22 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-117.117~22.04.1 -proposed tracker (LP: #2151069)",
                            "",
                            "  [ Ubuntu: 6.8.0-117.117 ]",
                            "",
                            "  * noble/linux: 6.8.0-117.117 -proposed tracker (LP: #2151070)",
                            "  * CVE-2026-31419",
                            "    - net: bonding: fix use-after-free in bond_xmit_broadcast()",
                            "  * CVE-2026-31431",
                            "    - crypto: scatterwalk - Backport memcpy_sglist()",
                            "    - crypto: algif_aead - use memcpy_sglist() instead of null skcipher",
                            "    - crypto: algif_aead - Revert to operating out-of-place",
                            "    - crypto: algif_aead - snapshot IV for async AEAD requests",
                            "    - crypto: authenc - use memcpy_sglist() instead of null skcipher",
                            "    - crypto: authencesn - Do not place hiseq at end of dst for out-of-place",
                            "      decryption",
                            "    - crypto: authencesn - Fix src offset when decrypting in-place",
                            "    - crypto: af_alg - Fix page reassignment overflow in af_alg_pull_tsgl",
                            "    - crypto: algif_aead - Fix minimum RX size check for decryption",
                            "  * CVE-2026-31533",
                            "    - net/tls: fix use-after-free in -EBUSY error path of tls_do_encryption",
                            "  * CVE-2026-31504",
                            "    - net: fix fanout UAF in packet_release() via NETDEV_UP race",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-117.117~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2151069,
                            2151070
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Thu, 07 May 2026 23:11:56 +0200"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-116.116~22.04.1 -proposed tracker (LP: #2150047)",
                            "",
                            "  [ Ubuntu: 6.8.0-116.116 ]",
                            "",
                            "  * noble/linux: 6.8.0-116.116 -proposed tracker (LP: #2150048)",
                            "  * Linux kernel  6.17.0-22.22  breaks amdxdna (LP: #2149766)",
                            "    - Revert \"iommu: disable SVA when CONFIG_X86 is set\"",
                            "  * Revert \"netfilter: conntrack: fix erronous removal of offload bit\"",
                            "    (LP: #2149762)",
                            "    - Revert \"netfilter: conntrack: fix erronous removal of offload bit\"",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-116.116~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2150047,
                            2150048,
                            2149766,
                            2149762
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 24 Apr 2026 13:42:45 +0200"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23214",
                                "url": "https://ubuntu.com/security/CVE-2026-23214",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: reject new transactions if the fs is fully read-only  [BUG] There is a bug report where a heavily fuzzed fs is mounted with all rescue mount options, which leads to the following warnings during unmount:    BTRFS: Transaction aborted (error -22)   Modules linked in:   CPU: 0 UID: 0 PID: 9758 Comm: repro.out Not tainted   6.19.0-rc5-00002-gb71e635feefc #7 PREEMPT(full)   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014   RIP: 0010:find_free_extent_update_loop fs/btrfs/extent-tree.c:4208 [inline]   RIP: 0010:find_free_extent+0x52f0/0x5d20 fs/btrfs/extent-tree.c:4611   Call Trace:    <TASK>    btrfs_reserve_extent+0x2cd/0x790 fs/btrfs/extent-tree.c:4705    btrfs_alloc_tree_block+0x1e1/0x10e0 fs/btrfs/extent-tree.c:5157    btrfs_force_cow_block+0x578/0x2410 fs/btrfs/ctree.c:517    btrfs_cow_block+0x3c4/0xa80 fs/btrfs/ctree.c:708    btrfs_search_slot+0xcad/0x2b50 fs/btrfs/ctree.c:2130    btrfs_truncate_inode_items+0x45d/0x2350 fs/btrfs/inode-item.c:499    btrfs_evict_inode+0x923/0xe70 fs/btrfs/inode.c:5628    evict+0x5f4/0xae0 fs/inode.c:837    __dentry_kill+0x209/0x660 fs/dcache.c:670    finish_dput+0xc9/0x480 fs/dcache.c:879    shrink_dcache_for_umount+0xa0/0x170 fs/dcache.c:1661    generic_shutdown_super+0x67/0x2c0 fs/super.c:621    kill_anon_super+0x3b/0x70 fs/super.c:1289    btrfs_kill_super+0x41/0x50 fs/btrfs/super.c:2127    deactivate_locked_super+0xbc/0x130 fs/super.c:474    cleanup_mnt+0x425/0x4c0 fs/namespace.c:1318    task_work_run+0x1d4/0x260 kernel/task_work.c:233    exit_task_work include/linux/task_work.h:40 [inline]    do_exit+0x694/0x22f0 kernel/exit.c:971    do_group_exit+0x21c/0x2d0 kernel/exit.c:1112    __do_sys_exit_group kernel/exit.c:1123 [inline]    __se_sys_exit_group kernel/exit.c:1121 [inline]    __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1121    x64_sys_call+0x2210/0x2210 arch/x86/include/generated/asm/syscalls_64.h:232    do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]    do_syscall_64+0xe8/0xf80 arch/x86/entry/syscall_64.c:94    entry_SYSCALL_64_after_hwframe+0x77/0x7f   RIP: 0033:0x44f639   Code: Unable to access opcode bytes at 0x44f60f.   RSP: 002b:00007ffc15c4e088 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7   RAX: ffffffffffffffda RBX: 00000000004c32f0 RCX: 000000000044f639   RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001   RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 0000000000000000   R10: 0000000000000000 R11: 0000000000000246 R12: 00000000004c32f0   R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001    </TASK>  Since rescue mount options will mark the full fs read-only, there should be no new transaction triggered.  But during unmount we will evict all inodes, which can trigger a new transaction, and triggers warnings on a heavily corrupted fs.  [CAUSE] Btrfs allows new transaction even on a read-only fs, this is to allow log replay happen even on read-only mounts, just like what ext4/xfs do.  However with rescue mount options, the fs is fully read-only and cannot be remounted read-write, thus in that case we should also reject any new transactions.  [FIX] If we find the fs has rescue mount options, we should treat the fs as error, so that no new transaction can be started.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23213",
                                "url": "https://ubuntu.com/security/CVE-2026-23213",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/pm: Disable MMIO access during SMU Mode 1 reset  During Mode 1 reset, the ASIC undergoes a reset cycle and becomes temporarily inaccessible via PCIe. Any attempt to access MMIO registers during this window (e.g., from interrupt handlers or other driver threads) can result in uncompleted PCIe transactions, leading to NMI panics or system hangs.  To prevent this, set the `no_hw_access` flag to true immediately after triggering the reset. This signals other driver components to skip register accesses while the device is offline.  A memory barrier `smp_mb()` is added to ensure the flag update is globally visible to all cores before the driver enters the sleep/wait state.  (cherry picked from commit 7edb503fe4b6d67f47d8bb0dfafb8e699bb0f8a4)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71225",
                                "url": "https://ubuntu.com/security/CVE-2025-71225",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: suspend array while updating raid_disks via sysfs  In raid1_reshape(), freeze_array() is called before modifying the r1bio memory pool (conf->r1bio_pool) and conf->raid_disks, and unfreeze_array() is called after the update is completed.  However, freeze_array() only waits until nr_sync_pending and (nr_pending - nr_queued) of all buckets reaches zero. When an I/O error occurs, nr_queued is increased and the corresponding r1bio is queued to either retry_list or bio_end_io_list. As a result, freeze_array() may unblock before these r1bios are released.  This can lead to a situation where conf->raid_disks and the mempool have already been updated while queued r1bios, allocated with the old raid_disks value, are later released. Consequently, free_r1bio() may access memory out of bounds in put_all_bios() and release r1bios of the wrong size to the new mempool, potentially causing issues with the mempool as well.  Since only normal I/O might increase nr_queued while an I/O error occurs, suspending the array avoids this issue.  Note: Updating raid_disks via ioctl SET_ARRAY_INFO already suspends the array. Therefore, we suspend the array when updating raid_disks via sysfs to avoid this issue too.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68823",
                                "url": "https://ubuntu.com/security/CVE-2025-68823",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ublk: fix deadlock when reading partition table  When one process(such as udev) opens ublk block device (e.g., to read the partition table via bdev_open()), a deadlock[1] can occur:  1. bdev_open() grabs disk->open_mutex 2. The process issues read I/O to ublk backend to read partition table 3. In __ublk_complete_rq(), blk_update_request() or blk_mq_end_request()    runs bio->bi_end_io() callbacks 4. If this triggers fput() on file descriptor of ublk block device, the    work may be deferred to current task's task work (see fput() implementation) 5. This eventually calls blkdev_release() from the same context 6. blkdev_release() tries to grab disk->open_mutex again 7. Deadlock: same task waiting for a mutex it already holds  The fix is to run blk_update_request() and blk_mq_end_request() with bottom halves disabled. This forces blkdev_release() to run in kernel work-queue context instead of current task work context, and allows ublk server to make forward progress, and avoids the deadlock.  [axboe: rewrite comment in ublk]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23191",
                                "url": "https://ubuntu.com/security/CVE-2026-23191",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: aloop: Fix racy access at PCM trigger  The PCM trigger callback of aloop driver tries to check the PCM state and stop the stream of the tied substream in the corresponding cable. Since both check and stop operations are performed outside the cable lock, this may result in UAF when a program attempts to trigger frequently while opening/closing the tied stream, as spotted by fuzzers.  For addressing the UAF, this patch changes two things: - It covers the most of code in loopback_check_format() with   cable->lock spinlock, and add the proper NULL checks.  This avoids   already some racy accesses. - In addition, now we try to check the state of the capture PCM stream   that may be stopped in this function, which was the major pain point   leading to UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23215",
                                "url": "https://ubuntu.com/security/CVE-2026-23215",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/vmware: Fix hypercall clobbers  Fedora QA reported the following panic:    BUG: unable to handle page fault for address: 0000000040003e54   #PF: supervisor write access in kernel mode   #PF: error_code(0x0002) - not-present page   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20251119-3.fc43 11/19/2025   RIP: 0010:vmware_hypercall4.constprop.0+0x52/0x90   ..   Call Trace:    vmmouse_report_events+0x13e/0x1b0    psmouse_handle_byte+0x15/0x60    ps2_interrupt+0x8a/0xd0    ...  because the QEMU VMware mouse emulation is buggy, and clears the top 32 bits of %rdi that the kernel kept a pointer in.  The QEMU vmmouse driver saves and restores the register state in a \"uint32_t data[6];\" and as a result restores the state with the high bits all cleared.  RDI originally contained the value of a valid kernel stack address (0xff5eeb3240003e54).  After the vmware hypercall it now contains 0x40003e54, and we get a page fault as a result when it is dereferenced.  The proper fix would be in QEMU, but this works around the issue in the kernel to keep old setups working, when old kernels had not happened to keep any state in %rdi over the hypercall.  In theory this same issue exists for all the hypercalls in the vmmouse driver; in practice it has only been seen with vmware_hypercall3() and vmware_hypercall4().  For now, just mark RDI/RSI as clobbered for those two calls.  This should have a minimal effect on code generation overall as it should be rare for the compiler to want to make RDI/RSI live across hypercalls.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23182",
                                "url": "https://ubuntu.com/security/CVE-2026-23182",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra: Fix a memory leak in tegra_slink_probe()  In tegra_slink_probe(), when platform_get_irq() fails, it directly returns from the function with an error code, which causes a memory leak.  Replace it with a goto label to ensure proper cleanup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23190",
                                "url": "https://ubuntu.com/security/CVE-2026-23190",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: amd: fix memory leak in acp3x pdm dma ops",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23254",
                                "url": "https://ubuntu.com/security/CVE-2026-23254",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: gro: fix outer network offset  The udp GRO complete stage assumes that all the packets inserted the RX have the `encapsulation` flag zeroed. Such assumption is not true, as a few H/W NICs can set such flag when H/W offloading the checksum for an UDP encapsulated traffic, the tun driver can inject GSO packets with UDP encapsulation and the problematic layout can also be created via a veth based setup.  Due to the above, in the problematic scenarios, udp4_gro_complete() uses the wrong network offset (inner instead of outer) to compute the outer UDP header pseudo checksum, leading to csum validation errors later on in packet processing.  Address the issue always clearing the encapsulation flag at GRO completion time. Such flag will be set again as needed for encapsulated packets by udp_gro_complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23180",
                                "url": "https://ubuntu.com/security/CVE-2026-23180",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: add bounds check for if_id in IRQ handler  The IRQ handler extracts if_id from the upper 16 bits of the hardware status register and uses it to index into ethsw->ports[] without validation. Since if_id can be any 16-bit value (0-65535) but the ports array is only allocated with sw_attr.num_ifs elements, this can lead to an out-of-bounds read potentially.  Add a bounds check before accessing the array, consistent with the existing validation in dpaa2_switch_rx().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23256",
                                "url": "https://ubuntu.com/security/CVE-2026-23256",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in VF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Compile tested only. Issue found using code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23257",
                                "url": "https://ubuntu.com/security/CVE-2026-23257",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Fix off-by-one error in PF setup_nic_devices() cleanup  In setup_nic_devices(), the initialization loop jumps to the label setup_nic_dev_free on failure. The current cleanup loop while(i--) skip the failing index i, causing a memory leak.  Fix this by changing the loop to iterate from the current index i down to 0.  Also, decrement i in the devlink_alloc failure path to point to the last successfully allocated index.  Compile tested only. Issue found using code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23258",
                                "url": "https://ubuntu.com/security/CVE-2026-23258",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: liquidio: Initialize netdev pointer before queue setup  In setup_nic_devices(), the netdev is allocated using alloc_etherdev_mq(). However, the pointer to this structure is stored in oct->props[i].netdev only after the calls to netif_set_real_num_rx_queues() and netif_set_real_num_tx_queues().  If either of these functions fails, setup_nic_devices() returns an error without freeing the allocated netdev. Since oct->props[i].netdev is still NULL at this point, the cleanup function liquidio_destroy_nic_device() will fail to find and free the netdev, resulting in a memory leak.  Fix this by initializing oct->props[i].netdev before calling the queue setup functions. This ensures that the netdev is properly accessible for cleanup in case of errors.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23206",
                                "url": "https://ubuntu.com/security/CVE-2026-23206",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dpaa2-switch: prevent ZERO_SIZE_PTR dereference when num_ifs is zero  The driver allocates arrays for ports, FDBs, and filter blocks using kcalloc() with ethsw->sw_attr.num_ifs as the element count. When the device reports zero interfaces (either due to hardware configuration or firmware issues), kcalloc(0, ...) returns ZERO_SIZE_PTR (0x10) instead of NULL.  Later in dpaa2_switch_probe(), the NAPI initialization unconditionally accesses ethsw->ports[0]->netdev, which attempts to dereference ZERO_SIZE_PTR (address 0x10), resulting in a kernel panic.  Add a check to ensure num_ifs is greater than zero after retrieving device attributes. This prevents the zero-sized allocations and subsequent invalid pointer dereference.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23204",
                                "url": "https://ubuntu.com/security/CVE-2026-23204",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: cls_u32: use skb_header_pointer_careful()  skb_header_pointer() does not fully validate negative @offset values.  Use skb_header_pointer_careful() instead.  GangMin Kim provided a report and a repro fooling u32_classify():  BUG: KASAN: slab-out-of-bounds in u32_classify+0x1180/0x11b0 net/sched/cls_u32.c:221",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23205",
                                "url": "https://ubuntu.com/security/CVE-2026-23205",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/client: fix memory leak in smb2_open_file()  Reproducer:    1. server: directories are exported read-only   2. client: mount -t cifs //${server_ip}/export /mnt   3. client: dd if=/dev/zero of=/mnt/file bs=512 count=1000 oflag=direct   4. client: umount /mnt   5. client: sleep 1   6. client: modprobe -r cifs  The error message is as follows:   =============================================================================   BUG cifs_small_rq (Not tainted): Objects remaining on __kmem_cache_shutdown()  -----------------------------------------------------------------------------    Object 0x00000000d47521be @offset=14336   ...   WARNING: mm/slub.c:1251 at __kmem_cache_shutdown+0x34e/0x440, CPU#0: modprobe/1577   ...   Call Trace:    <TASK>    kmem_cache_destroy+0x94/0x190    cifs_destroy_request_bufs+0x3e/0x50 [cifs]    cleanup_module+0x4e/0x540 [cifs]    __se_sys_delete_module+0x278/0x400    __x64_sys_delete_module+0x5f/0x70    x64_sys_call+0x2299/0x2ff0    do_syscall_64+0x89/0x350    entry_SYSCALL_64_after_hwframe+0x76/0x7e   ...   kmem_cache_destroy cifs_small_rq: Slab cache still has objects when called from cifs_destroy_request_bufs+0x3e/0x50 [cifs]   WARNING: mm/slab_common.c:532 at kmem_cache_destroy+0x16b/0x190, CPU#0: modprobe/1577",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23176",
                                "url": "https://ubuntu.com/security/CVE-2026-23176",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: toshiba_haps: Fix memory leaks in add/remove routines  toshiba_haps_add() leaks the haps object allocated by it if it returns an error after allocating that object successfully.  toshiba_haps_remove() does not free the object pointed to by toshiba_haps before clearing that pointer, so it becomes unreachable allocated memory.  Address these memory leaks by using devm_kzalloc() for allocating the memory in question.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23216",
                                "url": "https://ubuntu.com/security/CVE-2026-23216",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_conn_usage_count()  In iscsit_dec_conn_usage_count(), the function calls complete() while holding the conn->conn_usage_lock. As soon as complete() is invoked, the waiter (such as iscsit_close_connection()) may wake up and proceed to free the iscsit_conn structure.  If the waiter frees the memory before the current thread reaches spin_unlock_bh(), it results in a KASAN slab-use-after-free as the function attempts to release a lock within the already-freed connection structure.  Fix this by releasing the spinlock before calling complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23193",
                                "url": "https://ubuntu.com/security/CVE-2026-23193",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: iscsi: Fix use-after-free in iscsit_dec_session_usage_count()  In iscsit_dec_session_usage_count(), the function calls complete() while holding the sess->session_usage_lock. Similar to the connection usage count logic, the waiter signaled by complete() (e.g., in the session release path) may wake up and free the iscsit_session structure immediately.  This creates a race condition where the current thread may attempt to execute spin_unlock_bh() on a session structure that has already been deallocated, resulting in a KASAN slab-use-after-free.  To resolve this, release the session_usage_lock before calling complete() to ensure all dereferences of the sess pointer are finished before the waiter is allowed to proceed with deallocation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23260",
                                "url": "https://ubuntu.com/security/CVE-2026-23260",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: maple: free entry on mas_store_gfp() failure  regcache_maple_write() allocates a new block ('entry') to merge adjacent ranges and then stores it with mas_store_gfp(). When mas_store_gfp() fails, the new 'entry' remains allocated and is never freed, leaking memory.  Free 'entry' on the failure path; on success continue freeing the replaced neighbor blocks ('lower', 'upper').",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23179",
                                "url": "https://ubuntu.com/security/CVE-2026-23179",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: fixup hang in nvmet_tcp_listen_data_ready()  When the socket is closed while in TCP_LISTEN a callback is run to flush all outstanding packets, which in turns calls nvmet_tcp_listen_data_ready() with the sk_callback_lock held. So we need to check if we are in TCP_LISTEN before attempting to get the sk_callback_lock() to avoid a deadlock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23261",
                                "url": "https://ubuntu.com/security/CVE-2026-23261",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: release admin tagset if init fails  nvme_fabrics creates an NVMe/FC controller in following path:      nvmf_dev_write()       -> nvmf_create_ctrl()         -> nvme_fc_create_ctrl()           -> nvme_fc_init_ctrl()  nvme_fc_init_ctrl() allocates the admin blk-mq resources right after nvme_add_ctrl() succeeds.  If any of the subsequent steps fail (changing the controller state, scheduling connect work, etc.), we jump to the fail_ctrl path, which tears down the controller references but never frees the admin queue/tag set.  The leaked blk-mq allocations match the kmemleak report seen during blktests nvme/fc.  Check ctrl->ctrl.admin_tagset in the fail_ctrl path and call nvme_remove_admin_tag_set() when it is set so that all admin queue allocations are reclaimed whenever controller setup aborts.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23178",
                                "url": "https://ubuntu.com/security/CVE-2026-23178",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()  `i2c_hid_xfer` is used to read `recv_len + sizeof(__le16)` bytes of data into `ihid->rawbuf`.  The former can come from the userspace in the hidraw driver and is only bounded by HID_MAX_BUFFER_SIZE(16384) by default (unless we also set `max_buffer_size` field of `struct hid_ll_driver` which we do not).  The latter has size determined at runtime by the maximum size of different report types you could receive on any particular device and can be a much smaller value.  Fix this by truncating `recv_len` to `ihid->bufsize - sizeof(__le16)`.  The impact is low since access to hidraw devices requires root.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71268",
                                "url": "https://ubuntu.com/security/CVE-2025-71268",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix reservation leak in some error paths when inserting inline extent  If we fail to allocate a path or join a transaction, we return from __cow_file_range_inline() without freeing the reserved qgroup data, resulting in a leak. Fix this by ensuring we call btrfs_qgroup_free_data() in such cases.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71270",
                                "url": "https://ubuntu.com/security/CVE-2025-71270",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: Enable exception fixup for specific ADE subcode  This patch allows the LoongArch BPF JIT to handle recoverable memory access errors generated by BPF_PROBE_MEM* instructions.  When a BPF program performs memory access operations, the instructions it executes may trigger ADEM exceptions. The kernel’s built-in BPF exception table mechanism (EX_TYPE_BPF) will generate corresponding exception fixup entries in the JIT compilation phase; however, the architecture-specific trap handling function needs to proactively call the common fixup routine to achieve exception recovery.  do_ade(): fix EX_TYPE_BPF memory access exceptions for BPF programs, ensure safe execution.  Relevant test cases: illegal address access tests in module_attach and subprogs_extable of selftests/bpf.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71220",
                                "url": "https://ubuntu.com/security/CVE-2025-71220",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb/server: call ksmbd_session_rpc_close() on error path in create_smb2_pipe()  When ksmbd_iov_pin_rsp() fails, we should call ksmbd_session_rpc_close().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71222",
                                "url": "https://ubuntu.com/security/CVE-2025-71222",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: wlcore: ensure skb headroom before skb_push  This avoids occasional skb_under_panic Oops from wl1271_tx_work. In this case, headroom is less than needed (typically 110 - 94 = 16 bytes).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71224",
                                "url": "https://ubuntu.com/security/CVE-2025-71224",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: ocb: skip rx_no_sta when interface is not joined  ieee80211_ocb_rx_no_sta() assumes a valid channel context, which is only present after JOIN_OCB.  RX may run before JOIN_OCB is executed, in which case the OCB interface is not operational. Skip RX peer handling when the interface is not joined to avoid warnings in the RX path.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23262",
                                "url": "https://ubuntu.com/security/CVE-2026-23262",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gve: Fix stats report corruption on queue count change  The driver and the NIC share a region in memory for stats reporting. The NIC calculates its offset into this region based on the total size of the stats region and the size of the NIC's stats.  When the number of queues is changed, the driver's stats region is resized. If the queue count is increased, the NIC can write past the end of the allocated stats region, causing memory corruption. If the queue count is decreased, there is a gap between the driver and NIC stats, leading to incorrect stats reporting.  This change fixes the issue by allocating stats region with maximum size, and the offset calculation for NIC stats is changed to match with the calculation of the NIC.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38201",
                                "url": "https://ubuntu.com/security/CVE-2025-38201",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX  Otherwise, it is possible to hit WARN_ON_ONCE in __kvmalloc_node_noprof() when resizing hashtable because __GFP_NOWARN is unset.  Similar to:    b541ba7d1f5a (\"netfilter: conntrack: clamp maximum hashtable size to INT_MAX\")",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-07-04 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23198",
                                "url": "https://ubuntu.com/security/CVE-2026-23198",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Don't clobber irqfd routing type when deassigning irqfd  When deassigning a KVM_IRQFD, don't clobber the irqfd's copy of the IRQ's routing entry as doing so breaks kvm_arch_irq_bypass_del_producer() on x86 and arm64, which explicitly look for KVM_IRQ_ROUTING_MSI.  Instead, to handle a concurrent routing update, verify that the irqfd is still active before consuming the routing information.  As evidenced by the x86 and arm64 bugs, and another bug in kvm_arch_update_irqfd_routing() (see below), clobbering the entry type without notifying arch code is surprising and error prone.  As a bonus, checking that the irqfd is active provides a convenient location for documenting _why_ KVM must not consume the routing entry for an irqfd that is in the process of being deassigned: once the irqfd is deleted from the list (which happens *before* the eventfd is detached), it will no longer receive updates via kvm_irq_routing_update(), and so KVM could deliver an event using stale routing information (relative to KVM_SET_GSI_ROUTING returning to userspace).  As an even better bonus, explicitly checking for the irqfd being active fixes a similar bug to the one the clobbering is trying to prevent: if an irqfd is deactivated, and then its routing is changed, kvm_irq_routing_update() won't invoke kvm_arch_update_irqfd_routing() (because the irqfd isn't in the list).  And so if the irqfd is in bypass mode, IRQs will continue to be posted using the old routing information.  As for kvm_arch_irq_bypass_del_producer(), clobbering the routing type results in KVM incorrectly keeping the IRQ in bypass mode, which is especially problematic on AMD as KVM tracks IRQs that are being posted to a vCPU in a list whose lifetime is tied to the irqfd.  Without the help of KASAN to detect use-after-free, the most common sympton on AMD is a NULL pointer deref in amd_iommu_update_ga() due to the memory for irqfd structure being re-allocated and zeroed, resulting in irqfd->irq_bypass_data being NULL when read by avic_update_iommu_vcpu_affinity():    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 40cf2b9067 P4D 40cf2b9067 PUD 408362a067 PMD 0   Oops: Oops: 0000 [#1] SMP   CPU: 6 UID: 0 PID: 40383 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--5dddc257e6b2-irqfd #31 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:amd_iommu_update_ga+0x19/0xe0   Call Trace:    <TASK>    avic_update_iommu_vcpu_affinity+0x3d/0x90 [kvm_amd]    __avic_vcpu_load+0xf4/0x130 [kvm_amd]    kvm_arch_vcpu_load+0x89/0x210 [kvm]    vcpu_load+0x30/0x40 [kvm]    kvm_arch_vcpu_ioctl_run+0x45/0x620 [kvm]    kvm_vcpu_ioctl+0x571/0x6a0 [kvm]    __se_sys_ioctl+0x6d/0xb0    do_syscall_64+0x6f/0x9d0    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x46893b     </TASK>   ---[ end trace 0000000000000000 ]---  If AVIC is inhibited when the irfd is deassigned, the bug will manifest as list corruption, e.g. on the next irqfd assignment.    list_add corruption. next->prev should be prev (ffff8d474d5cd588),                        but was 0000000000000000. (next=ffff8d8658f86530).   ------------[ cut here ]------------   kernel BUG at lib/list_debug.c:31!   Oops: invalid opcode: 0000 [#1] SMP   CPU: 128 UID: 0 PID: 80818 Comm: vfio_irq_test   Tainted: G     U  W  O        6.19.0-smp--f19dc4d680ba-irqfd #28 NONE   Tainted: [U]=USER, [W]=WARN, [O]=OOT_MODULE   Hardware name: Google, Inc. Arcadia_IT_80/Arcadia_IT_80, BIOS 34.78.2-0 09/05/2025   RIP: 0010:__list_add_valid_or_report+0x97/0xc0   Call Trace:    <TASK>    avic_pi_update_irte+0x28e/0x2b0 [kvm_amd]    kvm_pi_update_irte+0xbf/0x190 [kvm]    kvm_arch_irq_bypass_add_producer+0x72/0x90 [kvm]    irq_bypass_register_consumer+0xcd/0x170 [irqbypa ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23264",
                                "url": "https://ubuntu.com/security/CVE-2026-23264",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Revert \"drm/amd: Check if ASPM is enabled from PCIe subsystem\"  This reverts commit 7294863a6f01248d72b61d38478978d638641bee.  This commit was erroneously applied again after commit 0ab5d711ec74 (\"drm/amd: Refactor `amdgpu_aspm` to be evaluated per device\") removed it, leading to very hard to debug crashes, when used with a system with two AMD GPUs of which only one supports ASPM.  (cherry picked from commit 97a9689300eb2b393ba5efc17c8e5db835917080)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-18 18:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23187",
                                "url": "https://ubuntu.com/security/CVE-2026-23187",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: fix out-of-range access of bc->domains  Fix out-of-range access of bc->domains in imx8m_blk_ctrl_remove().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23148",
                                "url": "https://ubuntu.com/security/CVE-2026-23148",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference  There is a race condition in nvmet_bio_done() that can cause a NULL pointer dereference in blk_cgroup_bio_start():  1. nvmet_bio_done() is called when a bio completes 2. nvmet_req_complete() is called, which invokes req->ops->queue_response(req) 3. The queue_response callback can re-queue and re-submit the same request 4. The re-submission reuses the same inline_bio from nvmet_req 5. Meanwhile, nvmet_req_bio_put() (called after nvmet_req_complete)    invokes bio_uninit() for inline_bio, which sets bio->bi_blkg to NULL 6. The re-submitted bio enters submit_bio_noacct_nocheck() 7. blk_cgroup_bio_start() dereferences bio->bi_blkg, causing a crash:    BUG: kernel NULL pointer dereference, address: 0000000000000028   #PF: supervisor read access in kernel mode   RIP: 0010:blk_cgroup_bio_start+0x10/0xd0   Call Trace:    submit_bio_noacct_nocheck+0x44/0x250    nvmet_bdev_execute_rw+0x254/0x370 [nvmet]    process_one_work+0x193/0x3c0    worker_thread+0x281/0x3a0  Fix this by reordering nvmet_bio_done() to call nvmet_req_bio_put() BEFORE nvmet_req_complete(). This ensures the bio is cleaned up before the request can be re-submitted, preventing the race condition.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23166",
                                "url": "https://ubuntu.com/security/CVE-2026-23166",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ice: Fix NULL pointer dereference in ice_vsi_set_napi_queues  Add NULL pointer checks in ice_vsi_set_napi_queues() to prevent crashes during resume from suspend when rings[q_idx]->q_vector is NULL.  Tested adaptor: 60:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller E810-XXV for SFP [8086:159b] (rev 02)         Subsystem: Intel Corporation Ethernet Network Adapter E810-XXV-2 [8086:4003]  SR-IOV state: both disabled and enabled can reproduce this issue.  kernel version: v6.18  Reproduce steps: Boot up and execute suspend like systemctl suspend or rtcwake.  Log: <1>[  231.443607] BUG: kernel NULL pointer dereference, address: 0000000000000040 <1>[  231.444052] #PF: supervisor read access in kernel mode <1>[  231.444484] #PF: error_code(0x0000) - not-present page <6>[  231.444913] PGD 0 P4D 0 <4>[  231.445342] Oops: Oops: 0000 [#1] SMP NOPTI <4>[  231.446635] RIP: 0010:netif_queue_set_napi+0xa/0x170 <4>[  231.447067] Code: 31 f6 31 ff c3 cc cc cc cc 0f 1f 80 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 48 85 c9 74 0b <48> 83 79 30 00 0f 84 39 01 00 00 55 41 89 d1 49 89 f8 89 f2 48 89 <4>[  231.447513] RSP: 0018:ffffcc780fc078c0 EFLAGS: 00010202 <4>[  231.447961] RAX: ffff8b848ca30400 RBX: ffff8b848caf2028 RCX: 0000000000000010 <4>[  231.448443] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8b848dbd4000 <4>[  231.448896] RBP: ffffcc780fc078e8 R08: 0000000000000000 R09: 0000000000000000 <4>[  231.449345] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001 <4>[  231.449817] R13: ffff8b848dbd4000 R14: ffff8b84833390c8 R15: 0000000000000000 <4>[  231.450265] FS:  00007c7b29e9d740(0000) GS:ffff8b8c068e2000(0000) knlGS:0000000000000000 <4>[  231.450715] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 <4>[  231.451179] CR2: 0000000000000040 CR3: 000000030626f004 CR4: 0000000000f72ef0 <4>[  231.451629] PKRU: 55555554 <4>[  231.452076] Call Trace: <4>[  231.452549]  <TASK> <4>[  231.452996]  ? ice_vsi_set_napi_queues+0x4d/0x110 [ice] <4>[  231.453482]  ice_resume+0xfd/0x220 [ice] <4>[  231.453977]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.454425]  pci_pm_resume+0x8c/0x140 <4>[  231.454872]  ? __pfx_pci_pm_resume+0x10/0x10 <4>[  231.455347]  dpm_run_callback+0x5f/0x160 <4>[  231.455796]  ? dpm_wait_for_superior+0x107/0x170 <4>[  231.456244]  device_resume+0x177/0x270 <4>[  231.456708]  dpm_resume+0x209/0x2f0 <4>[  231.457151]  dpm_resume_end+0x15/0x30 <4>[  231.457596]  suspend_devices_and_enter+0x1da/0x2b0 <4>[  231.458054]  enter_state+0x10e/0x570  Add defensive checks for both the ring pointer and its q_vector before dereferencing, allowing the system to resume successfully even when q_vectors are unmapped.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23151",
                                "url": "https://ubuntu.com/security/CVE-2026-23151",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: MGMT: Fix memory leak in set_ssp_complete  Fix memory leak in set_ssp_complete() where mgmt_pending_cmd structures are not freed after being removed from the pending list.  Commit 302a1f674c00 (\"Bluetooth: MGMT: Fix possible UAFs\") replaced mgmt_pending_foreach() calls with individual command handling but missed adding mgmt_pending_free() calls in both error and success paths of set_ssp_complete(). Other completion functions like set_le_complete() were fixed correctly in the same commit.  This causes a memory leak of the mgmt_pending_cmd structure and its associated parameter data for each SSP command that completes.  Add the missing mgmt_pending_free(cmd) calls in both code paths to fix the memory leak. Also fix the same issue in set_advertising_complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23163",
                                "url": "https://ubuntu.com/security/CVE-2026-23163",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: fix NULL pointer dereference in amdgpu_gmc_filter_faults_remove  On APUs such as Raven and Renoir (GC 9.1.0, 9.2.2, 9.3.0), the ih1 and ih2 interrupt ring buffers are not initialized. This is by design, as these secondary IH rings are only available on discrete GPUs. See vega10_ih_sw_init() which explicitly skips ih1/ih2 initialization when AMD_IS_APU is set.  However, amdgpu_gmc_filter_faults_remove() unconditionally uses ih1 to get the timestamp of the last interrupt entry. When retry faults are enabled on APUs (noretry=0), this function is called from the SVM page fault recovery path, resulting in a NULL pointer dereference when amdgpu_ih_decode_iv_ts_helper() attempts to access ih->ring[].  The crash manifests as:    BUG: kernel NULL pointer dereference, address: 0000000000000004   RIP: 0010:amdgpu_ih_decode_iv_ts_helper+0x22/0x40 [amdgpu]   Call Trace:    amdgpu_gmc_filter_faults_remove+0x60/0x130 [amdgpu]    svm_range_restore_pages+0xae5/0x11c0 [amdgpu]    amdgpu_vm_handle_fault+0xc8/0x340 [amdgpu]    gmc_v9_0_process_interrupt+0x191/0x220 [amdgpu]    amdgpu_irq_dispatch+0xed/0x2c0 [amdgpu]    amdgpu_ih_process+0x84/0x100 [amdgpu]  This issue was exposed by commit 1446226d32a4 (\"drm/amdgpu: Remove GC HW IP 9.3.0 from noretry=1\") which changed the default for Renoir APU from noretry=1 to noretry=0, enabling retry fault handling and thus exercising the buggy code path.  Fix this by adding a check for ih1.ring_size before attempting to use it. Also restore the soft_ih support from commit dd299441654f (\"drm/amdgpu: Rework retry fault removal\").  This is needed if the hardware doesn't support secondary HW IH rings.  v2: additional updates (Alex)  (cherry picked from commit 6ce8d536c80aa1f059e82184f0d1994436b1d526)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23159",
                                "url": "https://ubuntu.com/security/CVE-2026-23159",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf: sched: Fix perf crash with new is_user_task() helper  In order to do a user space stacktrace the current task needs to be a user task that has executed in user space. It use to be possible to test if a task is a user task or not by simply checking the task_struct mm field. If it was non NULL, it was a user task and if not it was a kernel task.  But things have changed over time, and some kernel tasks now have their own mm field.  An idea was made to instead test PF_KTHREAD and two functions were used to wrap this check in case it became more complex to test if a task was a user task or not[1]. But this was rejected and the C code simply checked the PF_KTHREAD directly.  It was later found that not all kernel threads set PF_KTHREAD. The io-uring helpers instead set PF_USER_WORKER and this needed to be added as well.  But checking the flags is still not enough. There's a very small window when a task exits that it frees its mm field and it is set back to NULL. If perf were to trigger at this moment, the flags test would say its a user space task but when perf would read the mm field it would crash with at NULL pointer dereference.  Now there are flags that can be used to test if a task is exiting, but they are set in areas that perf may still want to profile the user space task (to see where it exited). The only real test is to check both the flags and the mm field.  Instead of making this modification in every location, create a new is_user_task() helper function that does all the tests needed to know if it is safe to read the user space memory or not.  [1] https://lore.kernel.org/all/20250425204120.639530125@goodmis.org/",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-58096",
                                "url": "https://ubuntu.com/security/CVE-2024-58096",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode  ath11k_hal_srng_* should be used with srng->lock to protect srng data.  For ath11k_dp_rx_mon_dest_process() and ath11k_dp_full_mon_process_rx(), they use ath11k_hal_srng_* for many times but never call srng->lock.  So when running (full) monitor mode, warning will occur: RIP: 0010:ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k] Call Trace:  ? ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k]  ath11k_dp_rx_process_mon_status+0xc45/0x1190 [ath11k]  ? idr_alloc_u32+0x97/0xd0  ath11k_dp_rx_process_mon_rings+0x32a/0x550 [ath11k]  ath11k_dp_service_srng+0x289/0x5a0 [ath11k]  ath11k_pcic_ext_grp_napi_poll+0x30/0xd0 [ath11k]  __napi_poll+0x30/0x1f0  net_rx_action+0x198/0x320  __do_softirq+0xdd/0x319  So add srng->lock for them to avoid such warnings.  Inorder to fetch the srng->lock, should change srng's definition from 'void' to 'struct hal_srng'. And initialize them elsewhere to prevent one line of code from being too long. This is consistent with other ring process functions, such as ath11k_dp_process_rx().  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40039",
                                "url": "https://ubuntu.com/security/CVE-2025-40039",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix race condition in RPC handle list access  The 'sess->rpc_handle_list' XArray manages RPC handles within a ksmbd session. Access to this list is intended to be protected by 'sess->rpc_lock' (an rw_semaphore). However, the locking implementation was flawed, leading to potential race conditions.  In ksmbd_session_rpc_open(), the code incorrectly acquired only a read lock before calling xa_store() and xa_erase(). Since these operations modify the XArray structure, a write lock is required to ensure exclusive access and prevent data corruption from concurrent modifications.  Furthermore, ksmbd_session_rpc_method() accessed the list using xa_load() without holding any lock at all. This could lead to reading inconsistent data or a potential use-after-free if an entry is concurrently removed and the pointer is dereferenced.  Fix these issues by: 1. Using down_write() and up_write() in ksmbd_session_rpc_open()    to ensure exclusive access during XArray modification, and ensuring    the lock is correctly released on error paths. 2. Adding down_read() and up_read() in ksmbd_session_rpc_method()    to safely protect the lookup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-28 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23093",
                                "url": "https://ubuntu.com/security/CVE-2026-23093",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: smbd: fix dma_unmap_sg() nents  The dma_unmap_sg() functions should be called with the same nents as the dma_map_sg(), not the value the map function returned.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23102",
                                "url": "https://ubuntu.com/security/CVE-2026-23102",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Fix restoration of SVE context  When SME is supported, Restoring SVE signal context can go wrong in a few ways, including placing the task into an invalid state where the kernel may read from out-of-bounds memory (and may potentially take a fatal fault) and/or may kill the task with a SIGKILL.  (1) Restoring a context with SVE_SIG_FLAG_SM set can place the task into     an invalid state where SVCR.SM is set (and sve_state is non-NULL)     but TIF_SME is clear, consequently resuting in out-of-bounds memory     reads and/or killing the task with SIGKILL.      This can only occur in unusual (but legitimate) cases where the SVE     signal context has either been modified by userspace or was saved in     the context of another task (e.g. as with CRIU), as otherwise the     presence of an SVE signal context with SVE_SIG_FLAG_SM implies that     TIF_SME is already set.      While in this state, task_fpsimd_load() will NOT configure SMCR_ELx     (leaving some arbitrary value configured in hardware) before     restoring SVCR and attempting to restore the streaming mode SVE     registers from memory via sve_load_state(). As the value of     SMCR_ELx.LEN may be larger than the task's streaming SVE vector     length, this may read memory outside of the task's allocated     sve_state, reading unrelated data and/or triggering a fault.      While this can result in secrets being loaded into streaming SVE     registers, these values are never exposed. As TIF_SME is clear,     fpsimd_bind_task_to_cpu() will configure CPACR_ELx.SMEN to trap EL0     accesses to streaming mode SVE registers, so these cannot be     accessed directly at EL0. As fpsimd_save_user_state() verifies the     live vector length before saving (S)SVE state to memory, no secret     values can be saved back to memory (and hence cannot be observed via     ptrace, signals, etc).      When the live vector length doesn't match the expected vector length     for the task, fpsimd_save_user_state() will send a fatal SIGKILL     signal to the task. Hence the task may be killed after executing     userspace for some period of time.  (2) Restoring a context with SVE_SIG_FLAG_SM clear does not clear the     task's SVCR.SM. If SVCR.SM was set prior to restoring the context,     then the task will be left in streaming mode unexpectedly, and some     register state will be combined inconsistently, though the task will     be left in legitimate state from the kernel's PoV.      This can only occur in unusual (but legitimate) cases where ptrace     has been used to set SVCR.SM after entry to the sigreturn syscall,     as syscall entry clears SVCR.SM.      In these cases, the the provided SVE register data will be loaded     into the task's sve_state using the non-streaming SVE vector length     and the FPSIMD registers will be merged into this using the     streaming SVE vector length.  Fix (1) by setting TIF_SME when setting SVCR.SM. This also requires ensuring that the task's sme_state has been allocated, but as this could contain live ZA state, it should not be zeroed. Fix (2) by clearing SVCR.SM when restoring a SVE signal context with SVE_SIG_FLAG_SM clear.  For consistency, I've pulled the manipulation of SVCR, TIF_SVE, TIF_SME, and fp_type earlier, immediately after the allocation of sve_state/sme_state, before the restore of the actual register state. This makes it easier to ensure that these are always modified consistently, even if a fault is taken while reading the register data from the signal context. I do not expect any software to depend on the exact state restored when a fault is taken while reading the context.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23170",
                                "url": "https://ubuntu.com/security/CVE-2026-23170",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/imx/tve: fix probe device leak  Make sure to drop the reference taken to the DDC device during probe on probe failure (e.g. probe deferral) and on driver unbind.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23168",
                                "url": "https://ubuntu.com/security/CVE-2026-23168",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  flex_proportions: make fprop_new_period() hardirq safe  Bernd has reported a lockdep splat from flexible proportions code that is essentially complaining about the following race:  <timer fires> run_timer_softirq - we are in softirq context   call_timer_fn     writeout_period       fprop_new_period         write_seqcount_begin(&p->sequence);          <hardirq is raised>         ...         blk_mq_end_request() \t  blk_update_request() \t    ext4_end_bio() \t      folio_end_writeback() \t\t__wb_writeout_add() \t\t  __fprop_add_percpu_max() \t\t    if (unlikely(max_frac < FPROP_FRAC_BASE)) { \t\t      fprop_fraction_percpu() \t\t\tseq = read_seqcount_begin(&p->sequence); \t\t\t  - sees odd sequence so loops indefinitely  Note that a deadlock like this is only possible if the bdi has configured maximum fraction of writeout throughput which is very rare in general but frequent for example for FUSE bdis.  To fix this problem we have to make sure write section of the sequence counter is irqsafe.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23156",
                                "url": "https://ubuntu.com/security/CVE-2026-23156",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  efivarfs: fix error propagation in efivar_entry_get()  efivar_entry_get() always returns success even if the underlying __efivar_entry_get() fails, masking errors.  This may result in uninitialized heap memory being copied to userspace in the efivarfs_file_read() path.  Fix it by returning the error from __efivar_entry_get().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23167",
                                "url": "https://ubuntu.com/security/CVE-2026-23167",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: nci: Fix race between rfkill and nci_unregister_device().  syzbot reported the splat below [0] without a repro.  It indicates that struct nci_dev.cmd_wq had been destroyed before nci_close_device() was called via rfkill.  nci_dev.cmd_wq is only destroyed in nci_unregister_device(), which (I think) was called from virtual_ncidev_close() when syzbot close()d an fd of virtual_ncidev.  The problem is that nci_unregister_device() destroys nci_dev.cmd_wq first and then calls nfc_unregister_device(), which removes the device from rfkill by rfkill_unregister().  So, the device is still visible via rfkill even after nci_dev.cmd_wq is destroyed.  Let's unregister the device from rfkill first in nci_unregister_device().  Note that we cannot call nfc_unregister_device() before nci_close_device() because    1) nfc_unregister_device() calls device_del() which frees      all memory allocated by devm_kzalloc() and linked to      ndev->conn_info_list    2) nci_rx_work() could try to queue nci_conn_info to      ndev->conn_info_list which could be leaked  Thus, nfc_unregister_device() is split into two functions so we can remove rfkill interfaces only before nci_close_device().  [0]: DEBUG_LOCKS_WARN_ON(1) WARNING: kernel/locking/lockdep.c:238 at hlock_class kernel/locking/lockdep.c:238 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at check_wait_context kernel/locking/lockdep.c:4854 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at __lock_acquire+0x39d/0x2cf0 kernel/locking/lockdep.c:5187, CPU#0: syz.0.8675/6349 Modules linked in: CPU: 0 UID: 0 PID: 6349 Comm: syz.0.8675 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/13/2026 RIP: 0010:hlock_class kernel/locking/lockdep.c:238 [inline] RIP: 0010:check_wait_context kernel/locking/lockdep.c:4854 [inline] RIP: 0010:__lock_acquire+0x3a4/0x2cf0 kernel/locking/lockdep.c:5187 Code: 18 00 4c 8b 74 24 08 75 27 90 e8 17 f2 fc 02 85 c0 74 1c 83 3d 50 e0 4e 0e 00 75 13 48 8d 3d 43 f7 51 0e 48 c7 c6 8b 3a de 8d <67> 48 0f b9 3a 90 31 c0 0f b6 98 c4 00 00 00 41 8b 45 20 25 ff 1f RSP: 0018:ffffc9000c767680 EFLAGS: 00010046 RAX: 0000000000000001 RBX: 0000000000040000 RCX: 0000000000080000 RDX: ffffc90013080000 RSI: ffffffff8dde3a8b RDI: ffffffff8ff24ca0 RBP: 0000000000000003 R08: ffffffff8fef35a3 R09: 1ffffffff1fde6b4 R10: dffffc0000000000 R11: fffffbfff1fde6b5 R12: 00000000000012a2 R13: ffff888030338ba8 R14: ffff888030338000 R15: ffff888030338b30 FS:  00007fa5995f66c0(0000) GS:ffff8881256f8000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f7e72f842d0 CR3: 00000000485a0000 CR4: 00000000003526f0 Call Trace:  <TASK>  lock_acquire+0x106/0x330 kernel/locking/lockdep.c:5868  touch_wq_lockdep_map+0xcb/0x180 kernel/workqueue.c:3940  __flush_workqueue+0x14b/0x14f0 kernel/workqueue.c:3982  nci_close_device+0x302/0x630 net/nfc/nci/core.c:567  nci_dev_down+0x3b/0x50 net/nfc/nci/core.c:639  nfc_dev_down+0x152/0x290 net/nfc/core.c:161  nfc_rfkill_set_block+0x2d/0x100 net/nfc/core.c:179  rfkill_set_block+0x1d2/0x440 net/rfkill/core.c:346  rfkill_fop_write+0x461/0x5a0 net/rfkill/core.c:1301  vfs_write+0x29a/0xb90 fs/read_write.c:684  ksys_write+0x150/0x270 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xe2/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa59b39acb9 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fa5995f6028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fa59b615fa0 RCX: 00007fa59b39acb9 RDX: 0000000000000008 RSI: 0000200000000080 RDI: 0000000000000007 RBP: 00007fa59b408bf7 R08: ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23173",
                                "url": "https://ubuntu.com/security/CVE-2026-23173",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: TC, delete flows only for existing peers  When deleting TC steering flows, iterate only over actual devcom peers instead of assuming all possible ports exist. This avoids touching non-existent peers and ensures cleanup is limited to devices the driver is currently connected to.   BUG: kernel NULL pointer dereference, address: 0000000000000008  #PF: supervisor write access in kernel mode  #PF: error_code(0x0002) - not-present page  PGD 133c8a067 P4D 0  Oops: Oops: 0002 [#1] SMP  CPU: 19 UID: 0 PID: 2169 Comm: tc Not tainted 6.18.0+ #156 NONE  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:mlx5e_tc_del_fdb_peers_flow+0xbe/0x200 [mlx5_core]  Code: 00 00 a8 08 74 a8 49 8b 46 18 f6 c4 02 74 9f 4c 8d bf a0 12 00 00 4c 89 ff e8 0e e7 96 e1 49 8b 44 24 08 49 8b 0c 24 4c 89 ff <48> 89 41 08 48 89 08 49 89 2c 24 49 89 5c 24 08 e8 7d ce 96 e1 49  RSP: 0018:ff11000143867528 EFLAGS: 00010246  RAX: 0000000000000000 RBX: dead000000000122 RCX: 0000000000000000  RDX: ff11000143691580 RSI: ff110001026e5000 RDI: ff11000106f3d2a0  RBP: dead000000000100 R08: 00000000000003fd R09: 0000000000000002  R10: ff11000101c75690 R11: ff1100085faea178 R12: ff11000115f0ae78  R13: 0000000000000000 R14: ff11000115f0a800 R15: ff11000106f3d2a0  FS:  00007f35236bf740(0000) GS:ff110008dc809000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000008 CR3: 0000000157a01001 CR4: 0000000000373eb0  Call Trace:   <TASK>   mlx5e_tc_del_flow+0x46/0x270 [mlx5_core]   mlx5e_flow_put+0x25/0x50 [mlx5_core]   mlx5e_delete_flower+0x2a6/0x3e0 [mlx5_core]   tc_setup_cb_reoffload+0x20/0x80   fl_reoffload+0x26f/0x2f0 [cls_flower]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   ? mlx5e_tc_reoffload_flows_work+0xc0/0xc0 [mlx5_core]   tcf_block_playback_offloads+0x9e/0x1c0   tcf_block_unbind+0x7b/0xd0   tcf_block_setup+0x186/0x1d0   tcf_block_offload_cmd.isra.0+0xef/0x130   tcf_block_offload_unbind+0x43/0x70   __tcf_block_put+0x85/0x160   ingress_destroy+0x32/0x110 [sch_ingress]   __qdisc_destroy+0x44/0x100   qdisc_graft+0x22b/0x610   tc_get_qdisc+0x183/0x4d0   rtnetlink_rcv_msg+0x2d7/0x3d0   ? rtnl_calcit.isra.0+0x100/0x100   netlink_rcv_skb+0x53/0x100   netlink_unicast+0x249/0x320   ? __alloc_skb+0x102/0x1f0   netlink_sendmsg+0x1e3/0x420   __sock_sendmsg+0x38/0x60   ____sys_sendmsg+0x1ef/0x230   ? copy_msghdr_from_user+0x6c/0xa0   ___sys_sendmsg+0x7f/0xc0   ? ___sys_recvmsg+0x8a/0xc0   ? __sys_sendto+0x119/0x180   __sys_sendmsg+0x61/0xb0   do_syscall_64+0x55/0x640   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7f35238bb764  Code: 15 b9 86 0c 00 f7 d8 64 89 02 b8 ff ff ff ff eb bf 0f 1f 44 00 00 f3 0f 1e fa 80 3d e5 08 0d 00 00 74 13 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 4c c3 0f 1f 00 55 48 89 e5 48 83 ec 20 89 55  RSP: 002b:00007ffed4c35638 EFLAGS: 00000202 ORIG_RAX: 000000000000002e  RAX: ffffffffffffffda RBX: 000055a2efcc75e0 RCX: 00007f35238bb764  RDX: 0000000000000000 RSI: 00007ffed4c356a0 RDI: 0000000000000003  RBP: 00007ffed4c35710 R08: 0000000000000010 R09: 00007f3523984b20  R10: 0000000000000004 R11: 0000000000000202 R12: 00007ffed4c35790  R13: 000000006947df8f R14: 000055a2efcc75e0 R15: 00007ffed4c35780",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23150",
                                "url": "https://ubuntu.com/security/CVE-2026-23150",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfc: llcp: Fix memleak in nfc_llcp_send_ui_frame().  syzbot reported various memory leaks related to NFC, struct nfc_llcp_sock, sk_buff, nfc_dev, etc. [0]  The leading log hinted that nfc_llcp_send_ui_frame() failed to allocate skb due to sock_error(sk) being -ENXIO.  ENXIO is set by nfc_llcp_socket_release() when struct nfc_llcp_local is destroyed by local_cleanup().  The problem is that there is no synchronisation between nfc_llcp_send_ui_frame() and local_cleanup(), and skb could be put into local->tx_queue after it was purged in local_cleanup():    CPU1                          CPU2   ----                          ----   nfc_llcp_send_ui_frame()      local_cleanup()   |- do {                       '      |- pdu = nfc_alloc_send_skb(..., &err)      |                          .      |                          |- nfc_llcp_socket_release(local, false, ENXIO);      |                          |- skb_queue_purge(&local->tx_queue);     |      |                          '                                         |      |- skb_queue_tail(&local->tx_queue, pdu);                            |     ...                                                                   |      |- pdu = nfc_alloc_send_skb(..., &err)                               |                                       ^._________________________________.'  local_cleanup() is called for struct nfc_llcp_local only after nfc_llcp_remove_local() unlinks it from llcp_devices.  If we hold local->tx_queue.lock then, we can synchronise the thread and nfc_llcp_send_ui_frame().  Let's do that and check list_empty(&local->list) before queuing skb to local->tx_queue in nfc_llcp_send_ui_frame().  [0]: [   56.074943][ T6096] llcp: nfc_llcp_send_ui_frame: Could not allocate PDU (error=-6) [   64.318868][ T5813] kmemleak: 6 new suspected memory leaks (see /sys/kernel/debug/kmemleak) BUG: memory leak unreferenced object 0xffff8881272f6800 (size 1024):   comm \"syz.0.17\", pid 6096, jiffies 4294942766   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     27 00 03 40 00 00 00 00 00 00 00 00 00 00 00 00  '..@............   backtrace (crc da58d84d):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     __do_kmalloc_node mm/slub.c:5645 [inline]     __kmalloc_noprof+0x3e3/0x6b0 mm/slub.c:5658     kmalloc_noprof include/linux/slab.h:961 [inline]     sk_prot_alloc+0x11a/0x1b0 net/core/sock.c:2239     sk_alloc+0x36/0x360 net/core/sock.c:2295     nfc_llcp_sock_alloc+0x37/0x130 net/nfc/llcp_sock.c:979     llcp_sock_create+0x71/0xd0 net/nfc/llcp_sock.c:1044     nfc_sock_create+0xc9/0xf0 net/nfc/af_nfc.c:31     __sock_create+0x1a9/0x340 net/socket.c:1605     sock_create net/socket.c:1663 [inline]     __sys_socket_create net/socket.c:1700 [inline]     __sys_socket+0xb9/0x1a0 net/socket.c:1747     __do_sys_socket net/socket.c:1761 [inline]     __se_sys_socket net/socket.c:1759 [inline]     __x64_sys_socket+0x1b/0x30 net/socket.c:1759     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  BUG: memory leak unreferenced object 0xffff88810fbd9800 (size 240):   comm \"syz.0.17\", pid 6096, jiffies 4294942850   hex dump (first 32 bytes):     68 f0 ff 08 81 88 ff ff 68 f0 ff 08 81 88 ff ff  h.......h.......     00 00 00 00 00 00 00 00 00 68 2f 27 81 88 ff ff  .........h/'....   backtrace (crc 6cc652b1):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4979 [inline]     slab_alloc_node mm/slub.c:5284 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5336     __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/sk ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23164",
                                "url": "https://ubuntu.com/security/CVE-2026-23164",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  rocker: fix memory leak in rocker_world_port_post_fini()  In rocker_world_port_pre_init(), rocker_port->wpriv is allocated with kzalloc(wops->port_priv_size, GFP_KERNEL). However, in rocker_world_port_post_fini(), the memory is only freed when wops->port_post_fini callback is set:      if (!wops->port_post_fini)         return;     wops->port_post_fini(rocker_port);     kfree(rocker_port->wpriv);  Since rocker_ofdpa_ops does not implement port_post_fini callback (it is NULL), the wpriv memory allocated for each port is never freed when ports are removed. This leads to a memory leak of sizeof(struct ofdpa_port) bytes per port on every device removal.  Fix this by always calling kfree(rocker_port->wpriv) regardless of whether the port_post_fini callback exists.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23172",
                                "url": "https://ubuntu.com/security/CVE-2026-23172",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: wwan: t7xx: fix potential skb->frags overflow in RX path  When receiving data in the DPMAIF RX path, the t7xx_dpmaif_set_frag_to_skb() function adds page fragments to an skb without checking if the number of fragments has exceeded MAX_SKB_FRAGS. This could lead to a buffer overflow in skb_shinfo(skb)->frags[] array, corrupting adjacent memory and potentially causing kernel crashes or other undefined behavior.  This issue was identified through static code analysis by comparing with a similar vulnerability fixed in the mt76 driver commit b102f0c522cf (\"mt76: fix array overflow on receiving too many fragments for a packet\").  The vulnerability could be triggered if the modem firmware sends packets with excessive fragments. While under normal protocol conditions (MTU 3080 bytes, BAT buffer 3584 bytes), a single packet should not require additional fragments, the kernel should not blindly trust firmware behavior. Malicious, buggy, or compromised firmware could potentially craft packets with more fragments than the kernel expects.  Fix this by adding a bounds check before calling skb_add_rx_frag() to ensure nr_frags does not exceed MAX_SKB_FRAGS.  The check must be performed before unmapping to avoid a page leak and double DMA unmap during device teardown.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23212",
                                "url": "https://ubuntu.com/security/CVE-2026-23212",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: annotate data-races around slave->last_rx  slave->last_rx and slave->target_last_arp_rx[...] can be read and written locklessly. Add READ_ONCE() and WRITE_ONCE() annotations.  syzbot reported:  BUG: KCSAN: data-race in bond_rcv_validate / bond_rcv_validate  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 1:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410 ...  write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 0:   bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335   bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533   __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039   __netif_receive_skb_one_core net/core/dev.c:6150 [inline]   __netif_receive_skb+0x59/0x270 net/core/dev.c:6265   netif_receive_skb_internal net/core/dev.c:6351 [inline]   netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410   br_netif_receive_skb net/bridge/br_input.c:30 [inline]   NF_HOOK include/linux/netfilter.h:318 [inline] ...  value changed: 0x0000000100005365 -> 0x0000000100005366",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-18 15:18:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23160",
                                "url": "https://ubuntu.com/security/CVE-2026-23160",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeon_ep: Fix memory leak in octep_device_setup()  In octep_device_setup(), if octep_ctrl_net_init() fails, the function returns directly without unmapping the mapped resources and freeing the allocated configuration memory.  Fix this by jumping to the unsupported_dev label, which performs the necessary cleanup. This aligns with the error handling logic of other paths in this function.  Compile tested only. Issue found using a prototype static analysis tool and code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23146",
                                "url": "https://ubuntu.com/security/CVE-2026-23146",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work  hci_uart_set_proto() sets HCI_UART_PROTO_INIT before calling hci_uart_register_dev(), which calls proto->open() to initialize hu->priv. However, if a TTY write wakeup occurs during this window, hci_uart_tx_wakeup() may schedule write_work before hu->priv is initialized, leading to a NULL pointer dereference in hci_uart_write_work() when proto->dequeue() accesses hu->priv.  The race condition is:    CPU0                              CPU1   ----                              ----   hci_uart_set_proto()     set_bit(HCI_UART_PROTO_INIT)     hci_uart_register_dev()                                     tty write wakeup                                       hci_uart_tty_wakeup()                                         hci_uart_tx_wakeup()                                           schedule_work(&hu->write_work)       proto->open(hu)         // initializes hu->priv                                     hci_uart_write_work()                                       hci_uart_dequeue()                                         proto->dequeue(hu)                                           // accesses hu->priv (NULL!)  Fix this by moving set_bit(HCI_UART_PROTO_INIT) after proto->open() succeeds, ensuring hu->priv is initialized before any work can be scheduled.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23394",
                                "url": "https://ubuntu.com/security/CVE-2026-23394",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  af_unix: Give up GC if MSG_PEEK intervened.  Igor Ushakov reported that GC purged the receive queue of an alive socket due to a race with MSG_PEEK with a nice repro.  This is the exact same issue previously fixed by commit cbcf01128d0a (\"af_unix: fix garbage collect vs MSG_PEEK\").  After GC was replaced with the current algorithm, the cited commit removed the locking dance in unix_peek_fds() and reintroduced the same issue.  The problem is that MSG_PEEK bumps a file refcount without interacting with GC.  Consider an SCC containing sk-A and sk-B, where sk-A is close()d but can be recv()ed via sk-B.  The bad thing happens if sk-A is recv()ed with MSG_PEEK from sk-B and sk-B is close()d while GC is checking unix_vertex_dead() for sk-A and sk-B.    GC thread                    User thread   ---------                    -----------   unix_vertex_dead(sk-A)   -> true   <------.                     \\                      `------   recv(sk-B, MSG_PEEK)               invalidate !!    -> sk-A's file refcount : 1 -> 2                                 close(sk-B)                                -> sk-B's file refcount : 2 -> 1   unix_vertex_dead(sk-B)   -> true  Initially, sk-A's file refcount is 1 by the inflight fd in sk-B recvq.  GC thinks sk-A is dead because the file refcount is the same as the number of its inflight fds.  However, sk-A's file refcount is bumped silently by MSG_PEEK, which invalidates the previous evaluation.  At this moment, sk-B's file refcount is 2; one by the open fd, and one by the inflight fd in sk-A.  The subsequent close() releases one refcount by the former.  Finally, GC incorrectly concludes that both sk-A and sk-B are dead.  One option is to restore the locking dance in unix_peek_fds(), but we can resolve this more elegantly thanks to the new algorithm.  The point is that the issue does not occur without the subsequent close() and we actually do not need to synchronise MSG_PEEK with the dead SCC detection.  When the issue occurs, close() and GC touch the same file refcount. If GC sees the refcount being decremented by close(), it can just give up garbage-collecting the SCC.  Therefore, we only need to signal the race during MSG_PEEK with a proper memory barrier to make it visible to the GC.  Let's use seqcount_t to notify GC when MSG_PEEK occurs and let it defer the SCC to the next run.  This way no locking is needed on the MSG_PEEK side, and we can avoid imposing a penalty on every MSG_PEEK unnecessarily.  Note that we can retry within unix_scc_dead() if MSG_PEEK is detected, but we do not do so to avoid hung task splat from abusive MSG_PEEK calls.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-25 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38591",
                                "url": "https://ubuntu.com/security/CVE-2025-38591",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Reject narrower access to pointer ctx fields  The following BPF program, simplified from a syzkaller repro, causes a kernel warning:      r0 = *(u8 *)(r1 + 169);     exit;  With pointer field sk being at offset 168 in __sk_buff. This access is detected as a narrower read in bpf_skb_is_valid_access because it doesn't match offsetof(struct __sk_buff, sk). It is therefore allowed and later proceeds to bpf_convert_ctx_access. Note that for the \"is_narrower_load\" case in the convert_ctx_accesses(), the insn->off is aligned, so the cnt may not be 0 because it matches the offsetof(struct __sk_buff, sk) in the bpf_convert_ctx_access. However, the target_size stays 0 and the verifier errors with a kernel warning:      verifier bug: error during ctx access conversion(1)  This patch fixes that to return a proper \"invalid bpf_context access off=X size=Y\" error on the load instruction.  The same issue affects multiple other fields in context structures that allow narrow access. Some other non-affected fields (for sk_msg, sk_lookup, and sockopt) were also changed to use bpf_ctx_range_ptr for consistency.  Note this syzkaller crash was reported in the \"Closes\" link below, which used to be about a different bug, fixed in commit fce7bd8e385a (\"bpf/verifier: Handle BPF_LOAD_ACQ instructions in insn_def_regno()\"). Because syzbot somehow confused the two bugs, the new crash and repro didn't get reported to the mailing list.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-08-19 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23035",
                                "url": "https://ubuntu.com/security/CVE-2026-23035",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Pass netdev to mlx5e_destroy_netdev instead of priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails.  Pass netdev to mlx5e_destroy_netdev() to guarantee it will work on a valid netdev.  On mlx5e_remove: Check validity of priv->profile, before attempting to cleanup any resources that might be not there.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000370 PGD 0 P4D 0 Oops: Oops: 0000 [#1] SMP NOPTI CPU: 15 UID: 0 PID: 520 Comm: devlink Not tainted 6.18.0-rc5+ #115 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_dcbnl_dscp_app+0x23/0x100 RSP: 0018:ffffc9000083f8b8 EFLAGS: 00010286 RAX: ffff8881126fc380 RBX: ffff8881015ac400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8881035109c0 RBP: ffff8881035109c0 R08: ffff888101e3e838 R09: ffff888100264e10 R10: ffffc9000083f898 R11: ffffc9000083f8a0 R12: ffff888101b921a0 R13: ffff888101b921a0 R14: ffff8881015ac9a0 R15: ffff8881015ac400 FS:  00007f789a3c8740(0000) GS:ffff88856aa59000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000370 CR3: 000000010b6c0001 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_remove+0x57/0x110  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22996",
                                "url": "https://ubuntu.com/security/CVE-2026-22996",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Don't store mlx5e_priv in mlx5e_dev devlink priv  mlx5e_priv is an unstable structure that can be memset(0) if profile attaching fails, mlx5e_priv in mlx5e_dev devlink private is used to reference the netdev and mdev associated with that struct. Instead, store netdev directly into mlx5e_dev and get mdev from the containing mlx5_adev aux device structure.  This fixes a kernel oops in mlx5e_remove when switchdev mode fails due to change profile failure.  $ devlink dev eswitch set pci/0000:00:03.0 mode switchdev Error: mlx5_core: Failed setting eswitch to offloads. dmesg: workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12  $ devlink dev reload pci/0000:00:03.0 ==> oops  BUG: kernel NULL pointer dereference, address: 0000000000000520  #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: 3 UID: 0 PID: 521 Comm: devlink Not tainted 6.18.0-rc5+ #117 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_remove+0x68/0x130 RSP: 0018:ffffc900034838f0 EFLAGS: 00010246 RAX: ffff88810283c380 RBX: ffff888101874400 RCX: ffffffff826ffc45 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffff888102d789c0 R08: ffff8881007137f0 R09: ffff888100264e10 R10: ffffc90003483898 R11: ffffc900034838a0 R12: ffff888100d261a0 R13: ffff888100d261a0 R14: ffff8881018749a0 R15: ffff888101874400 FS:  00007f8565fea740(0000) GS:ffff88856a759000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000520 CR3: 000000010b11a004 CR4: 0000000000370ef0 Call Trace:  <TASK>  device_release_driver_internal+0x19c/0x200  bus_remove_device+0xc6/0x130  device_del+0x160/0x3d0  ? devl_param_driverinit_value_get+0x2d/0x90  mlx5_detach_device+0x89/0xe0  mlx5_unload_one_devl_locked+0x3a/0x70  mlx5_devlink_reload_down+0xc8/0x220  devlink_reload+0x7d/0x260  devlink_nl_reload_doit+0x45b/0x5a0  genl_family_rcv_msg_doit+0xe8/0x140",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23000",
                                "url": "https://ubuntu.com/security/CVE-2026-23000",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5e: Fix crash on profile change rollback failure  mlx5e_netdev_change_profile can fail to attach a new profile and can fail to rollback to old profile, in such case, we could end up with a dangling netdev with a fully reset netdev_priv. A retry to change profile, e.g. another attempt to call mlx5e_netdev_change_profile via switchdev mode change, will crash trying to access the now NULL priv->mdev.  This fix allows mlx5e_netdev_change_profile() to handle previous failures and an empty priv, by not assuming priv is valid.  Pass netdev and mdev to all flows requiring mlx5e_netdev_change_profile() and avoid passing priv. In mlx5e_netdev_change_profile() check if current priv is valid, and if not, just attach the new profile without trying to access the old one.  This fixes the following oops, when enabling switchdev mode for the 2nd time after first time failure:   ## Enabling switchdev mode first time:  mlx5_core 0012:03:00.1: E-Switch: Supported tc chains and prios offload workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: new profile init failed, -12 workqueue: Failed to create a rescuer kthread for wq \"mlx5e\": -EINTR mlx5_core 0012:03:00.1: mlx5e_netdev_init_profile:6214:(pid 37199): mlx5e_priv_init failed, err=-12 mlx5_core 0012:03:00.1 gpu3rdma1: mlx5e_netdev_change_profile: failed to rollback to orig profile, -12                                                                         ^^^^^^^^ mlx5_core 0000:00:03.0: E-Switch: Disable: mode(LEGACY), nvfs(0), necvfs(0), active vports(0)   ## retry: Enabling switchdev mode 2nd time:  mlx5_core 0000:00:03.0: E-Switch: Supported tc chains and prios offload BUG: kernel NULL pointer dereference, address: 0000000000000038  #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: 520 Comm: devlink Not tainted 6.18.0-rc4+ #91 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:mlx5e_detach_netdev+0x3c/0x90 Code: 50 00 00 f0 80 4f 78 02 48 8b bf e8 07 00 00 48 85 ff 74 16 48 8b 73 78 48 d1 ee 83 e6 01 83 f6 01 40 0f b6 f6 e8 c4 42 00 00 <48> 8b 45 38 48 85 c0 74 08 48 89 df e8 cc 47 40 1e 48 8b bb f0 07 RSP: 0018:ffffc90000673890 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff8881036a89c0 RCX: 0000000000000000 RDX: ffff888113f63800 RSI: ffffffff822fe720 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000002dcd R09: 0000000000000000 R10: ffffc900006738e8 R11: 00000000ffffffff R12: 0000000000000000 R13: 0000000000000000 R14: ffff8881036a89c0 R15: 0000000000000000 FS:  00007fdfb8384740(0000) GS:ffff88856a9d6000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000038 CR3: 0000000112ae0005 CR4: 0000000000370ef0 Call Trace:  <TASK>  mlx5e_netdev_change_profile+0x45/0xb0  mlx5e_vport_rep_load+0x27b/0x2d0  mlx5_esw_offloads_rep_load+0x72/0xf0  esw_offloads_enable+0x5d0/0x970  mlx5_eswitch_enable_locked+0x349/0x430  ? is_mp_supported+0x57/0xb0  mlx5_devlink_eswitch_mode_set+0x26b/0x430  devlink_nl_eswitch_set_doit+0x6f/0xf0  genl_family_rcv_msg_doit+0xe8/0x140  genl_rcv_msg+0x18b/0x290  ? __pfx_devlink_nl_pre_doit+0x10/0x10  ? __pfx_devlink_nl_eswitch_set_doit+0x10/0x10  ? __pfx_devlink_nl_post_doit+0x10/0x10  ? __pfx_genl_rcv_msg+0x10/0x10  netlink_rcv_skb+0x52/0x100  genl_rcv+0x28/0x40  netlink_unicast+0x282/0x3e0  ? __alloc_skb+0xd6/0x190  netlink_sendmsg+0x1f7/0x430  __sys_sendto+0x213/0x220  ? __sys_recvmsg+0x6a/0xd0  __x64_sys_sendto+0x24/0x30  do_syscall_64+0x50/0x1f0  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fdfb8495047",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23053",
                                "url": "https://ubuntu.com/security/CVE-2026-23053",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Fix a deadlock involving nfs_release_folio()  Wang Zhaolong reports a deadlock involving NFSv4.1 state recovery waiting on kthreadd, which is attempting to reclaim memory by calling nfs_release_folio(). The latter cannot make progress due to state recovery being needed.  It seems that the only safe thing to do here is to kick off a writeback of the folio, without waiting for completion, or else kicking off an asynchronous commit.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23050",
                                "url": "https://ubuntu.com/security/CVE-2026-23050",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pNFS: Fix a deadlock when returning a delegation during open()  Ben Coddington reports seeing a hang in the following stack trace:   0 [ffffd0b50e1774e0] __schedule at ffffffff9ca05415   1 [ffffd0b50e177548] schedule at ffffffff9ca05717   2 [ffffd0b50e177558] bit_wait at ffffffff9ca061e1   3 [ffffd0b50e177568] __wait_on_bit at ffffffff9ca05cfb   4 [ffffd0b50e1775c8] out_of_line_wait_on_bit at ffffffff9ca05ea5   5 [ffffd0b50e177618] pnfs_roc at ffffffffc154207b [nfsv4]   6 [ffffd0b50e1776b8] _nfs4_proc_delegreturn at ffffffffc1506586 [nfsv4]   7 [ffffd0b50e177788] nfs4_proc_delegreturn at ffffffffc1507480 [nfsv4]   8 [ffffd0b50e1777f8] nfs_do_return_delegation at ffffffffc1523e41 [nfsv4]   9 [ffffd0b50e177838] nfs_inode_set_delegation at ffffffffc1524a75 [nfsv4]  10 [ffffd0b50e177888] nfs4_process_delegation at ffffffffc14f41dd [nfsv4]  11 [ffffd0b50e1778a0] _nfs4_opendata_to_nfs4_state at ffffffffc1503edf [nfsv4]  12 [ffffd0b50e1778c0] _nfs4_open_and_get_state at ffffffffc1504e56 [nfsv4]  13 [ffffd0b50e177978] _nfs4_do_open at ffffffffc15051b8 [nfsv4]  14 [ffffd0b50e1779f8] nfs4_do_open at ffffffffc150559c [nfsv4]  15 [ffffd0b50e177a80] nfs4_atomic_open at ffffffffc15057fb [nfsv4]  16 [ffffd0b50e177ad0] nfs4_file_open at ffffffffc15219be [nfsv4]  17 [ffffd0b50e177b78] do_dentry_open at ffffffff9c09e6ea  18 [ffffd0b50e177ba8] vfs_open at ffffffff9c0a082e  19 [ffffd0b50e177bd0] dentry_open at ffffffff9c0a0935  The issue is that the delegreturn is being asked to wait for a layout return that cannot complete because a state recovery was initiated. The state recovery cannot complete until the open() finishes processing the delegations it was given.  The solution is to propagate the existing flags that indicate a non-blocking call to the function pnfs_roc(), so that it knows not to wait in this situation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23005",
                                "url": "https://ubuntu.com/security/CVE-2026-23005",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1  When loading guest XSAVE state via KVM_SET_XSAVE, and when updating XFD in response to a guest WRMSR, clear XFD-disabled features in the saved (or to be restored) XSTATE_BV to ensure KVM doesn't attempt to load state for features that are disabled via the guest's XFD.  Because the kernel executes XRSTOR with the guest's XFD, saving XSTATE_BV[i]=1 with XFD[i]=1 will cause XRSTOR to #NM and panic the kernel.  E.g. if fpu_update_guest_xfd() sets XFD without clearing XSTATE_BV:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#29: amx_test/848   Modules linked in: kvm_intel kvm irqbypass   CPU: 29 UID: 1000 PID: 848 Comm: amx_test Not tainted 6.19.0-rc2-ffa07f7fd437-x86_amx_nm_xfd_non_init-vm #171 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    switch_fpu_return+0x4a/0xb0    kvm_arch_vcpu_ioctl_run+0x1245/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  This can happen if the guest executes WRMSR(MSR_IA32_XFD) to set XFD[18] = 1, and a host IRQ triggers kernel_fpu_begin() prior to the vmexit handler's call to fpu_update_guest_xfd().  and if userspace stuffs XSTATE_BV[i]=1 via KVM_SET_XSAVE:    ------------[ cut here ]------------   WARNING: arch/x86/kernel/traps.c:1524 at exc_device_not_available+0x101/0x110, CPU#14: amx_test/867   Modules linked in: kvm_intel kvm irqbypass   CPU: 14 UID: 1000 PID: 867 Comm: amx_test Not tainted 6.19.0-rc2-2dace9faccd6-x86_amx_nm_xfd_non_init-vm #168 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   RIP: 0010:exc_device_not_available+0x101/0x110   Call Trace:    <TASK>    asm_exc_device_not_available+0x1a/0x20   RIP: 0010:restore_fpregs_from_fpstate+0x36/0x90    fpu_swap_kvm_fpstate+0x6b/0x120    kvm_load_guest_fpu+0x30/0x80 [kvm]    kvm_arch_vcpu_ioctl_run+0x85/0x1e40 [kvm]    kvm_vcpu_ioctl+0x2c3/0x8f0 [kvm]    __x64_sys_ioctl+0x8f/0xd0    do_syscall_64+0x62/0x940    entry_SYSCALL_64_after_hwframe+0x4b/0x53    </TASK>   ---[ end trace 0000000000000000 ]---  The new behavior is consistent with the AMX architecture.  Per Intel's SDM, XSAVE saves XSTATE_BV as '0' for components that are disabled via XFD (and non-compacted XSAVE saves the initial configuration of the state component):    If XSAVE, XSAVEC, XSAVEOPT, or XSAVES is saving the state component i,   the instruction does not generate #NM when XCR0[i] = IA32_XFD[i] = 1;   instead, it operates as if XINUSE[i] = 0 (and the state component was   in its initial state): it saves bit i of XSTATE_BV field of the XSAVE   header as 0; in addition, XSAVE saves the initial configuration of the   state component (the other instructions do not save state component i).  Alternatively, KVM could always do XRSTOR with XFD=0, e.g. by using a constant XFD based on the set of enabled features when XSAVEing for a struct fpu_guest.  However, having XSTATE_BV[i]=1 for XFD-disabled features can only happen in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, because fpu_swap_kvm_fpstate()'s call to save_fpregs_to_fpstate() saves the outgoing FPU state with the current XFD; and that is (on all but the first WRMSR to XFD) the guest XFD.  Therefore, XFD can only go out of sync with XSTATE_BV in the above interrupt case, or in similar scenarios involving preemption on preemptible kernels, and it we can consider it (de facto) part of KVM ABI that KVM_GET_XSAVE returns XSTATE_BV[i]=0 for XFD-disabled features.  [Move clea ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-58097",
                                "url": "https://ubuntu.com/security/CVE-2024-58097",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix RCU stall while reaping monitor destination ring  While processing the monitor destination ring, MSDUs are reaped from the link descriptor based on the corresponding buf_id.  However, sometimes the driver cannot obtain a valid buffer corresponding to the buf_id received from the hardware. This causes an infinite loop in the destination processing, resulting in a kernel crash.  kernel log: ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed ath11k_pci 0000:58:00.0: data msdu_pop: invalid buf_id 309 ath11k_pci 0000:58:00.0: data dp_rx_monitor_link_desc_return failed  Fix this by skipping the problematic buf_id and reaping the next entry, replacing the break with the next MSDU processing.  Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68365",
                                "url": "https://ubuntu.com/security/CVE-2025-68365",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/ntfs3: Initialize allocated memory before use  KMSAN reports: Multiple uninitialized values detected:  - KMSAN: uninit-value in ntfs_read_hdr (3) - KMSAN: uninit-value in bcmp (3)  Memory is allocated by __getname(), which is a wrapper for kmem_cache_alloc(). This memory is used before being properly cleared. Change kmem_cache_alloc() to kmem_cache_zalloc() to properly allocate and clear memory before use.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-37926",
                                "url": "https://ubuntu.com/security/CVE-2025-37926",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_session_rpc_open  A UAF issue can occur due to a race condition between ksmbd_session_rpc_open() and __session_rpc_close(). Add rpc_lock to the session to protect it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-05-20 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23030",
                                "url": "https://ubuntu.com/security/CVE-2026-23030",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: rockchip: inno-usb2: Fix a double free bug in rockchip_usb2phy_probe()  The for_each_available_child_of_node() calls of_node_put() to release child_np in each success loop. After breaking from the loop with the child_np has been released, the code will jump to the put_child label and will call the of_node_put() again if the devm_request_threaded_irq() fails. These cause a double free bug.  Fix by returning directly to avoid the duplicate of_node_put().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23025",
                                "url": "https://ubuntu.com/security/CVE-2026-23025",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/page_alloc: prevent pcp corruption with SMP=n  The kernel test robot has reported:   BUG: spinlock trylock failure on UP on CPU#0, kcompactd0/28   lock: 0xffff888807e35ef0, .magic: dead4ead, .owner: kcompactd0/28, .owner_cpu: 0  CPU: 0 UID: 0 PID: 28 Comm: kcompactd0 Not tainted 6.18.0-rc5-00127-ga06157804399 #1 PREEMPT 8cc09ef94dcec767faa911515ce9e609c45db470  Call Trace:   <IRQ>   __dump_stack (lib/dump_stack.c:95)   dump_stack_lvl (lib/dump_stack.c:123)   dump_stack (lib/dump_stack.c:130)   spin_dump (kernel/locking/spinlock_debug.c:71)   do_raw_spin_trylock (kernel/locking/spinlock_debug.c:?)   _raw_spin_trylock (include/linux/spinlock_api_smp.h:89 kernel/locking/spinlock.c:138)   __free_frozen_pages (mm/page_alloc.c:2973)   ___free_pages (mm/page_alloc.c:5295)   __free_pages (mm/page_alloc.c:5334)   tlb_remove_table_rcu (include/linux/mm.h:? include/linux/mm.h:3122 include/asm-generic/tlb.h:220 mm/mmu_gather.c:227 mm/mmu_gather.c:290)   ? __cfi_tlb_remove_table_rcu (mm/mmu_gather.c:289)   ? rcu_core (kernel/rcu/tree.c:?)   rcu_core (include/linux/rcupdate.h:341 kernel/rcu/tree.c:2607 kernel/rcu/tree.c:2861)   rcu_core_si (kernel/rcu/tree.c:2879)   handle_softirqs (arch/x86/include/asm/jump_label.h:36 include/trace/events/irq.h:142 kernel/softirq.c:623)   __irq_exit_rcu (arch/x86/include/asm/jump_label.h:36 kernel/softirq.c:725)   irq_exit_rcu (kernel/softirq.c:741)   sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1052)   </IRQ>   <TASK>  RIP: 0010:_raw_spin_unlock_irqrestore (arch/x86/include/asm/preempt.h:95 include/linux/spinlock_api_smp.h:152 kernel/locking/spinlock.c:194)   free_pcppages_bulk (mm/page_alloc.c:1494)   drain_pages_zone (include/linux/spinlock.h:391 mm/page_alloc.c:2632)   __drain_all_pages (mm/page_alloc.c:2731)   drain_all_pages (mm/page_alloc.c:2747)   kcompactd (mm/compaction.c:3115)   kthread (kernel/kthread.c:465)   ? __cfi_kcompactd (mm/compaction.c:3166)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork (arch/x86/kernel/process.c:164)   ? __cfi_kthread (kernel/kthread.c:412)   ret_from_fork_asm (arch/x86/entry/entry_64.S:255)   </TASK>  Matthew has analyzed the report and identified that in drain_page_zone() we are in a section protected by spin_lock(&pcp->lock) and then get an interrupt that attempts spin_trylock() on the same lock.  The code is designed to work this way without disabling IRQs and occasionally fail the trylock with a fallback.  However, the SMP=n spinlock implementation assumes spin_trylock() will always succeed, and thus it's normally a no-op.  Here the enabled lock debugging catches the problem, but otherwise it could cause a corruption of the pcp structure.  The problem has been introduced by commit 574907741599 (\"mm/page_alloc: leave IRQs enabled for per-cpu page allocations\").  The pcp locking scheme recognizes the need for disabling IRQs to prevent nesting spin_trylock() sections on SMP=n, but the need to prevent the nesting in spin_lock() has not been recognized.  Fix it by introducing local wrappers that change the spin_lock() to spin_lock_iqsave() with SMP=n and use them in all places that do spin_lock(&pcp->lock).  [vbabka@suse.cz: add pcp_ prefix to the spin_lock_irqsave wrappers, per Steven]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71186",
                                "url": "https://ubuntu.com/security/CVE-2025-71186",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: stm32: dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23078",
                                "url": "https://ubuntu.com/security/CVE-2026-23078",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: scarlett2: Fix buffer overflow in config retrieval  The scarlett2_usb_get_config() function has a logic error in the endianness conversion code that can cause buffer overflows when count > 1.  The code checks `if (size == 2)` where `size` is the total buffer size in bytes, then loops `count` times treating each element as u16 (2 bytes). This causes the loop to access `count * 2` bytes when the buffer only has `size` bytes allocated.  Fix by checking the element size (config_item->size) instead of the total buffer size. This ensures the endianness conversion matches the actual element type.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23142",
                                "url": "https://ubuntu.com/security/CVE-2026-23142",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs-scheme: cleanup access_pattern subdirs on scheme dir setup failure  When a DAMOS-scheme DAMON sysfs directory setup fails after setup of access_pattern/ directory, subdirectories of access_pattern/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23075",
                                "url": "https://ubuntu.com/security/CVE-2026-23075",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: esd_usb: esd_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In esd_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback esd_usb_read_bulk_callback(), the URBs are processed and resubmitted. In esd_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in esd_usb_close().  Fix the memory leak by anchoring the URB in the esd_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68725",
                                "url": "https://ubuntu.com/security/CVE-2025-68725",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Do not let BPF test infra emit invalid GSO types to stack  Yinhao et al. reported that their fuzzer tool was able to trigger a skb_warn_bad_offload() from netif_skb_features() -> gso_features_check(). When a BPF program - triggered via BPF test infra - pushes the packet to the loopback device via bpf_clone_redirect() then mentioned offload warning can be seen. GSO-related features are then rightfully disabled.  We get into this situation due to convert___skb_to_skb() setting gso_segs and gso_size but not gso_type. Technically, it makes sense that this warning triggers since the GSO properties are malformed due to the gso_type. Potentially, the gso_type could be marked non-trustworthy through setting it at least to SKB_GSO_DODGY without any other specific assumptions, but that also feels wrong given we should not go further into the GSO engine in the first place.  The checks were added in 121d57af308d (\"gso: validate gso_type in GSO handlers\") because there were malicious (syzbot) senders that combine a protocol with a non-matching gso_type. If we would want to drop such packets, gso_features_check() currently only returns feature flags via netif_skb_features(), so one location for potentially dropping such skbs could be validate_xmit_unreadable_skb(), but then otoh it would be an additional check in the fast-path for a very corner case. Given bpf_clone_redirect() is the only place where BPF test infra could emit such packets, lets reject them right there.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23097",
                                "url": "https://ubuntu.com/security/CVE-2026-23097",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  migrate: correct lock ordering for hugetlb file folios  Syzbot has found a deadlock (analyzed by Lance Yang):  1) Task (5749): Holds folio_lock, then tries to acquire i_mmap_rwsem(read lock). 2) Task (5754): Holds i_mmap_rwsem(write lock), then tries to acquire folio_lock.  migrate_pages()   -> migrate_hugetlbs()     -> unmap_and_move_huge_page()     <- Takes folio_lock!       -> remove_migration_ptes()         -> __rmap_walk_file()           -> i_mmap_lock_read()       <- Waits for i_mmap_rwsem(read lock)!  hugetlbfs_fallocate()   -> hugetlbfs_punch_hole()           <- Takes i_mmap_rwsem(write lock)!     -> hugetlbfs_zero_partial_page()      -> filemap_lock_hugetlb_folio()       -> filemap_lock_folio()         -> __filemap_get_folio        <- Waits for folio_lock!  The migration path is the one taking locks in the wrong order according to the documentation at the top of mm/rmap.c.  So expand the scope of the existing i_mmap_lock to cover the calls to remove_migration_ptes() too.  This is (mostly) how it used to be after commit c0d0381ade79.  That was removed by 336bf30eb765 for both file & anon hugetlb pages when it should only have been removed for anon hugetlb pages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23108",
                                "url": "https://ubuntu.com/security/CVE-2026-23108",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: usb_8dev: usb_8dev_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In usb_8dev_open() -> usb_8dev_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback usb_8dev_read_bulk_callback(), the URBs are processed and resubmitted. In usb_8dev_close() -> unlink_all_urbs() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the usb_8dev_read_bulk_callback() to the priv->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23080",
                                "url": "https://ubuntu.com/security/CVE-2026-23080",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: mcba_usb: mcba_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In mcba_usb_probe() -> mcba_usb_start(), the URBs for USB-in transfers are allocated, added to the priv->rx_submitted anchor and submitted. In the complete callback mcba_usb_read_bulk_callback(), the URBs are processed and resubmitted. In mcba_usb_close() -> mcba_urb_unlink() the URBs are freed by calling usb_kill_anchored_urbs(&priv->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the mcba_usb_read_bulk_callback()to the priv->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23061",
                                "url": "https://ubuntu.com/security/CVE-2026-23061",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In kvaser_usb_set_{,data_}bittiming() -> kvaser_usb_setup_rx_urbs(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback kvaser_usb_read_bulk_callback(), the URBs are processed and resubmitted. In kvaser_usb_remove_interfaces() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs().  Fix the memory leak by anchoring the URB in the kvaser_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23058",
                                "url": "https://ubuntu.com/security/CVE-2026-23058",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak  Fix similar memory leak as in commit 7352e1d5932a (\"can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak\").  In ems_usb_open(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback ems_usb_read_bulk_callback(), the URBs are processed and resubmitted. In ems_usb_close() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in ems_usb_close().  Fix the memory leak by anchoring the URB in the ems_usb_read_bulk_callback() to the dev->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23085",
                                "url": "https://ubuntu.com/security/CVE-2026-23085",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/gic-v3-its: Avoid truncating memory addresses  On 32-bit machines with CONFIG_ARM_LPAE, it is possible for lowmem allocations to be backed by addresses physical memory above the 32-bit address limit, as found while experimenting with larger VMSPLIT configurations.  This caused the qemu virt model to crash in the GICv3 driver, which allocates the 'itt' object using GFP_KERNEL. Since all memory below the 4GB physical address limit is in ZONE_DMA in this configuration, kmalloc() defaults to higher addresses for ZONE_NORMAL, and the ITS driver stores the physical address in a 32-bit 'unsigned long' variable.  Change the itt_addr variable to the correct phys_addr_t type instead, along with all other variables in this driver that hold a physical address.  The gicv5 driver correctly uses u64 variables, while all other irqchip drivers don't call virt_to_phys or similar interfaces. It's expected that other device drivers have similar issues, but fixing this one is sufficient for booting a virtio based guest.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23116",
                                "url": "https://ubuntu.com/security/CVE-2026-23116",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu  For i.MX8MQ platform, the ADB in the VPUMIX domain has no separate reset and clock enable bits, but is ungated and reset together with the VPUs. So we can't reset G1 or G2 separately, it may led to the system hang. Remove rst_mask and clk_mask of imx8mq_vpu_blk_ctl_domain_data. Let imx8mq_vpu_power_notifier() do really vpu reset.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23098",
                                "url": "https://ubuntu.com/security/CVE-2026-23098",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: fix double-free in nr_route_frame()  In nr_route_frame(), old_skb is immediately freed without checking if nr_neigh->ax25 pointer is NULL. Therefore, if nr_neigh->ax25 is NULL, the caller function will free old_skb again, causing a double-free bug.  Therefore, to prevent this, we need to modify it to check whether nr_neigh->ax25 is NULL before freeing old_skb.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23063",
                                "url": "https://ubuntu.com/security/CVE-2026-23063",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: ensure safe queue release with state management  Directly calling `put_queue` carries risks since it cannot guarantee that resources of `uacce_queue` have been fully released beforehand. So adding a `stop_queue` operation for the UACCE_CMD_PUT_Q command and leaving the `put_queue` operation to the final resource release ensures safety.  Queue states are defined as follows: - UACCE_Q_ZOMBIE: Initial state - UACCE_Q_INIT: After opening `uacce` - UACCE_Q_STARTED: After `start` is issued via `ioctl`  When executing `poweroff -f` in virt while accelerator are still working, `uacce_fops_release` and `uacce_remove` may execute concurrently. This can cause `uacce_put_queue` within `uacce_fops_release` to access a NULL `ops` pointer. Therefore, add state checks to prevent accessing freed pointers.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23056",
                                "url": "https://ubuntu.com/security/CVE-2026-23056",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: implement mremap in uacce_vm_ops to return -EPERM  The current uacce_vm_ops does not support the mremap operation of vm_operations_struct. Implement .mremap to return -EPERM to remind users.  The reason we need to explicitly disable mremap is that when the driver does not implement .mremap, it uses the default mremap method. This could lead to a risk scenario:  An application might first mmap address p1, then mremap to p2, followed by munmap(p1), and finally munmap(p2). Since the default mremap copies the original vma's vm_private_data (i.e., q) to the new vma, both munmap operations would trigger vma_close, causing q->qfr to be freed twice(qfr will be set to null here, so repeated release is ok).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23094",
                                "url": "https://ubuntu.com/security/CVE-2026-23094",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix isolate sysfs check condition  uacce supports the device isolation feature. If the driver implements the isolate_err_threshold_read and isolate_err_threshold_write callback functions, uacce will create sysfs files now. Users can read and configure the isolation policy through sysfs. Currently, sysfs files are created as long as either isolate_err_threshold_read or isolate_err_threshold_write callback functions are present.  However, accessing a non-existent callback function may cause the system to crash. Therefore, intercept the creation of sysfs if neither read nor write exists; create sysfs if either is supported, but intercept unsupported operations at the call site.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23096",
                                "url": "https://ubuntu.com/security/CVE-2026-23096",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  uacce: fix cdev handling in the cleanup path  When cdev_device_add fails, it internally releases the cdev memory, and if cdev_device_del is then executed, it will cause a hang error. To fix it, we check the return value of cdev_device_add() and clear uacce->cdev to avoid calling cdev_device_del in the uacce_remove.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23091",
                                "url": "https://ubuntu.com/security/CVE-2026-23091",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  intel_th: fix device leak on output open()  Make sure to drop the reference taken when looking up the th device during output device open() on errors and on close().  Note that a recent commit fixed the leak in a couple of open() error paths but not all of them, and the reference is still leaking on successful open().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23088",
                                "url": "https://ubuntu.com/security/CVE-2026-23088",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Fix crash on synthetic stacktrace field usage  When creating a synthetic event based on an existing synthetic event that had a stacktrace field and the new synthetic event used that field a kernel crash occurred:   ~# cd /sys/kernel/tracing  ~# echo 's:stack unsigned long stack[];' > dynamic_events  ~# echo 'hist:keys=prev_pid:s0=common_stacktrace if prev_state & 3' >> events/sched/sched_switch/trigger  ~# echo 'hist:keys=next_pid:s1=$s0:onmatch(sched.sched_switch).trace(stack,$s1)' >> events/sched/sched_switch/trigger  The above creates a synthetic event that takes a stacktrace when a task schedules out in a non-running state and passes that stacktrace to the sched_switch event when that task schedules back in. It triggers the \"stack\" synthetic event that has a stacktrace as its field (called \"stack\").   ~# echo 's:syscall_stack s64 id; unsigned long stack[];' >> dynamic_events  ~# echo 'hist:keys=common_pid:s2=stack' >> events/synthetic/stack/trigger  ~# echo 'hist:keys=common_pid:s3=$s2,i0=id:onmatch(synthetic.stack).trace(syscall_stack,$i0,$s3)' >> events/raw_syscalls/sys_exit/trigger  The above makes another synthetic event called \"syscall_stack\" that attaches the first synthetic event (stack) to the sys_exit trace event and records the stacktrace from the stack event with the id of the system call that is exiting.  When enabling this event (or using it in a historgram):   ~# echo 1 > events/synthetic/syscall_stack/enable  Produces a kernel crash!   BUG: unable to handle page fault for address: 0000000000400010  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP PTI  CPU: 6 UID: 0 PID: 1257 Comm: bash Not tainted 6.16.3+deb14-amd64 #1 PREEMPT(lazy)  Debian 6.16.3-1  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:trace_event_raw_event_synth+0x90/0x380  Code: c5 00 00 00 00 85 d2 0f 84 e1 00 00 00 31 db eb 34 0f 1f 00 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 <49> 8b 04 24 48 83 c3 01 8d 0c c5 08 00 00 00 01 cd 41 3b 5d 40 0f  RSP: 0018:ffffd2670388f958 EFLAGS: 00010202  RAX: ffff8ba1065cc100 RBX: 0000000000000000 RCX: 0000000000000000  RDX: 0000000000000001 RSI: fffff266ffda7b90 RDI: ffffd2670388f9b0  RBP: 0000000000000010 R08: ffff8ba104e76000 R09: ffffd2670388fa50  R10: ffff8ba102dd42e0 R11: ffffffff9a908970 R12: 0000000000400010  R13: ffff8ba10a246400 R14: ffff8ba10a710220 R15: fffff266ffda7b90  FS:  00007fa3bc63f740(0000) GS:ffff8ba2e0f48000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000400010 CR3: 0000000107f9e003 CR4: 0000000000172ef0  Call Trace:   <TASK>   ? __tracing_map_insert+0x208/0x3a0   action_trace+0x67/0x70   event_hist_trigger+0x633/0x6d0   event_triggers_call+0x82/0x130   trace_event_buffer_commit+0x19d/0x250   trace_event_raw_event_sys_exit+0x62/0xb0   syscall_exit_work+0x9d/0x140   do_syscall_64+0x20a/0x2f0   ? trace_event_raw_event_sched_switch+0x12b/0x170   ? save_fpregs_to_fpstate+0x3e/0x90   ? _raw_spin_unlock+0xe/0x30   ? finish_task_switch.isra.0+0x97/0x2c0   ? __rseq_handle_notify_resume+0xad/0x4c0   ? __schedule+0x4b8/0xd00   ? restore_fpregs_from_fpstate+0x3c/0x90   ? switch_fpu_return+0x5b/0xe0   ? do_syscall_64+0x1ef/0x2f0   ? do_fault+0x2e9/0x540   ? __handle_mm_fault+0x7d1/0xf70   ? count_memcg_events+0x167/0x1d0   ? handle_mm_fault+0x1d7/0x2e0   ? do_user_addr_fault+0x2c3/0x7f0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  The reason is that the stacktrace field is not labeled as such, and is treated as a normal field and not as a dynamic event that it is.  In trace_event_raw_event_synth() the event is field is still treated as a dynamic array, but the retrieval of the data is considered a normal field, and the reference is just the meta data:  // Meta data is retrieved instead of a dynamic array ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23090",
                                "url": "https://ubuntu.com/security/CVE-2026-23090",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  slimbus: core: fix device reference leak on report present  Slimbus devices can be allocated dynamically upon reception of report-present messages.  Make sure to drop the reference taken when looking up already registered devices.  Note that this requires taking an extra reference in case the device has not yet been registered and has to be allocated.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23128",
                                "url": "https://ubuntu.com/security/CVE-2026-23128",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64: Set __nocfi on swsusp_arch_resume()  A DABT is reported[1] on an android based system when resume from hiberate. This happens because swsusp_arch_suspend_exit() is marked with SYM_CODE_*() and does not have a CFI hash, but swsusp_arch_resume() will attempt to verify the CFI hash when calling a copy of swsusp_arch_suspend_exit().  Given that there's an existing requirement that the entrypoint to swsusp_arch_suspend_exit() is the first byte of the .hibernate_exit.text section, we cannot fix this by marking swsusp_arch_suspend_exit() with SYM_FUNC_*(). The simplest fix for now is to disable the CFI check in swsusp_arch_resume().  Mark swsusp_arch_resume() as __nocfi to disable the CFI check.  [1] [   22.991934][    T1] Unable to handle kernel paging request at virtual address 0000000109170ffc [   22.991934][    T1] Mem abort info: [   22.991934][    T1]   ESR = 0x0000000096000007 [   22.991934][    T1]   EC = 0x25: DABT (current EL), IL = 32 bits [   22.991934][    T1]   SET = 0, FnV = 0 [   22.991934][    T1]   EA = 0, S1PTW = 0 [   22.991934][    T1]   FSC = 0x07: level 3 translation fault [   22.991934][    T1] Data abort info: [   22.991934][    T1]   ISV = 0, ISS = 0x00000007, ISS2 = 0x00000000 [   22.991934][    T1]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [   22.991934][    T1]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [   22.991934][    T1] [0000000109170ffc] user address but active_mm is swapper [   22.991934][    T1] Internal error: Oops: 0000000096000007 [#1] PREEMPT SMP [   22.991934][    T1] Dumping ftrace buffer: [   22.991934][    T1]    (ftrace buffer empty) [   22.991934][    T1] Modules linked in: [   22.991934][    T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.6.98-android15-8-g0b1d2aee7fc3-dirty-4k #1 688c7060a825a3ac418fe53881730b355915a419 [   22.991934][    T1] Hardware name: Unisoc UMS9360-base Board (DT) [   22.991934][    T1] pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [   22.991934][    T1] pc : swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1] lr : swsusp_arch_resume+0x294/0x344 [   22.991934][    T1] sp : ffffffc08006b960 [   22.991934][    T1] x29: ffffffc08006b9c0 x28: 0000000000000000 x27: 0000000000000000 [   22.991934][    T1] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000820 [   22.991934][    T1] x23: ffffffd0817e3000 x22: ffffffd0817e3000 x21: 0000000000000000 [   22.991934][    T1] x20: ffffff8089171000 x19: ffffffd08252c8c8 x18: ffffffc080061058 [   22.991934][    T1] x17: 00000000529c6ef0 x16: 00000000529c6ef0 x15: 0000000000000004 [   22.991934][    T1] x14: ffffff8178c88000 x13: 0000000000000006 x12: 0000000000000000 [   22.991934][    T1] x11: 0000000000000015 x10: 0000000000000001 x9 : ffffffd082533000 [   22.991934][    T1] x8 : 0000000109171000 x7 : 205b5d3433393139 x6 : 392e32322020205b [   22.991934][    T1] x5 : 000000010916f000 x4 : 000000008164b000 x3 : ffffff808a4e0530 [   22.991934][    T1] x2 : ffffffd08058e784 x1 : 0000000082326000 x0 : 000000010a283000 [   22.991934][    T1] Call trace: [   22.991934][    T1]  swsusp_arch_resume+0x2ac/0x344 [   22.991934][    T1]  hibernation_restore+0x158/0x18c [   22.991934][    T1]  load_image_and_restore+0xb0/0xec [   22.991934][    T1]  software_resume+0xf4/0x19c [   22.991934][    T1]  software_resume_initcall+0x34/0x78 [   22.991934][    T1]  do_one_initcall+0xe8/0x370 [   22.991934][    T1]  do_initcall_level+0xc8/0x19c [   22.991934][    T1]  do_initcalls+0x70/0xc0 [   22.991934][    T1]  do_basic_setup+0x1c/0x28 [   22.991934][    T1]  kernel_init_freeable+0xe0/0x148 [   22.991934][    T1]  kernel_init+0x20/0x1a8 [   22.991934][    T1]  ret_from_fork+0x10/0x20 [   22.991934][    T1] Code: a9400a61 f94013e0 f9438923 f9400a64 (b85fc110)  [catalin.marinas@arm.com: commit log updated by Mark Rutland]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23107",
                                "url": "https://ubuntu.com/security/CVE-2026-23107",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  arm64/fpsimd: signal: Allocate SSVE storage when restoring ZA  The code to restore a ZA context doesn't attempt to allocate the task's sve_state before setting TIF_SME. Consequently, restoring a ZA context can place a task into an invalid state where TIF_SME is set but the task's sve_state is NULL.  In legitimate but uncommon cases where the ZA signal context was NOT created by the kernel in the context of the same task (e.g. if the task is saved/restored with something like CRIU), we have no guarantee that sve_state had been allocated previously. In these cases, userspace can enter streaming mode without trapping while sve_state is NULL, causing a later NULL pointer dereference when the kernel attempts to store the register state:  | # ./sigreturn-za | Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 | Mem abort info: |   ESR = 0x0000000096000046 |   EC = 0x25: DABT (current EL), IL = 32 bits |   SET = 0, FnV = 0 |   EA = 0, S1PTW = 0 |   FSC = 0x06: level 2 translation fault | Data abort info: |   ISV = 0, ISS = 0x00000046, ISS2 = 0x00000000 |   CM = 0, WnR = 1, TnD = 0, TagAccess = 0 |   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 | user pgtable: 4k pages, 52-bit VAs, pgdp=0000000101f47c00 | [0000000000000000] pgd=08000001021d8403, p4d=0800000102274403, pud=0800000102275403, pmd=0000000000000000 | Internal error: Oops: 0000000096000046 [#1]  SMP | Modules linked in: | CPU: 0 UID: 0 PID: 153 Comm: sigreturn-za Not tainted 6.19.0-rc1 #1 PREEMPT | Hardware name: linux,dummy-virt (DT) | pstate: 214000c9 (nzCv daIF +PAN -UAO -TCO +DIT -SSBS BTYPE=--) | pc : sve_save_state+0x4/0xf0 | lr : fpsimd_save_user_state+0xb0/0x1c0 | sp : ffff80008070bcc0 | x29: ffff80008070bcc0 x28: fff00000c1ca4c40 x27: 63cfa172fb5cf658 | x26: fff00000c1ca5228 x25: 0000000000000000 x24: 0000000000000000 | x23: 0000000000000000 x22: fff00000c1ca4c40 x21: fff00000c1ca4c40 | x20: 0000000000000020 x19: fff00000ff6900f0 x18: 0000000000000000 | x17: fff05e8e0311f000 x16: 0000000000000000 x15: 028fca8f3bdaf21c | x14: 0000000000000212 x13: fff00000c0209f10 x12: 0000000000000020 | x11: 0000000000200b20 x10: 0000000000000000 x9 : fff00000ff69dcc0 | x8 : 00000000000003f2 x7 : 0000000000000001 x6 : fff00000c1ca5b48 | x5 : fff05e8e0311f000 x4 : 0000000008000000 x3 : 0000000000000000 | x2 : 0000000000000001 x1 : fff00000c1ca5970 x0 : 0000000000000440 | Call trace: |  sve_save_state+0x4/0xf0 (P) |  fpsimd_thread_switch+0x48/0x198 |  __switch_to+0x20/0x1c0 |  __schedule+0x36c/0xce0 |  schedule+0x34/0x11c |  exit_to_user_mode_loop+0x124/0x188 |  el0_interrupt+0xc8/0xd8 |  __el0_irq_handler_common+0x18/0x24 |  el0t_64_irq_handler+0x10/0x1c |  el0t_64_irq+0x198/0x19c | Code: 54000040 d51b4408 d65f03c0 d503245f (e5bb5800) | ---[ end trace 0000000000000000 ]---  Fix this by having restore_za_context() ensure that the task's sve_state is allocated, matching what we do when taking an SME trap. Any live SVE/SSVE state (which is restored earlier from a separate signal context) must be preserved, and hence this is not zeroed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23073",
                                "url": "https://ubuntu.com/security/CVE-2026-23073",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rsi: Fix memory corruption due to not set vif driver data size  The struct ieee80211_vif contains trailing space for vif driver data, when struct ieee80211_vif is allocated, the total memory size that is allocated is sizeof(struct ieee80211_vif) + size of vif driver data. The size of vif driver data is set by each WiFi driver as needed.  The RSI911x driver does not set vif driver data size, no trailing space for vif driver data is therefore allocated past struct ieee80211_vif . The RSI911x driver does however use the vif driver data to store its vif driver data structure \"struct vif_priv\". An access to vif->drv_priv leads to access out of struct ieee80211_vif bounds and corruption of some memory.  In case of the failure observed locally, rsi_mac80211_add_interface() would write struct vif_priv *vif_info = (struct vif_priv *)vif->drv_priv; vif_info->vap_id = vap_idx. This write corrupts struct fq_tin member struct list_head new_flows . The flow = list_first_entry(head, struct fq_flow, flowchain); in fq_tin_reset() then reports non-NULL bogus address, which when accessed causes a crash.  The trigger is very simple, boot the machine with init=/bin/sh , mount devtmpfs, sysfs, procfs, and then do \"ip link set wlan0 up\", \"sleep 1\", \"ip link set wlan0 down\" and the crash occurs.  Fix this by setting the correct size of vif driver data, which is the size of \"struct vif_priv\", so that memory is allocated and the driver can store its driver data in it, instead of corrupting memory around it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23135",
                                "url": "https://ubuntu.com/security/CVE-2026-23135",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath12k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23133",
                                "url": "https://ubuntu.com/security/CVE-2026-23133",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath10k: fix dma_free_coherent() pointer  dma_alloc_coherent() allocates a DMA mapped buffer and stores the addresses in XXX_unaligned fields.  Those should be reused when freeing the buffer rather than the aligned addresses.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71200",
                                "url": "https://ubuntu.com/security/CVE-2025-71200",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: sdhci-of-dwcmshc: Prevent illegal clock reduction in HS200/HS400 mode  When operating in HS200 or HS400 timing modes, reducing the clock frequency below 52MHz will lead to link broken as the Rockchip DWC MSHC controller requires maintaining a minimum clock of 52MHz in these modes.  Add a check to prevent illegal clock reduction through debugfs:  root@debian:/# echo 50000000 > /sys/kernel/debug/mmc0/clock root@debian:/# [   30.090146] mmc0: running CQE recovery mmc0: cqhci: Failed to halt mmc0: cqhci: spurious TCN for tag 0 WARNING: drivers/mmc/host/cqhci-core.c:797 at cqhci_irq+0x254/0x818, CPU#1: kworker/1:0H/24 Modules linked in: CPU: 1 UID: 0 PID: 24 Comm: kworker/1:0H Not tainted 6.19.0-rc1-00001-g09db0998649d-dirty #204 PREEMPT Hardware name: Rockchip RK3588 EVB1 V10 Board (DT) Workqueue: kblockd blk_mq_run_work_fn pstate: 604000c9 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : cqhci_irq+0x254/0x818 lr : cqhci_irq+0x254/0x818 ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23089",
                                "url": "https://ubuntu.com/security/CVE-2026-23089",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix use-after-free in snd_usb_mixer_free()  When snd_usb_create_mixer() fails, snd_usb_mixer_free() frees mixer->id_elems but the controls already added to the card still reference the freed memory. Later when snd_card_register() runs, the OSS mixer layer calls their callbacks and hits a use-after-free read.  Call trace:   get_ctl_value+0x63f/0x820 sound/usb/mixer.c:411   get_min_max_with_quirks.isra.0+0x240/0x1f40 sound/usb/mixer.c:1241   mixer_ctl_feature_info+0x26b/0x490 sound/usb/mixer.c:1381   snd_mixer_oss_build_test+0x174/0x3a0 sound/core/oss/mixer_oss.c:887   ...   snd_card_register+0x4ed/0x6d0 sound/core/init.c:923   usb_audio_probe+0x5ef/0x2a90 sound/usb/card.c:1025  Fix by calling snd_ctl_remove() for all mixer controls before freeing id_elems. We save the next pointer first because snd_ctl_remove() frees the current element.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23076",
                                "url": "https://ubuntu.com/security/CVE-2026-23076",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ctxfi: Fix potential OOB access in audio mixer handling  In the audio mixer handling code of ctxfi driver, the conf field is used as a kind of loop index, and it's referred in the index callbacks (amixer_index() and sum_index()).  As spotted recently by fuzzers, the current code causes OOB access at those functions. | UBSAN: array-index-out-of-bounds in /build/reproducible-path/linux-6.17.8/sound/pci/ctxfi/ctamixer.c:347:48 | index 8 is out of range for type 'unsigned char [8]'  After the analysis, the cause was found to be the lack of the proper (re-)initialization of conj field.  This patch addresses those OOB accesses by adding the proper initializations of the loop indices.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71199",
                                "url": "https://ubuntu.com/security/CVE-2025-71199",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc driver  at91_adc_interrupt can call at91_adc_touch_data_handler function to start the work by schedule_work(&st->touch_st.workq).  If we remove the module which will call at91_adc_remove to make cleanup, it will free indio_dev through iio_device_unregister but quite a bit later. While the work mentioned above will be used. The sequence of operations that may lead to a UAF bug is as follows:  CPU0                                      CPU1                                       | at91_adc_workq_handler at91_adc_remove                      | iio_device_unregister(indio_dev)     | //free indio_dev a bit later         |                                      | iio_push_to_buffers(indio_dev)                                      | //use indio_dev  Fix it by ensuring that the work is canceled before proceeding with the cleanup in at91_adc_remove.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23101",
                                "url": "https://ubuntu.com/security/CVE-2026-23101",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  leds: led-class: Only Add LED to leds_list when it is fully ready  Before this change the LED was added to leds_list before led_init_core() gets called adding it the list before led_classdev.set_brightness_work gets initialized.  This leaves a window where led_trigger_register() of a LED's default trigger will call led_trigger_set() which calls led_set_brightness() which in turn will end up queueing the *uninitialized* led_classdev.set_brightness_work.  This race gets hit by the lenovo-thinkpad-t14s EC driver which registers 2 LEDs with a default trigger provided by snd_ctl_led.ko in quick succession. The first led_classdev_register() causes an async modprobe of snd_ctl_led to run and that async modprobe manages to exactly hit the window where the second LED is on the leds_list without led_init_core() being called for it, resulting in:   ------------[ cut here ]------------  WARNING: CPU: 11 PID: 5608 at kernel/workqueue.c:4234 __flush_work+0x344/0x390  Hardware name: LENOVO 21N2S01F0B/21N2S01F0B, BIOS N42ET93W (2.23 ) 09/01/2025  ...  Call trace:   __flush_work+0x344/0x390 (P)   flush_work+0x2c/0x50   led_trigger_set+0x1c8/0x340   led_trigger_register+0x17c/0x1c0   led_trigger_register_simple+0x84/0xe8   snd_ctl_led_init+0x40/0xf88 [snd_ctl_led]   do_one_initcall+0x5c/0x318   do_init_module+0x9c/0x2b8   load_module+0x7e0/0x998  Close the race window by moving the adding of the LED to leds_list to after the led_init_core() call.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23064",
                                "url": "https://ubuntu.com/security/CVE-2026-23064",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: act_ife: avoid possible NULL deref  tcf_ife_encode() must make sure ife_encode() does not return NULL.  syzbot reported:  Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]  RIP: 0010:ife_tlv_meta_encode+0x41/0xa0 net/ife/ife.c:166 CPU: 3 UID: 0 PID: 8990 Comm: syz.0.696 Not tainted syzkaller #0 PREEMPT(full) Call Trace:  <TASK>   ife_encode_meta_u32+0x153/0x180 net/sched/act_ife.c:101   tcf_ife_encode net/sched/act_ife.c:841 [inline]   tcf_ife_act+0x1022/0x1de0 net/sched/act_ife.c:877   tc_act include/net/tc_wrapper.h:130 [inline]   tcf_action_exec+0x1c0/0xa20 net/sched/act_api.c:1152   tcf_exts_exec include/net/pkt_cls.h:349 [inline]   mall_classify+0x1a0/0x2a0 net/sched/cls_matchall.c:42   tc_classify include/net/tc_wrapper.h:197 [inline]   __tcf_classify net/sched/cls_api.c:1764 [inline]   tcf_classify+0x7f2/0x1380 net/sched/cls_api.c:1860   multiq_classify net/sched/sch_multiq.c:39 [inline]   multiq_enqueue+0xe0/0x510 net/sched/sch_multiq.c:66   dev_qdisc_enqueue+0x45/0x250 net/core/dev.c:4147   __dev_xmit_skb net/core/dev.c:4262 [inline]   __dev_queue_xmit+0x2998/0x46c0 net/core/dev.c:4798",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23086",
                                "url": "https://ubuntu.com/security/CVE-2026-23086",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: cap TX credit to local buffer size  The virtio transports derives its TX credit directly from peer_buf_alloc, which is set from the remote endpoint's SO_VM_SOCKETS_BUFFER_SIZE value.  On the host side this means that the amount of data we are willing to queue for a connection is scaled by a guest-chosen buffer size, rather than the host's own vsock configuration. A malicious guest can advertise a large buffer and read slowly, causing the host to allocate a correspondingly large amount of sk_buff memory. The same thing would happen in the guest with a malicious host, since virtio transports share the same code base.  Introduce a small helper, virtio_transport_tx_buf_size(), that returns min(peer_buf_alloc, buf_alloc), and use it wherever we consume peer_buf_alloc.  This ensures the effective TX window is bounded by both the peer's advertised buffer and our own buf_alloc (already clamped to buffer_max_size via SO_VM_SOCKETS_BUFFER_MAX_SIZE), so a remote peer cannot force the other to queue more data than allowed by its own vsock settings.  On an unpatched Ubuntu 22.04 host (~64 GiB RAM), running a PoC with 32 guest vsock connections advertising 2 GiB each and reading slowly drove Slab/SUnreclaim from ~0.5 GiB to ~57 GiB; the system only recovered after killing the QEMU process. That said, if QEMU memory is limited with cgroups, the maximum memory used will be limited.  With this patch applied:    Before:     MemFree:        ~61.6 GiB     Slab:           ~142 MiB     SUnreclaim:     ~117 MiB    After 32 high-credit connections:     MemFree:        ~61.5 GiB     Slab:           ~178 MiB     SUnreclaim:     ~152 MiB  Only ~35 MiB increase in Slab/SUnreclaim, no host OOM, and the guest remains responsive.  Compatibility with non-virtio transports:    - VMCI uses the AF_VSOCK buffer knobs to size its queue pairs per     socket based on the local vsk->buffer_* values; the remote side     cannot enlarge those queues beyond what the local endpoint     configured.    - Hyper-V's vsock transport uses fixed-size VMBus ring buffers and     an MTU bound; there is no peer-controlled credit field comparable     to peer_buf_alloc, and the remote endpoint cannot drive in-flight     kernel memory above those ring sizes.    - The loopback path reuses virtio_transport_common.c, so it     naturally follows the same semantics as the virtio transport.  This change is limited to virtio_transport_common.c and thus affects virtio-vsock, vhost-vsock, and loopback, bringing them in line with the \"remote window intersected with local policy\" behaviour that VMCI and Hyper-V already effectively have.  [Stefano: small adjustments after changing the previous patch] [Stefano: tweak the commit message]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23069",
                                "url": "https://ubuntu.com/security/CVE-2026-23069",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock/virtio: fix potential underflow in virtio_transport_get_credit()  The credit calculation in virtio_transport_get_credit() uses unsigned arithmetic:    ret = vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt);  If the peer shrinks its advertised buffer (peer_buf_alloc) while bytes are in flight, the subtraction can underflow and produce a large positive value, potentially allowing more data to be queued than the peer can handle.  Reuse virtio_transport_has_space() which already handles this case and add a comment to make it clear why we are doing that.  [Stefano: use virtio_transport_has_space() instead of duplicating the code] [Stefano: tweak the commit message]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23119",
                                "url": "https://ubuntu.com/security/CVE-2026-23119",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: provide a net pointer to __skb_flow_dissect()  After 3cbf4ffba5ee (\"net: plumb network namespace into __skb_flow_dissect\") we have to provide a net pointer to __skb_flow_dissect(), either via skb->dev, skb->sk, or a user provided pointer.  In the following case, syzbot was able to cook a bare skb.  WARNING: net/core/flow_dissector.c:1131 at __skb_flow_dissect+0xb57/0x68b0 net/core/flow_dissector.c:1131, CPU#1: syz.2.1418/11053 Call Trace:  <TASK>   bond_flow_dissect drivers/net/bonding/bond_main.c:4093 [inline]   __bond_xmit_hash+0x2d7/0xba0 drivers/net/bonding/bond_main.c:4157   bond_xmit_hash_xdp drivers/net/bonding/bond_main.c:4208 [inline]   bond_xdp_xmit_3ad_xor_slave_get drivers/net/bonding/bond_main.c:5139 [inline]   bond_xdp_get_xmit_slave+0x1fd/0x710 drivers/net/bonding/bond_main.c:5515   xdp_master_redirect+0x13f/0x2c0 net/core/filter.c:4388   bpf_prog_run_xdp include/net/xdp.h:700 [inline]   bpf_test_run+0x6b2/0x7d0 net/bpf/test_run.c:421   bpf_prog_test_run_xdp+0x795/0x10e0 net/bpf/test_run.c:1390   bpf_prog_test_run+0x2c7/0x340 kernel/bpf/syscall.c:4703   __sys_bpf+0x562/0x860 kernel/bpf/syscall.c:6182   __do_sys_bpf kernel/bpf/syscall.c:6274 [inline]   __se_sys_bpf kernel/bpf/syscall.c:6272 [inline]   __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:6272   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xec/0xf80 arch/x86/entry/syscall_64.c:94",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23084",
                                "url": "https://ubuntu.com/security/CVE-2026-23084",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list  When the parameter pmac_id_valid argument of be_cmd_get_mac_from_list() is set to false, the driver may request the PMAC_ID from the firmware of the network card, and this function will store that PMAC_ID at the provided address pmac_id. This is the contract of this function.  However, there is a location within the driver where both pmac_id_valid == false and pmac_id == NULL are being passed. This could result in dereferencing a NULL pointer.  To resolve this issue, it is necessary to pass the address of a stub variable to the function.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23124",
                                "url": "https://ubuntu.com/security/CVE-2026-23124",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: annotate data-race in ndisc_router_discovery()  syzbot found that ndisc_router_discovery() could read and write in6_dev->ra_mtu without holding a lock [1]  This looks fine, IFLA_INET6_RA_MTU is best effort.  Add READ_ONCE()/WRITE_ONCE() to document the race.  Note that we might also reject illegal MTU values (mtu < IPV6_MIN_MTU || mtu > skb->dev->mtu) in a future patch.  [1] BUG: KCSAN: data-race in ndisc_router_discovery / ndisc_router_discovery  read to 0xffff888119809c20 of 4 bytes by task 25817 on cpu 1:   ndisc_router_discovery+0x151d/0x1c90 net/ipv6/ndisc.c:1558   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  write to 0xffff888119809c20 of 4 bytes by task 25816 on cpu 0:   ndisc_router_discovery+0x155a/0x1c90 net/ipv6/ndisc.c:1559   ndisc_rcv+0x2ad/0x3d0 net/ipv6/ndisc.c:1841   icmpv6_rcv+0xe5a/0x12f0 net/ipv6/icmp.c:989   ip6_protocol_deliver_rcu+0xb2a/0x10d0 net/ipv6/ip6_input.c:438   ip6_input_finish+0xf0/0x1d0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x5e/0x140 net/ipv6/ip6_input.c:500   ip6_mc_input+0x27c/0x470 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x336/0x340 net/ipv6/ip6_input.c:79 ...  value changed: 0x00000000 -> 0xe5400659",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23121",
                                "url": "https://ubuntu.com/security/CVE-2026-23121",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mISDN: annotate data-race around dev->work  dev->work can re read locklessly in mISDN_read() and mISDN_poll(). Add READ_ONCE()/WRITE_ONCE() annotations.  BUG: KCSAN: data-race in mISDN_ioctl / mISDN_read  write to 0xffff88812d848280 of 4 bytes by task 10864 on cpu 1:   misdn_add_timer drivers/isdn/mISDN/timerdev.c:175 [inline]   mISDN_ioctl+0x2fb/0x550 drivers/isdn/mISDN/timerdev.c:233   vfs_ioctl fs/ioctl.c:51 [inline]   __do_sys_ioctl fs/ioctl.c:597 [inline]   __se_sys_ioctl+0xce/0x140 fs/ioctl.c:583   __x64_sys_ioctl+0x43/0x50 fs/ioctl.c:583   x64_sys_call+0x14b0/0x3000 arch/x86/include/generated/asm/syscalls_64.h:17   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88812d848280 of 4 bytes by task 10857 on cpu 0:   mISDN_read+0x1f2/0x470 drivers/isdn/mISDN/timerdev.c:112   do_loop_readv_writev fs/read_write.c:847 [inline]   vfs_readv+0x3fb/0x690 fs/read_write.c:1020   do_readv+0xe7/0x210 fs/read_write.c:1080   __do_sys_readv fs/read_write.c:1165 [inline]   __se_sys_readv fs/read_write.c:1162 [inline]   __x64_sys_readv+0x45/0x50 fs/read_write.c:1162   x64_sys_call+0x2831/0x3000 arch/x86/include/generated/asm/syscalls_64.h:20   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd8/0x2c0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  value changed: 0x00000000 -> 0x00000001",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23126",
                                "url": "https://ubuntu.com/security/CVE-2026-23126",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netdevsim: fix a race issue related to the operation on bpf_bound_progs list  The netdevsim driver lacks a protection mechanism for operations on the bpf_bound_progs list. When the nsim_bpf_create_prog() performs list_add_tail, it is possible that nsim_bpf_destroy_prog() is simultaneously performs list_del. Concurrent operations on the list may lead to list corruption and trigger a kernel crash as follows:  [  417.290971] kernel BUG at lib/list_debug.c:62! [  417.290983] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI [  417.290992] CPU: 10 PID: 168 Comm: kworker/10:1 Kdump: loaded Not tainted 6.19.0-rc5 #1 [  417.291003] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [  417.291007] Workqueue: events bpf_prog_free_deferred [  417.291021] RIP: 0010:__list_del_entry_valid_or_report+0xa7/0xc0 [  417.291034] Code: a8 ff 0f 0b 48 89 fe 48 89 ca 48 c7 c7 48 a1 eb ae e8 ed fb a8 ff 0f 0b 48 89 fe 48 89 c2 48 c7 c7 80 a1 eb ae e8 d9 fb a8 ff <0f> 0b 48 89 d1 48 c7 c7 d0 a1 eb ae 48 89 f2 48 89 c6 e8 c2 fb a8 [  417.291040] RSP: 0018:ffffb16a40807df8 EFLAGS: 00010246 [  417.291046] RAX: 000000000000006d RBX: ffff8e589866f500 RCX: 0000000000000000 [  417.291051] RDX: 0000000000000000 RSI: ffff8e59f7b23180 RDI: ffff8e59f7b23180 [  417.291055] RBP: ffffb16a412c9000 R08: 0000000000000000 R09: 0000000000000003 [  417.291059] R10: ffffb16a40807c80 R11: ffffffffaf9edce8 R12: ffff8e594427ac20 [  417.291063] R13: ffff8e59f7b44780 R14: ffff8e58800b7a05 R15: 0000000000000000 [  417.291074] FS:  0000000000000000(0000) GS:ffff8e59f7b00000(0000) knlGS:0000000000000000 [  417.291079] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [  417.291083] CR2: 00007fc4083efe08 CR3: 00000001c3626006 CR4: 0000000000770ee0 [  417.291088] PKRU: 55555554 [  417.291091] Call Trace: [  417.291096]  <TASK> [  417.291103]  nsim_bpf_destroy_prog+0x31/0x80 [netdevsim] [  417.291154]  __bpf_prog_offload_destroy+0x2a/0x80 [  417.291163]  bpf_prog_dev_bound_destroy+0x6f/0xb0 [  417.291171]  bpf_prog_free_deferred+0x18e/0x1a0 [  417.291178]  process_one_work+0x18a/0x3a0 [  417.291188]  worker_thread+0x27b/0x3a0 [  417.291197]  ? __pfx_worker_thread+0x10/0x10 [  417.291207]  kthread+0xe5/0x120 [  417.291214]  ? __pfx_kthread+0x10/0x10 [  417.291221]  ret_from_fork+0x31/0x50 [  417.291230]  ? __pfx_kthread+0x10/0x10 [  417.291236]  ret_from_fork_asm+0x1a/0x30 [  417.291246]  </TASK>  Add a mutex lock, to prevent simultaneous addition and deletion operations on the list.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23059",
                                "url": "https://ubuntu.com/security/CVE-2026-23059",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Sanitize payload size to prevent member overflow  In qla27xx_copy_fpin_pkt() and qla27xx_copy_multiple_pkt(), the frame_size reported by firmware is used to calculate the copy length into item->iocb. However, the iocb member is defined as a fixed-size 64-byte array within struct purex_item.  If the reported frame_size exceeds 64 bytes, subsequent memcpy calls will overflow the iocb member boundary. While extra memory might be allocated, this cross-member write is unsafe and triggers warnings under CONFIG_FORTIFY_SOURCE.  Fix this by capping total_bytes to the size of the iocb member (64 bytes) before allocation and copying. This ensures all copies remain within the bounds of the destination structure member.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23110",
                                "url": "https://ubuntu.com/security/CVE-2026-23110",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: core: Wake up the error handler when final completions race against each other  The fragile ordering between marking commands completed or failed so that the error handler only wakes when the last running command completes or times out has race conditions. These race conditions can cause the SCSI layer to fail to wake the error handler, leaving I/O through the SCSI host stuck as the error state cannot advance.  First, there is an memory ordering issue within scsi_dec_host_busy(). The write which clears SCMD_STATE_INFLIGHT may be reordered with reads counting in scsi_host_busy(). While the local CPU will see its own write, reordering can allow other CPUs in scsi_dec_host_busy() or scsi_eh_inc_host_failed() to see a raised busy count, causing no CPU to see a host busy equal to the host_failed count.  This race condition can be prevented with a memory barrier on the error path to force the write to be visible before counting host busy commands.  Second, there is a general ordering issue with scsi_eh_inc_host_failed(). By counting busy commands before incrementing host_failed, it can race with a final command in scsi_dec_host_busy(), such that scsi_dec_host_busy() does not see host_failed incremented but scsi_eh_inc_host_failed() counts busy commands before SCMD_STATE_INFLIGHT is cleared by scsi_dec_host_busy(), resulting in neither waking the error handler task.  This needs the call to scsi_host_busy() to be moved after host_failed is incremented to close the race condition.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23071",
                                "url": "https://ubuntu.com/security/CVE-2026-23071",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: Fix race condition in hwspinlock irqsave routine  Previously, the address of the shared member '&map->spinlock_flags' was passed directly to 'hwspin_lock_timeout_irqsave'. This creates a race condition where multiple contexts contending for the lock could overwrite the shared flags variable, potentially corrupting the state for the current lock owner.  Fix this by using a local stack variable 'flags' to store the IRQ state temporarily.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23068",
                                "url": "https://ubuntu.com/security/CVE-2026-23068",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: spi-sprd-adi: Fix double free in probe error path  The driver currently uses spi_alloc_host() to allocate the controller but registers it using devm_spi_register_controller().  If devm_register_restart_handler() fails, the code jumps to the put_ctlr label and calls spi_controller_put(). However, since the controller was registered via a devm function, the device core will automatically call spi_controller_put() again when the probe fails. This results in a double-free of the spi_controller structure.  Fix this by switching to devm_spi_alloc_host() and removing the manual spi_controller_put() call.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23123",
                                "url": "https://ubuntu.com/security/CVE-2026-23123",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  interconnect: debugfs: initialize src_node and dst_node to empty strings  The debugfs_create_str() API assumes that the string pointer is either NULL or points to valid kmalloc() memory. Leaving the pointer uninitialized can cause problems.  Initialize src_node and dst_node to empty strings before creating the debugfs entries to guarantee that reads and writes are safe.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71198",
                                "url": "https://ubuntu.com/security/CVE-2025-71198",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event detection  The st_lsm6dsx_acc_channels array of struct iio_chan_spec has a non-NULL event_spec field, indicating support for IIO events. However, event detection is not supported for all sensors, and if userspace tries to configure accelerometer wakeup events on a sensor device that does not support them (e.g. LSM6DS0), st_lsm6dsx_write_event() dereferences a NULL pointer when trying to write to the wakeup register. Define an additional struct iio_chan_spec array whose members have a NULL event_spec field, and use this array instead of st_lsm6dsx_acc_channels for sensors without event detection capability.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23113",
                                "url": "https://ubuntu.com/security/CVE-2026-23113",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop  Currently this is checked before running the pending work. Normally this is quite fine, as work items either end up blocking (which will create a new worker for other items), or they complete fairly quickly. But syzbot reports an issue where io-wq takes seemingly forever to exit, and with a bit of debugging, this turns out to be because it queues a bunch of big (2GB - 4096b) reads with a /dev/msr* file. Since this file type doesn't support ->read_iter(), loop_rw_iter() ends up handling them. Each read returns 16MB of data read, which takes 20 (!!) seconds. With a bunch of these pending, processing the whole chain can take a long time. Easily longer than the syzbot uninterruptible sleep timeout of 140 seconds. This then triggers a complaint off the io-wq exit path:  INFO: task syz.4.135:6326 blocked for more than 143 seconds.       Not tainted syzkaller #0       Blocked by coredump. \"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\" disables this message. task:syz.4.135       state:D stack:26824 pid:6326  tgid:6324  ppid:5957  task_flags:0x400548 flags:0x00080000 Call Trace:  <TASK>  context_switch kernel/sched/core.c:5256 [inline]  __schedule+0x1139/0x6150 kernel/sched/core.c:6863  __schedule_loop kernel/sched/core.c:6945 [inline]  schedule+0xe7/0x3a0 kernel/sched/core.c:6960  schedule_timeout+0x257/0x290 kernel/time/sleep_timeout.c:75  do_wait_for_common kernel/sched/completion.c:100 [inline]  __wait_for_common+0x2fc/0x4e0 kernel/sched/completion.c:121  io_wq_exit_workers io_uring/io-wq.c:1328 [inline]  io_wq_put_and_exit+0x271/0x8a0 io_uring/io-wq.c:1356  io_uring_clean_tctx+0x10d/0x190 io_uring/tctx.c:203  io_uring_cancel_generic+0x69c/0x9a0 io_uring/cancel.c:651  io_uring_files_cancel include/linux/io_uring.h:19 [inline]  do_exit+0x2ce/0x2bd0 kernel/exit.c:911  do_group_exit+0xd3/0x2a0 kernel/exit.c:1112  get_signal+0x2671/0x26d0 kernel/signal.c:3034  arch_do_signal_or_restart+0x8f/0x7e0 arch/x86/kernel/signal.c:337  __exit_to_user_mode_loop kernel/entry/common.c:41 [inline]  exit_to_user_mode_loop+0x8c/0x540 kernel/entry/common.c:75  __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]  syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]  syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]  syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]  do_syscall_64+0x4ee/0xf80 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa02738f749 RSP: 002b:00007fa0281ae0e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca RAX: fffffffffffffe00 RBX: 00007fa0275e6098 RCX: 00007fa02738f749 RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007fa0275e6098 RBP: 00007fa0275e6090 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fa0275e6128 R14: 00007fff14e4fcb0 R15: 00007fff14e4fd98  There's really nothing wrong here, outside of processing these reads will take a LONG time. However, we can speed up the exit by checking the IO_WQ_BIT_EXIT inside the io_worker_handle_work() loop, as syzbot will exit the ring after queueing up all of these reads. Then once the first item is processed, io-wq will simply cancel the rest. That should avoid syzbot running into this complaint again.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23062",
                                "url": "https://ubuntu.com/security/CVE-2026-23062",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro  The GET_INSTANCE_ID macro that caused a kernel panic when accessing sysfs attributes:  1. Off-by-one error: The loop condition used '<=' instead of '<',    causing access beyond array bounds. Since array indices are 0-based    and go from 0 to instances_count-1, the loop should use '<'.  2. Missing NULL check: The code dereferenced attr_name_kobj->name    without checking if attr_name_kobj was NULL, causing a null pointer    dereference in min_length_show() and other attribute show functions.  The panic occurred when fwupd tried to read BIOS configuration attributes:    Oops: general protection fault [#1] SMP KASAN NOPTI   KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]   RIP: 0010:min_length_show+0xcf/0x1d0 [hp_bioscfg]  Add a NULL check for attr_name_kobj before dereferencing and corrects the loop boundary to match the pattern used elsewhere in the driver.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23131",
                                "url": "https://ubuntu.com/security/CVE-2026-23131",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix kobject warnings for empty attribute names  The hp-bioscfg driver attempts to register kobjects with empty names when the HP BIOS returns attributes with empty name strings. This causes multiple kernel warnings:    kobject: (00000000135fb5e6): attempted to be registered with empty name!   WARNING: CPU: 14 PID: 3336 at lib/kobject.c:219 kobject_add_internal+0x2eb/0x310  Add validation in hp_init_bios_buffer_attribute() to check if the attribute name is empty after parsing it from the WMI buffer. If empty, log a debug message and skip registration of that attribute, allowing the module to continue processing other valid attributes.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23087",
                                "url": "https://ubuntu.com/security/CVE-2026-23087",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: xen: scsiback: Fix potential memory leak in scsiback_remove()  Memory allocated for struct vscsiblk_info in scsiback_probe() is not freed in scsiback_remove() leading to potential memory leaks on remove, as well as in the scsiback_probe() error paths. Fix that by freeing it in scsiback_remove().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71197",
                                "url": "https://ubuntu.com/security/CVE-2025-71197",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  w1: therm: Fix off-by-one buffer overflow in alarms_store  The sysfs buffer passed to alarms_store() is allocated with 'size + 1' bytes and a NUL terminator is appended. However, the 'size' argument does not account for this extra byte. The original code then allocated 'size' bytes and used strcpy() to copy 'buf', which always writes one byte past the allocated buffer since strcpy() copies until the NUL terminator at index 'size'.  Fix this by parsing the 'buf' parameter directly using simple_strtoll() without allocating any intermediate memory or string copying. This removes the overflow while simplifying the code.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23105",
                                "url": "https://ubuntu.com/security/CVE-2026-23105",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag  This is more of a preventive patch to make the code more consistent and to prevent possible exploits that employ child qlen manipulations on qfq. use cl_is_active instead of relying on the child qdisc's qlen to determine class activation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23103",
                                "url": "https://ubuntu.com/security/CVE-2026-23103",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvlan: Make the addrs_lock be per port  Make the addrs_lock be per port, not per ipvlan dev.  Initial code seems to be written in the assumption, that any address change must occur under RTNL. But it is not so for the case of IPv6. So  1) Introduce per-port addrs_lock.  2) It was needed to fix places where it was forgotten to take lock (ipvlan_open/ipvlan_close)  This appears to be a very minor problem though. Since it's highly unlikely that ipvlan_add_addr() will be called on 2 CPU simultaneously. But nevertheless, this could cause:  1) False-negative of ipvlan_addr_busy(): one interface iterated through all port->ipvlans + ipvlan->addrs under some ipvlan spinlock, and another added IP under its own lock. Though this is only possible for IPv6, since looks like only ipvlan_addr6_event() can be called without rtnl_lock.  2) Race since ipvlan_ht_addr_add(port) is called under different ipvlan->addrs_lock locks  This should not affect performance, since add/remove IP is a rare situation and spinlock is not taken on fast paths.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23120",
                                "url": "https://ubuntu.com/security/CVE-2026-23120",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  l2tp: avoid one data-race in l2tp_tunnel_del_work()  We should read sk->sk_socket only when dealing with kernel sockets.  syzbot reported the following data-race:  BUG: KCSAN: data-race in l2tp_tunnel_del_work / sk_common_release  write to 0xffff88811c182b20 of 8 bytes by task 5365 on cpu 0:   sk_set_socket include/net/sock.h:2092 [inline]   sock_orphan include/net/sock.h:2118 [inline]   sk_common_release+0xae/0x230 net/core/sock.c:4003   udp_lib_close+0x15/0x20 include/net/udp.h:325   inet_release+0xce/0xf0 net/ipv4/af_inet.c:437   __sock_release net/socket.c:662 [inline]   sock_close+0x6b/0x150 net/socket.c:1455   __fput+0x29b/0x650 fs/file_table.c:468   ____fput+0x1c/0x30 fs/file_table.c:496   task_work_run+0x131/0x1a0 kernel/task_work.c:233   resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]   __exit_to_user_mode_loop kernel/entry/common.c:44 [inline]   exit_to_user_mode_loop+0x1fe/0x740 kernel/entry/common.c:75   __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]   syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]   syscall_exit_to_user_mode_work include/linux/entry-common.h:159 [inline]   syscall_exit_to_user_mode include/linux/entry-common.h:194 [inline]   do_syscall_64+0x1e1/0x2b0 arch/x86/entry/syscall_64.c:100  entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff88811c182b20 of 8 bytes by task 827 on cpu 1:   l2tp_tunnel_del_work+0x2f/0x1a0 net/l2tp/l2tp_core.c:1418   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0x4ce/0x9d0 kernel/workqueue.c:3340   worker_thread+0x582/0x770 kernel/workqueue.c:3421   kthread+0x489/0x510 kernel/kthread.c:463   ret_from_fork+0x149/0x290 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246  value changed: 0xffff88811b818000 -> 0x0000000000000000",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23083",
                                "url": "https://ubuntu.com/security/CVE-2026-23083",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fou: Don't allow 0 for FOU_ATTR_IPPROTO.  fou_udp_recv() has the same problem mentioned in the previous patch.  If FOU_ATTR_IPPROTO is set to 0, skb is not freed by fou_udp_recv() nor \"resubmit\"-ted in ip_protocol_deliver_rcu().  Let's forbid 0 for FOU_ATTR_IPPROTO.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23095",
                                "url": "https://ubuntu.com/security/CVE-2026-23095",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gue: Fix skb memleak with inner IP protocol 0.  syzbot reported skb memleak below. [0]  The repro generated a GUE packet with its inner protocol 0.  gue_udp_recv() returns -guehdr->proto_ctype for \"resubmit\" in ip_protocol_deliver_rcu(), but this only works with non-zero protocol number.  Let's drop such packets.  Note that 0 is a valid number (IPv6 Hop-by-Hop Option).  I think it is not practical to encap HOPOPT in GUE, so once someone starts to complain, we could pass down a resubmit flag pointer to distinguish two zeros from the upper layer:    * no error   * resubmit HOPOPT  [0] BUG: memory leak unreferenced object 0xffff888109695a00 (size 240):   comm \"syz.0.17\", pid 6088, jiffies 4294943096   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 40 c2 10 81 88 ff ff 00 00 00 00 00 00 00 00  .@..............   backtrace (crc a84b336f):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4958 [inline]     slab_alloc_node mm/slub.c:5263 [inline]     kmem_cache_alloc_noprof+0x3b4/0x590 mm/slub.c:5270     __build_skb+0x23/0x60 net/core/skbuff.c:474     build_skb+0x20/0x190 net/core/skbuff.c:490     __tun_build_skb drivers/net/tun.c:1541 [inline]     tun_build_skb+0x4a1/0xa40 drivers/net/tun.c:1636     tun_get_user+0xc12/0x2030 drivers/net/tun.c:1770     tun_chr_write_iter+0x71/0x120 drivers/net/tun.c:1999     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0xa7/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xf80 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23125",
                                "url": "https://ubuntu.com/security/CVE-2026-23125",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT  A null-ptr-deref was reported in the SCTP transmit path when SCTP-AUTH key initialization fails:    ==================================================================   KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]   CPU: 0 PID: 16 Comm: ksoftirqd/0 Tainted: G W 6.6.0 #2   RIP: 0010:sctp_packet_bundle_auth net/sctp/output.c:264 [inline]   RIP: 0010:sctp_packet_append_chunk+0xb36/0x1260 net/sctp/output.c:401   Call Trace:    sctp_packet_transmit_chunk+0x31/0x250 net/sctp/output.c:189   sctp_outq_flush_data+0xa29/0x26d0 net/sctp/outqueue.c:1111   sctp_outq_flush+0xc80/0x1240 net/sctp/outqueue.c:1217   sctp_cmd_interpreter.isra.0+0x19a5/0x62c0 net/sctp/sm_sideeffect.c:1787   sctp_side_effects net/sctp/sm_sideeffect.c:1198 [inline]   sctp_do_sm+0x1a3/0x670 net/sctp/sm_sideeffect.c:1169   sctp_assoc_bh_rcv+0x33e/0x640 net/sctp/associola.c:1052   sctp_inq_push+0x1dd/0x280 net/sctp/inqueue.c:88   sctp_rcv+0x11ae/0x3100 net/sctp/input.c:243   sctp6_rcv+0x3d/0x60 net/sctp/ipv6.c:1127  The issue is triggered when sctp_auth_asoc_init_active_key() fails in sctp_sf_do_5_1C_ack() while processing an INIT_ACK. In this case, the command sequence is currently:  - SCTP_CMD_PEER_INIT - SCTP_CMD_TIMER_STOP (T1_INIT) - SCTP_CMD_TIMER_START (T1_COOKIE) - SCTP_CMD_NEW_STATE (COOKIE_ECHOED) - SCTP_CMD_ASSOC_SHKEY - SCTP_CMD_GEN_COOKIE_ECHO  If SCTP_CMD_ASSOC_SHKEY fails, asoc->shkey remains NULL, while asoc->peer.auth_capable and asoc->peer.peer_chunks have already been set by SCTP_CMD_PEER_INIT. This allows a DATA chunk with auth = 1 and shkey = NULL to be queued by sctp_datamsg_from_user().  Since command interpretation stops on failure, no COOKIE_ECHO should been sent via SCTP_CMD_GEN_COOKIE_ECHO. However, the T1_COOKIE timer has already been started, and it may enqueue a COOKIE_ECHO into the outqueue later. As a result, the DATA chunk can be transmitted together with the COOKIE_ECHO in sctp_outq_flush_data(), leading to the observed issue.  Similar to the other places where it calls sctp_auth_asoc_init_active_key() right after sctp_process_init(), this patch moves the SCTP_CMD_ASSOC_SHKEY immediately after SCTP_CMD_PEER_INIT, before stopping T1_INIT and starting T1_COOKIE. This ensures that if shared key generation fails, authenticated DATA cannot be sent. It also allows the T1_INIT timer to retransmit INIT, giving the client another chance to process INIT_ACK and retry key setup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23099",
                                "url": "https://ubuntu.com/security/CVE-2026-23099",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bonding: limit BOND_MODE_8023AD to Ethernet devices  BOND_MODE_8023AD makes sense for ARPHRD_ETHER only.  syzbot reported:   BUG: KASAN: global-out-of-bounds in __hw_addr_create net/core/dev_addr_lists.c:63 [inline]  BUG: KASAN: global-out-of-bounds in __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118 Read of size 16 at addr ffffffff8bf94040 by task syz.1.3580/19497  CPU: 1 UID: 0 PID: 19497 Comm: syz.1.3580 Tainted: G             L     syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>   dump_stack_lvl+0xe8/0x150 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  check_region_inline mm/kasan/generic.c:-1 [inline]   kasan_check_range+0x2b0/0x2c0 mm/kasan/generic.c:200   __asan_memcpy+0x29/0x70 mm/kasan/shadow.c:105   __hw_addr_create net/core/dev_addr_lists.c:63 [inline]   __hw_addr_add_ex+0x25d/0x760 net/core/dev_addr_lists.c:118   __dev_mc_add net/core/dev_addr_lists.c:868 [inline]   dev_mc_add+0xa1/0x120 net/core/dev_addr_lists.c:886   bond_enslave+0x2b8b/0x3ac0 drivers/net/bonding/bond_main.c:2180   do_set_master+0x533/0x6d0 net/core/rtnetlink.c:2963   do_setlink+0xcf0/0x41c0 net/core/rtnetlink.c:3165   rtnl_changelink net/core/rtnetlink.c:3776 [inline]   __rtnl_newlink net/core/rtnetlink.c:3935 [inline]   rtnl_newlink+0x161c/0x1c90 net/core/rtnetlink.c:4072   rtnetlink_rcv_msg+0x7cf/0xb70 net/core/rtnetlink.c:6958   netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2550   netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline]   netlink_unicast+0x82f/0x9e0 net/netlink/af_netlink.c:1344   netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1894   sock_sendmsg_nosec net/socket.c:727 [inline]   __sock_sendmsg+0x21c/0x270 net/socket.c:742   ____sys_sendmsg+0x505/0x820 net/socket.c:2592   ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2646   __sys_sendmsg+0x164/0x220 net/socket.c:2678   do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]   __do_fast_syscall_32+0x1dc/0x560 arch/x86/entry/syscall_32.c:307   do_fast_syscall_32+0x34/0x80 arch/x86/entry/syscall_32.c:332  entry_SYSENTER_compat_after_hwframe+0x84/0x8e  </TASK>  The buggy address belongs to the variable:  lacpdu_mcast_addr+0x0/0x40",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71194",
                                "url": "https://ubuntu.com/security/CVE-2025-71194",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix deadlock in wait_current_trans() due to ignored transaction type  When wait_current_trans() is called during start_transaction(), it currently waits for a blocked transaction without considering whether the given transaction type actually needs to wait for that particular transaction state. The btrfs_blocked_trans_types[] array already defines which transaction types should wait for which transaction states, but this check was missing in wait_current_trans().  This can lead to a deadlock scenario involving two transactions and pending ordered extents:    1. Transaction A is in TRANS_STATE_COMMIT_DOING state    2. A worker processing an ordered extent calls start_transaction()      with TRANS_JOIN    3. join_transaction() returns -EBUSY because Transaction A is in      TRANS_STATE_COMMIT_DOING    4. Transaction A moves to TRANS_STATE_UNBLOCKED and completes    5. A new Transaction B is created (TRANS_STATE_RUNNING)    6. The ordered extent from step 2 is added to Transaction B's      pending ordered extents    7. Transaction B immediately starts commit by another task and      enters TRANS_STATE_COMMIT_START    8. The worker finally reaches wait_current_trans(), sees Transaction B      in TRANS_STATE_COMMIT_START (a blocked state), and waits      unconditionally    9. However, TRANS_JOIN should NOT wait for TRANS_STATE_COMMIT_START      according to btrfs_blocked_trans_types[]    10. Transaction B is waiting for pending ordered extents to complete    11. Deadlock: Transaction B waits for ordered extent, ordered extent       waits for Transaction B  This can be illustrated by the following call stacks:   CPU0                              CPU1                                     btrfs_finish_ordered_io()                                       start_transaction(TRANS_JOIN)                                         join_transaction()                                           # -EBUSY (Transaction A is                                           # TRANS_STATE_COMMIT_DOING)   # Transaction A completes   # Transaction B created   # ordered extent added to   # Transaction B's pending list   btrfs_commit_transaction()     # Transaction B enters     # TRANS_STATE_COMMIT_START     # waiting for pending ordered     # extents                                         wait_current_trans()                                           # waits for Transaction B                                           # (should not wait!)  Task bstore_kv_sync in btrfs_commit_transaction waiting for ordered extents:    __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   btrfs_commit_transaction+0xbf7/0xda0 [btrfs]   btrfs_sync_file+0x342/0x4d0 [btrfs]   __x64_sys_fdatasync+0x4b/0x80   do_syscall_64+0x33/0x40   entry_SYSCALL_64_after_hwframe+0x44/0xa9  Task kworker in wait_current_trans waiting for transaction commit:    Workqueue: btrfs-syno_nocow btrfs_work_helper [btrfs]   __schedule+0x2e7/0x8a0   schedule+0x64/0xe0   wait_current_trans+0xb0/0x110 [btrfs]   start_transaction+0x346/0x5b0 [btrfs]   btrfs_finish_ordered_io.isra.0+0x49b/0x9c0 [btrfs]   btrfs_work_helper+0xe8/0x350 [btrfs]   process_one_work+0x1d3/0x3c0   worker_thread+0x4d/0x3e0   kthread+0x12d/0x150   ret_from_fork+0x1f/0x30  Fix this by passing the transaction type to wait_current_trans() and checking btrfs_blocked_trans_types[cur_trans->state] against the given type before deciding to wait. This ensures that transaction types which are allowed to join during certain blocked states will not unnecessarily wait and cause deadlocks.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71185",
                                "url": "https://ubuntu.com/security/CVE-2025-71185",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation  Make sure to drop the reference taken when looking up the crossbar platform device during am335x route allocation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23026",
                                "url": "https://ubuntu.com/security/CVE-2026-23026",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config()  Fix a memory leak in gpi_peripheral_config() where the original memory pointed to by gchan->config could be lost if krealloc() fails.  The issue occurs when: 1. gchan->config points to previously allocated memory 2. krealloc() fails and returns NULL 3. The function directly assigns NULL to gchan->config, losing the    reference to the original memory 4. The original memory becomes unreachable and cannot be freed  Fix this by using a temporary variable to hold the krealloc() result and only updating gchan->config when the allocation succeeds.  Found via static analysis and code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71188",
                                "url": "https://ubuntu.com/security/CVE-2025-71188",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: lpc18xx-dmamux: fix device leak on route allocation  Make sure to drop the reference taken when looking up the DMA mux platform device during route allocation.  Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71163",
                                "url": "https://ubuntu.com/security/CVE-2025-71163",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: idxd: fix device leaks on compat bind and unbind  Make sure to drop the reference taken when looking up the idxd device as part of the compat bind and unbind sysfs interface.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71189",
                                "url": "https://ubuntu.com/security/CVE-2025-71189",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: dw: dmamux: fix OF node leak on route allocation failure  Make sure to drop the reference taken to the DMA master OF node also on late route allocation failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71190",
                                "url": "https://ubuntu.com/security/CVE-2025-71190",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: bcm-sba-raid: fix device leak on probe  Make sure to drop the reference taken when looking up the mailbox device during probe on probe failures and on driver unbind.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71191",
                                "url": "https://ubuntu.com/security/CVE-2025-71191",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: at_hdmac: fix device leak on of_dma_xlate()  Make sure to drop the reference taken when looking up the DMA platform device during of_dma_xlate() when releasing channel resources.  Note that commit 3832b78b3ec2 (\"dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()\") fixed the leak in a couple of error paths but the reference is still leaking on successful allocation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23049",
                                "url": "https://ubuntu.com/security/CVE-2026-23049",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel  The connector type for the DataImage SCF0700C48GGU18 panel is missing and devm_drm_panel_bridge_add() requires connector type to be set. This leads to a warning and a backtrace in the kernel log and panel does not work: \" WARNING: CPU: 3 PID: 38 at drivers/gpu/drm/bridge/panel.c:379 devm_drm_of_get_bridge+0xac/0xb8 \" The warning is triggered by a check for valid connector type in devm_drm_panel_bridge_add(). If there is no valid connector type set for a panel, the warning is printed and panel is not added. Fill in the missing connector type to fix the warning and make the panel operational once again.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23144",
                                "url": "https://ubuntu.com/security/CVE-2026-23144",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure  When a context DAMON sysfs directory setup is failed after setup of attrs/ directory, subdirectories of attrs/ directory are not cleaned up.  As a result, DAMON sysfs interface is nearly broken until the system reboots, and the memory for the unremoved directory is leaked.  Cleanup the directories under such failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23145",
                                "url": "https://ubuntu.com/security/CVE-2026-23145",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref  The error branch for ext4_xattr_inode_update_ref forget to release the refcount for iloc.bh. Find this when review code.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22997",
                                "url": "https://ubuntu.com/security/CVE-2026-22997",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session upon receiving the second rts  Since j1939_session_deactivate_activate_next() in j1939_tp_rxtimer() is called only when the timer is enabled, we need to call j1939_session_deactivate_activate_next() if we cancelled the timer. Otherwise, refcount for j1939_session leaks, which will later appear as  | unregister_netdevice: waiting for vcan0 to become free. Usage count = 2.  problem.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23031",
                                "url": "https://ubuntu.com/security/CVE-2026-23031",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak  In gs_can_open(), the URBs for USB-in transfers are allocated, added to the parent->rx_submitted anchor and submitted. In the complete callback gs_usb_receive_bulk_callback(), the URB is processed and resubmitted. In gs_can_close() the URBs are freed by calling usb_kill_anchored_urbs(parent->rx_submitted).  However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in gs_can_close().  Fix the memory leak by anchoring the URB in the gs_usb_receive_bulk_callback() to the parent->rx_submitted anchor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23032",
                                "url": "https://ubuntu.com/security/CVE-2026-23032",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  null_blk: fix kmemleak by releasing references to fault configfs items  When CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is enabled, the null-blk driver sets up fault injection support by creating the timeout_inject, requeue_inject, and init_hctx_fault_inject configfs items as children of the top-level nullbX configfs group.  However, when the nullbX device is removed, the references taken to these fault-config configfs items are not released. As a result, kmemleak reports a memory leak, for example:  unreferenced object 0xc00000021ff25c40 (size 32):   comm \"mkdir\", pid 10665, jiffies 4322121578   hex dump (first 32 bytes):     69 6e 69 74 5f 68 63 74 78 5f 66 61 75 6c 74 5f  init_hctx_fault_     69 6e 6a 65 63 74 00 88 00 00 00 00 00 00 00 00  inject..........   backtrace (crc 1a018c86):     __kmalloc_node_track_caller_noprof+0x494/0xbd8     kvasprintf+0x74/0xf4     config_item_set_name+0xf0/0x104     config_group_init_type_name+0x48/0xfc     fault_config_init+0x48/0xf0     0xc0080000180559e4     configfs_mkdir+0x304/0x814     vfs_mkdir+0x49c/0x604     do_mkdirat+0x314/0x3d0     sys_mkdir+0xa0/0xd8     system_call_exception+0x1b0/0x4f0     system_call_vectored_common+0x15c/0x2ec  Fix this by explicitly releasing the references to the fault-config configfs items when dropping the reference to the top-level nullbX configfs group.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23033",
                                "url": "https://ubuntu.com/security/CVE-2026-23033",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: omap-dma: fix dma_pool resource leak in error paths  The dma_pool created by dma_pool_create() is not destroyed when dma_async_device_register() or of_dma_controller_register() fails, causing a resource leak in the probe error paths.  Add dma_pool_destroy() in both error paths to properly release the allocated dma_pool resource.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71196",
                                "url": "https://ubuntu.com/security/CVE-2025-71196",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: stm32-usphyc: Fix off by one in probe()  The \"index\" variable is used as an index into the usbphyc->phys[] array which has usbphyc->nphys elements.  So if it is equal to usbphyc->nphys then it is one element out of bounds.  The \"index\" comes from the device tree so it's data that we trust and it's unlikely to be wrong, however it's obviously still worth fixing the bug.  Change the > to >=.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71193",
                                "url": "https://ubuntu.com/security/CVE-2025-71193",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  phy: qcom-qusb2: Fix NULL pointer dereference on early suspend  Enabling runtime PM before attaching the QPHY instance as driver data can lead to a NULL pointer dereference in runtime PM callbacks that expect valid driver data. There is a small window where the suspend callback may run after PM runtime enabling and before runtime forbid. This causes a sporadic crash during boot:  ``` Unable to handle kernel NULL pointer dereference at virtual address 00000000000000a1 [...] CPU: 0 UID: 0 PID: 11 Comm: kworker/0:1 Not tainted 6.16.7+ #116 PREEMPT Workqueue: pm pm_runtime_work pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : qusb2_phy_runtime_suspend+0x14/0x1e0 [phy_qcom_qusb2] lr : pm_generic_runtime_suspend+0x2c/0x44 [...] ```  Attach the QPHY instance as driver data before enabling runtime PM to prevent NULL pointer dereference in runtime PM callbacks.  Reorder pm_runtime_enable() and pm_runtime_forbid() to prevent a short window where an unnecessary runtime suspend can occur.  Use the devres-managed version to ensure PM runtime is symmetrically disabled during driver removal for proper cleanup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71162",
                                "url": "https://ubuntu.com/security/CVE-2025-71162",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: tegra-adma: Fix use-after-free  A use-after-free bug exists in the Tegra ADMA driver when audio streams are terminated, particularly during XRUN conditions. The issue occurs when the DMA buffer is freed by tegra_adma_terminate_all() before the vchan completion tasklet finishes accessing it.  The race condition follows this sequence:    1. DMA transfer completes, triggering an interrupt that schedules the      completion tasklet (tasklet has not executed yet)   2. Audio playback stops, calling tegra_adma_terminate_all() which      frees the DMA buffer memory via kfree()   3. The scheduled tasklet finally executes, calling vchan_complete()      which attempts to access the already-freed memory  Since tasklets can execute at any time after being scheduled, there is no guarantee that the buffer will remain valid when vchan_complete() runs.  Fix this by properly synchronizing the virtual channel completion:  - Calling vchan_terminate_vdesc() in tegra_adma_stop() to mark the    descriptors as terminated instead of freeing the descriptor.  - Add the callback tegra_adma_synchronize() that calls    vchan_synchronize() which kills any pending tasklets and frees any    terminated descriptors.  Crash logs: [  337.427523] BUG: KASAN: use-after-free in vchan_complete+0x124/0x3b0 [  337.427544] Read of size 8 at addr ffff000132055428 by task swapper/0/0  [  337.427562] Call trace: [  337.427564]  dump_backtrace+0x0/0x320 [  337.427571]  show_stack+0x20/0x30 [  337.427575]  dump_stack_lvl+0x68/0x84 [  337.427584]  print_address_description.constprop.0+0x74/0x2b8 [  337.427590]  kasan_report+0x1f4/0x210 [  337.427598]  __asan_load8+0xa0/0xd0 [  337.427603]  vchan_complete+0x124/0x3b0 [  337.427609]  tasklet_action_common.constprop.0+0x190/0x1d0 [  337.427617]  tasklet_action+0x30/0x40 [  337.427623]  __do_softirq+0x1a0/0x5c4 [  337.427628]  irq_exit+0x110/0x140 [  337.427633]  handle_domain_irq+0xa4/0xe0 [  337.427640]  gic_handle_irq+0x64/0x160 [  337.427644]  call_on_irq_stack+0x20/0x4c [  337.427649]  do_interrupt_handler+0x7c/0x90 [  337.427654]  el1_interrupt+0x30/0x80 [  337.427659]  el1h_64_irq_handler+0x18/0x30 [  337.427663]  el1h_64_irq+0x7c/0x80 [  337.427667]  cpuidle_enter_state+0xe4/0x540 [  337.427674]  cpuidle_enter+0x54/0x80 [  337.427679]  do_idle+0x2e0/0x380 [  337.427685]  cpu_startup_entry+0x2c/0x70 [  337.427690]  rest_init+0x114/0x130 [  337.427695]  arch_call_rest_init+0x18/0x24 [  337.427702]  start_kernel+0x380/0x3b4 [  337.427706]  __primary_switched+0xc0/0xc8",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71195",
                                "url": "https://ubuntu.com/security/CVE-2025-71195",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  dmaengine: xilinx: xdma: Fix regmap max_register  The max_register field is assigned the size of the register memory region instead of the offset of the last register. The result is that reading from the regmap via debugfs can cause a segmentation fault:  tail /sys/kernel/debug/regmap/xdma.1.auto/registers Unable to handle kernel paging request at virtual address ffff800082f70000 Mem abort info:   ESR = 0x0000000096000007   EC = 0x25: DABT (current EL), IL = 32 bits   SET = 0, FnV = 0   EA = 0, S1PTW = 0   FSC = 0x07: level 3 translation fault [...] Call trace:  regmap_mmio_read32le+0x10/0x30  _regmap_bus_reg_read+0x74/0xc0  _regmap_read+0x68/0x198  regmap_read+0x54/0x88  regmap_read_debugfs+0x140/0x380  regmap_map_read_file+0x30/0x48  full_proxy_read+0x68/0xc8  vfs_read+0xcc/0x310  ksys_read+0x7c/0x120  __arm64_sys_read+0x24/0x40  invoke_syscall.constprop.0+0x64/0x108  do_el0_svc+0xb0/0xd8  el0_svc+0x38/0x130  el0t_64_sync_handler+0x120/0x138  el0t_64_sync+0x194/0x198 Code: aa1e03e9 d503201f f9400000 8b214000 (b9400000) ---[ end trace 0000000000000000 ]--- note: tail[1217] exited with irqs disabled note: tail[1217] exited with preempt_count 1 Segmentation fault",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23006",
                                "url": "https://ubuntu.com/security/CVE-2026-23006",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: tlv320adcx140: fix null pointer  The \"snd_soc_component\" in \"adcx140_priv\" was only used once but never set. It was only used for reaching \"dev\" which is already present in \"adcx140_priv\".",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22999",
                                "url": "https://ubuntu.com/security/CVE-2026-22999",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: do not free existing class in qfq_change_class()  Fixes qfq_change_class() error case.  cl->qdisc and cl should only be freed if a new class and qdisc were allocated, or we risk various UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23010",
                                "url": "https://ubuntu.com/security/CVE-2026-23010",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix use-after-free in inet6_addr_del().  syzbot reported use-after-free of inet6_ifaddr in inet6_addr_del(). [0]  The cited commit accidentally moved ipv6_del_addr() for mngtmpaddr before reading its ifp->flags for temporary addresses in inet6_addr_del().  Let's move ipv6_del_addr() down to fix the UAF.  [0]: BUG: KASAN: slab-use-after-free in inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117 Read of size 4 at addr ffff88807b89c86c by task syz.3.1618/9593  CPU: 0 UID: 0 PID: 9593 Comm: syz.3.1618 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Call Trace:  <TASK>  __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:378 [inline]  print_report+0xcd/0x630 mm/kasan/report.c:482  kasan_report+0xe0/0x110 mm/kasan/report.c:595  inet6_addr_del.constprop.0+0x67a/0x6b0 net/ipv6/addrconf.c:3117  addrconf_del_ifaddr+0x11e/0x190 net/ipv6/addrconf.c:3181  inet6_ioctl+0x1e5/0x2b0 net/ipv6/af_inet6.c:582  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f164cf8f749 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f164de64038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007f164d1e5fa0 RCX: 00007f164cf8f749 RDX: 0000200000000000 RSI: 0000000000008936 RDI: 0000000000000003 RBP: 00007f164d013f91 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f164d1e6038 R14: 00007f164d1e5fa0 R15: 00007ffde15c8288  </TASK>  Allocated by task 9593:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  poison_kmalloc_redzone mm/kasan/common.c:397 [inline]  __kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:414  kmalloc_noprof include/linux/slab.h:957 [inline]  kzalloc_noprof include/linux/slab.h:1094 [inline]  ipv6_add_addr+0x4e3/0x2010 net/ipv6/addrconf.c:1120  inet6_addr_add+0x256/0x9b0 net/ipv6/addrconf.c:3050  addrconf_add_ifaddr+0x1fc/0x450 net/ipv6/addrconf.c:3160  inet6_ioctl+0x103/0x2b0 net/ipv6/af_inet6.c:580  sock_do_ioctl+0x118/0x280 net/socket.c:1254  sock_ioctl+0x227/0x6b0 net/socket.c:1375  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_syscall_64+0xcd/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 6099:  kasan_save_stack+0x33/0x60 mm/kasan/common.c:56  kasan_save_track+0x14/0x30 mm/kasan/common.c:77  kasan_save_free_info+0x3b/0x60 mm/kasan/generic.c:584  poison_slab_object mm/kasan/common.c:252 [inline]  __kasan_slab_free+0x5f/0x80 mm/kasan/common.c:284  kasan_slab_free include/linux/kasan.h:234 [inline]  slab_free_hook mm/slub.c:2540 [inline]  slab_free_freelist_hook mm/slub.c:2569 [inline]  slab_free_bulk mm/slub.c:6696 [inline]  kmem_cache_free_bulk mm/slub.c:7383 [inline]  kmem_cache_free_bulk+0x2bf/0x680 mm/slub.c:7362  kfree_bulk include/linux/slab.h:830 [inline]  kvfree_rcu_bulk+0x1b7/0x1e0 mm/slab_common.c:1523  kvfree_rcu_drain_ready mm/slab_common.c:1728 [inline]  kfree_rcu_monitor+0x1d0/0x2f0 mm/slab_common.c:1801  process_one_work+0x9ba/0x1b20 kernel/workqueue.c:3257  process_scheduled_works kernel/workqu ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23054",
                                "url": "https://ubuntu.com/security/CVE-2026-23054",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hv_netvsc: reject RSS hash key programming without RX indirection table  RSS configuration requires a valid RX indirection table. When the device reports a single receive queue, rndis_filter_device_add() does not allocate an indirection table, accepting RSS hash key updates in this state leads to a hang.  Fix this by gating netvsc_set_rxfh() on ndc->rx_table_sz and return -EOPNOTSUPP when the table is absent. This aligns set_rxfh with the device capabilities and prevents incorrect behavior.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23011",
                                "url": "https://ubuntu.com/security/CVE-2026-23011",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: ip_gre: make ipgre_header() robust  Analog to commit db5b4e39c4e6 (\"ip6_gre: make ip6gre_header() robust\")  Over the years, syzbot found many ways to crash the kernel in ipgre_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 ipgre device.  [1] skbuff: skb_under_panic: text:ffffffff89ea3cb7 len:2030915468 put:2030915372 head:ffff888058b43000 data:ffff887fdfa6e194 tail:0x120 end:0x6c0 dev:team0  kernel BUG at net/core/skbuff.c:213 ! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 1 UID: 0 PID: 1322 Comm: kworker/1:9 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025 Workqueue: mld mld_ifc_work  RIP: 0010:skb_panic+0x157/0x160 net/core/skbuff.c:213 Call Trace:  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ipgre_header+0x67/0x290 net/ipv4/ip_gre.c:897   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   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   process_one_work kernel/workqueue.c:3257 [inline]   process_scheduled_works+0xad1/0x1770 kernel/workqueue.c:3340   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23001",
                                "url": "https://ubuntu.com/security/CVE-2026-23001",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix possible UAF in macvlan_forward_source()  Add RCU protection on (struct macvlan_source_entry)->vlan.  Whenever macvlan_hash_del_source() is called, we must clear entry->vlan pointer before RCU grace period starts.  This allows macvlan_forward_source() to skip over entries queued for freeing.  Note that macvlan_dev are already RCU protected, as they are embedded in a standard netdev (netdev_priv(ndev)).  https: //lore.kernel.org/netdev/695fb1e8.050a0220.1c677c.039f.GAE@google.com/T/#u",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23003",
                                "url": "https://ubuntu.com/security/CVE-2026-23003",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv()  Blamed commit did not take care of VLAN encapsulations as spotted by syzbot [1].  Use skb_vlan_inet_prepare() instead of pskb_inet_may_pull().  [1]  BUG: KMSAN: uninit-value in __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]  BUG: KMSAN: uninit-value in INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]  BUG: KMSAN: uninit-value in IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   __INET_ECN_decapsulate include/net/inet_ecn.h:253 [inline]   INET_ECN_decapsulate include/net/inet_ecn.h:275 [inline]   IP6_ECN_decapsulate+0x7a8/0x1fa0 include/net/inet_ecn.h:321   ip6ip6_dscp_ecn_decapsulate+0x16f/0x1b0 net/ipv6/ip6_tunnel.c:729   __ip6_tnl_rcv+0xed9/0x1b50 net/ipv6/ip6_tunnel.c:860   ip6_tnl_rcv+0xc3/0x100 net/ipv6/ip6_tunnel.c:903  gre_rcv+0x1529/0x1b90 net/ipv6/ip6_gre.c:-1   ip6_protocol_deliver_rcu+0x1c89/0x2c60 net/ipv6/ip6_input.c:438   ip6_input_finish+0x1f4/0x4a0 net/ipv6/ip6_input.c:489   NF_HOOK include/linux/netfilter.h:318 [inline]   ip6_input+0x9c/0x330 net/ipv6/ip6_input.c:500   ip6_mc_input+0x7ca/0xc10 net/ipv6/ip6_input.c:590   dst_input include/net/dst.h:474 [inline]   ip6_rcv_finish+0x958/0x990 net/ipv6/ip6_input.c:79   NF_HOOK include/linux/netfilter.h:318 [inline]   ipv6_rcv+0xf1/0x3c0 net/ipv6/ip6_input.c:311   __netif_receive_skb_one_core net/core/dev.c:6139 [inline]   __netif_receive_skb+0x1df/0xac0 net/core/dev.c:6252   netif_receive_skb_internal net/core/dev.c:6338 [inline]   netif_receive_skb+0x57/0x630 net/core/dev.c:6397   tun_rx_batched+0x1df/0x980 drivers/net/tun.c:1485   tun_get_user+0x5c0e/0x6c60 drivers/net/tun.c:1953   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Uninit was created at:   slab_post_alloc_hook mm/slub.c:4960 [inline]   slab_alloc_node mm/slub.c:5263 [inline]   kmem_cache_alloc_node_noprof+0x9e7/0x17a0 mm/slub.c:5315   kmalloc_reserve+0x13c/0x4b0 net/core/skbuff.c:586   __alloc_skb+0x805/0x1040 net/core/skbuff.c:690   alloc_skb include/linux/skbuff.h:1383 [inline]   alloc_skb_with_frags+0xc5/0xa60 net/core/skbuff.c:6712   sock_alloc_send_pskb+0xacc/0xc60 net/core/sock.c:2995   tun_alloc_skb drivers/net/tun.c:1461 [inline]   tun_get_user+0x1142/0x6c60 drivers/net/tun.c:1794   tun_chr_write_iter+0x3e9/0x5c0 drivers/net/tun.c:1999   new_sync_write fs/read_write.c:593 [inline]   vfs_write+0xbe2/0x15d0 fs/read_write.c:686   ksys_write fs/read_write.c:738 [inline]   __do_sys_write fs/read_write.c:749 [inline]   __se_sys_write fs/read_write.c:746 [inline]   __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746   x64_sys_call+0x30ab/0x3e70 arch/x86/include/generated/asm/syscalls_64.h:2   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]   do_syscall_64+0xd3/0xf80 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  CPU: 0 UID: 0 PID: 6465 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(none) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23141",
                                "url": "https://ubuntu.com/security/CVE-2026-23141",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: send: check for inline extents in range_is_hole_in_parent()  Before accessing the disk_bytenr field of a file extent item we need to check if we are dealing with an inline extent. This is because for inline extents their data starts at the offset of the disk_bytenr field. So accessing the disk_bytenr means we are accessing inline data or in case the inline data is less than 8 bytes we can actually cause an invalid memory access if this inline extent item is the first item in the leaf or access metadata from other items.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22998",
                                "url": "https://ubuntu.com/security/CVE-2026-22998",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec  Commit efa56305908b (\"nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length\") added ttag bounds checking and data_offset validation in nvmet_tcp_handle_h2c_data_pdu(), but it did not validate whether the command's data structures (cmd->req.sg and cmd->iov) have been properly initialized before processing H2C_DATA PDUs.  The nvmet_tcp_build_pdu_iovec() function dereferences these pointers without NULL checks. This can be triggered by sending H2C_DATA PDU immediately after the ICREQ/ICRESP handshake, before sending a CONNECT command or NVMe write command.  Attack vectors that trigger NULL pointer dereferences: 1. H2C_DATA PDU sent before CONNECT → both pointers NULL 2. H2C_DATA PDU for READ command → cmd->req.sg allocated, cmd->iov NULL 3. H2C_DATA PDU for uninitialized command slot → both pointers NULL  The fix validates both cmd->req.sg and cmd->iov before calling nvmet_tcp_build_pdu_iovec(). Both checks are required because: - Uninitialized commands: both NULL - READ commands: cmd->req.sg allocated, cmd->iov NULL - WRITE commands: both allocated",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23037",
                                "url": "https://ubuntu.com/security/CVE-2026-23037",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: etas_es58x: allow partial RX URB allocation to succeed  When es58x_alloc_rx_urbs() fails to allocate the requested number of URBs but succeeds in allocating some, it returns an error code. This causes es58x_open() to return early, skipping the cleanup label 'free_urbs', which leads to the anchored URBs being leaked.  As pointed out by maintainer Vincent Mailhol, the driver is designed to handle partial URB allocation gracefully. Therefore, partial allocation should not be treated as a fatal error.  Modify es58x_alloc_rx_urbs() to return 0 if at least one URB has been allocated, restoring the intended behavior and preventing the leak in es58x_open().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23038",
                                "url": "https://ubuntu.com/security/CVE-2026-23038",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node()  In nfs4_ff_alloc_deviceid_node(), if the allocation for ds_versions fails, the function jumps to the out_scratch label without freeing the already allocated dsaddrs list, leading to a memory leak.  Fix this by jumping to the out_err_drain_dsaddrs label, which properly frees the dsaddrs list before cleaning up other resources.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71184",
                                "url": "https://ubuntu.com/security/CVE-2025-71184",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix NULL dereference on root when tracing inode eviction  When evicting an inode the first thing we do is to setup tracing for it, which implies fetching the root's id. But in btrfs_evict_inode() the root might be NULL, as implied in the next check that we do in btrfs_evict_inode().  Hence, we either should set the ->root_objectid to 0 in case the root is NULL, or we move tracing setup after checking that the root is not NULL. Setting the rootid to 0 at least gives us the possibility to trace this call even in the case when the root is NULL, so that's the solution taken here.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "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-2025-71160",
                                "url": "https://ubuntu.com/security/CVE-2025-71160",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: avoid chain re-validation if possible  Hamza Mahfooz reports cpu soft lock-ups in nft_chain_validate():   watchdog: BUG: soft lockup - CPU#1 stuck for 27s! [iptables-nft-re:37547] [..]  RIP: 0010:nft_chain_validate+0xcb/0x110 [nf_tables] [..]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_immediate_validate+0x36/0x50 [nf_tables]   nft_chain_validate+0xc9/0x110 [nf_tables]   nft_table_validate+0x6b/0xb0 [nf_tables]   nf_tables_validate+0x8b/0xa0 [nf_tables]   nf_tables_commit+0x1df/0x1eb0 [nf_tables] [..]  Currently nf_tables will traverse the entire table (chain graph), starting from the entry points (base chains), exploring all possible paths (chain jumps).  But there are cases where we could avoid revalidation.  Consider: 1  input -> j2 -> j3 2  input -> j2 -> j3 3  input -> j1 -> j2 -> j3  Then the second rule does not need to revalidate j2, and, by extension j3, because this was already checked during validation of the first rule. We need to validate it only for rule 3.  This is needed because chain loop detection also ensures we do not exceed the jump stack: Just because we know that j2 is cycle free, its last jump might now exceed the allowed stack size.  We also need to update all reachable chains with the new largest observed call depth.  Care has to be taken to revalidate even if the chain depth won't be an issue: chain validation also ensures that expressions are not called from invalid base chains.  For example, the masquerade expression can only be called from NAT postrouting base chains.  Therefore we also need to keep record of the base chain context (type, hooknum) and revalidate if the chain becomes reachable from a different hook location.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22994",
                                "url": "https://ubuntu.com/security/CVE-2026-22994",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix reference count leak in bpf_prog_test_run_xdp()  syzbot is reporting    unregister_netdevice: waiting for sit0 to become free. Usage count = 2  problem. A debug printk() patch found that a refcount is obtained at xdp_convert_md_to_buff() from bpf_prog_test_run_xdp().  According to commit ec94670fcb3b (\"bpf: Support specifying ingress via xdp_md context in BPF_PROG_TEST_RUN\"), the refcount obtained by xdp_convert_md_to_buff() will be released by xdp_convert_buff_to_md().  Therefore, we can consider that the error handling path introduced by commit 1c1949982524 (\"bpf: introduce frags support to bpf_prog_test_run_xdp()\") forgot to call xdp_convert_buff_to_md().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23140",
                                "url": "https://ubuntu.com/security/CVE-2026-23140",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf, test_run: Subtract size of xdp_frame from allowed metadata size  The xdp_frame structure takes up part of the XDP frame headroom, limiting the size of the metadata. However, in bpf_test_run, we don't take this into account, which makes it possible for userspace to supply a metadata size that is too large (taking up the entire headroom).  If userspace supplies such a large metadata size in live packet mode, the xdp_update_frame_from_buff() call in xdp_test_run_init_page() call will fail, after which packet transmission proceeds with an uninitialised frame structure, leading to the usual Bad Stuff.  The commit in the Fixes tag fixed a related bug where the second check in xdp_update_frame_from_buff() could fail, but did not add any additional constraints on the metadata size. Complete the fix by adding an additional check on the metadata size. Reorder the checks slightly to make the logic clearer and add a comment.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71192",
                                "url": "https://ubuntu.com/security/CVE-2025-71192",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: ac97: fix a double free in snd_ac97_controller_register()  If ac97_add_adapter() fails, put_device() is the correct way to drop the device reference. kfree() is not required. Add kfree() if idr_alloc() fails and in ac97_adapter_release() to do the cleanup.  Found by code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 16:16: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-22979",
                                "url": "https://ubuntu.com/security/CVE-2026-22979",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: fix memory leak in skb_segment_list for GRO packets  When skb_segment_list() is called during packet forwarding, it handles packets that were aggregated by the GRO engine.  Historically, the segmentation logic in skb_segment_list assumes that individual segments are split from a parent SKB and may need to carry their own socket memory accounting. Accordingly, the code transfers truesize from the parent to the newly created segments.  Prior to commit ed4cccef64c1 (\"gro: fix ownership transfer\"), this truesize subtraction in skb_segment_list() was valid because fragments still carry a reference to the original socket.  However, commit ed4cccef64c1 (\"gro: fix ownership transfer\") changed this behavior by ensuring that fraglist entries are explicitly orphaned (skb->sk = NULL) to prevent illegal orphaning later in the stack. This change meant that the entire socket memory charge remained with the head SKB, but the corresponding accounting logic in skb_segment_list() was never updated.  As a result, the current code unconditionally adds each fragment's truesize to delta_truesize and subtracts it from the parent SKB. Since the fragments are no longer charged to the socket, this subtraction results in an effective under-count of memory when the head is freed. This causes sk_wmem_alloc to remain non-zero, preventing socket destruction and leading to a persistent memory leak.  The leak can be observed via KMEMLEAK when tearing down the networking environment:  unreferenced object 0xffff8881e6eb9100 (size 2048):   comm \"ping\", pid 6720, jiffies 4295492526   backtrace:     kmem_cache_alloc_noprof+0x5c6/0x800     sk_prot_alloc+0x5b/0x220     sk_alloc+0x35/0xa00     inet6_create.part.0+0x303/0x10d0     __sock_create+0x248/0x640     __sys_socket+0x11b/0x1d0  Since skb_segment_list() is exclusively used for SKB_GSO_FRAGLIST packets constructed by GRO, the truesize adjustment is removed.  The call to skb_release_head_state() must be preserved. As documented in commit cf673ed0e057 (\"net: fix fraglist segmentation reference count leak\"), it is still required to correctly drop references to SKB extensions that may be overwritten during __copy_skb_header().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15: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-2026-23139",
                                "url": "https://ubuntu.com/security/CVE-2026-23139",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_conncount: update last_gc only when GC has been performed  Currently last_gc is being updated everytime a new connection is tracked, that means that it is updated even if a GC wasn't performed. With a sufficiently high packet rate, it is possible to always bypass the GC, causing the list to grow infinitely.  Update the last_gc value only when a GC has been actually performed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40149",
                                "url": "https://ubuntu.com/security/CVE-2025-40149",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock().  get_netdev_for_sock() is called during setsockopt(), so not under RCU.  Using sk_dst_get(sk)->dev could trigger UAF.  Let's use __sk_dst_get() and dst_dev_rcu().  Note that the only ->ndo_sk_get_lower_dev() user is bond_sk_get_lower_dev(), which uses RCU.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-12 11:15: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-2026-23047",
                                "url": "https://ubuntu.com/security/CVE-2026-23047",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make calc_target() set t->paused, not just clear it  Currently calc_target() clears t->paused if the request shouldn't be paused anymore, but doesn't ever set t->paused even though it's able to determine when the request should be paused.  Setting t->paused is left to __submit_request() which is fine for regular requests but doesn't work for linger requests -- since __submit_request() doesn't operate on linger requests, there is nowhere for lreq->t.paused to be set. One consequence of this is that watches don't get reestablished on paused -> unpaused transitions in cases where requests have been paused long enough for the (paused) unwatch request to time out and for the subsequent (re)watch request to enter the paused state.  On top of the watch not getting reestablished, rbd_reregister_watch() gets stuck with rbd_dev->watch_mutex held:    rbd_register_watch     __rbd_register_watch       ceph_osdc_watch         linger_reg_commit_wait  It's waiting for lreq->reg_commit_wait to be completed, but for that to happen the respective request needs to end up on need_resend_linger list and be kicked when requests are unpaused.  There is no chance for that if the request in question is never marked paused in the first place.  The fact that rbd_dev->watch_mutex remains taken out forever then prevents the image from getting unmapped -- \"rbd unmap\" would inevitably hang in D state on an attempt to grab the mutex.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23136",
                                "url": "https://ubuntu.com/security/CVE-2026-23136",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: reset sparse-read state in osd_fault()  When a fault occurs, the connection is abandoned, reestablished, and any pending operations are retried. The OSD client tracks the progress of a sparse-read reply using a separate state machine, largely independent of the messenger's state.  If a connection is lost mid-payload or the sparse-read state machine returns an error, the sparse-read state is not reset. The OSD client will then interpret the beginning of a new reply as the continuation of the old one. If this makes the sparse-read machinery enter a failure state, it may never recover, producing loops like:    libceph:  [0] got 0 extents   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read   libceph: data len 142248331 != extent len 0   libceph: osd0 (1)...:6801 socket error on read  Therefore, reset the sparse-read state in osd_fault(), ensuring retries start from a clean state.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 16:15: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": "high",
                                "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-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-2025-71183",
                                "url": "https://ubuntu.com/security/CVE-2025-71183",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: always detect conflicting inodes when logging inode refs  After rename exchanging (either with the rename exchange operation or regular renames in multiple non-atomic steps) two inodes and at least one of them is a directory, we can end up with a log tree that contains only of the inodes and after a power failure that can result in an attempt to delete the other inode when it should not because it was not deleted before the power failure. In some case that delete attempt fails when the target inode is a directory that contains a subvolume inside it, since the log replay code is not prepared to deal with directory entries that point to root items (only inode items).  1) We have directories \"dir1\" (inode A) and \"dir2\" (inode B) under the    same parent directory;  2) We have a file (inode C) under directory \"dir1\" (inode A);  3) We have a subvolume inside directory \"dir2\" (inode B);  4) All these inodes were persisted in a past transaction and we are    currently at transaction N;  5) We rename the file (inode C), so at btrfs_log_new_name() we update    inode C's last_unlink_trans to N;  6) We get a rename exchange for \"dir1\" (inode A) and \"dir2\" (inode B),    so after the exchange \"dir1\" is inode B and \"dir2\" is inode A.    During the rename exchange we call btrfs_log_new_name() for inodes    A and B, but because they are directories, we don't update their    last_unlink_trans to N;  7) An fsync against the file (inode C) is done, and because its inode    has a last_unlink_trans with a value of N we log its parent directory    (inode A) (through btrfs_log_all_parents(), called from    btrfs_log_inode_parent()).  8) So we end up with inode B not logged, which now has the old name    of inode A. At copy_inode_items_to_log(), when logging inode A, we    did not check if we had any conflicting inode to log because inode    A has a generation lower than the current transaction (created in    a past transaction);  9) After a power failure, when replaying the log tree, since we find that    inode A has a new name that conflicts with the name of inode B in the    fs tree, we attempt to delete inode B... this is wrong since that    directory was never deleted before the power failure, and because there    is a subvolume inside that directory, attempting to delete it will fail    since replay_dir_deletes() and btrfs_unlink_inode() are not prepared    to deal with dir items that point to roots instead of inodes.     When that happens the mount fails and we get a stack trace like the    following:     [87.2314] BTRFS info (device dm-0): start tree-log replay    [87.2318] BTRFS critical (device dm-0): failed to delete reference to subvol, root 5 inode 256 parent 259    [87.2332] ------------[ cut here ]------------    [87.2338] BTRFS: Transaction aborted (error -2)    [87.2346] WARNING: CPU: 1 PID: 638968 at fs/btrfs/inode.c:4345 __btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2368] Modules linked in: btrfs loop dm_thin_pool (...)    [87.2470] CPU: 1 UID: 0 PID: 638968 Comm: mount Tainted: G        W          6.18.0-rc7-btrfs-next-218+ #2 PREEMPT(full)    [87.2489] Tainted: [W]=WARN    [87.2494] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014    [87.2514] RIP: 0010:__btrfs_unlink_inode+0x416/0x440 [btrfs]    [87.2538] Code: c0 89 04 24 (...)    [87.2568] RSP: 0018:ffffc0e741f4b9b8 EFLAGS: 00010286    [87.2574] RAX: 0000000000000000 RBX: ffff9d3ec8a6cf60 RCX: 0000000000000000    [87.2582] RDX: 0000000000000002 RSI: ffffffff84ab45a1 RDI: 00000000ffffffff    [87.2591] RBP: ffff9d3ec8a6ef20 R08: 0000000000000000 R09: ffffc0e741f4b840    [87.2599] R10: ffff9d45dc1fffa8 R11: 0000000000000003 R12: ffff9d3ee26d77e0    [87.2608] R13: ffffc0e741f4ba98 R14: ffff9d4458040800 R15: ffff9d44b6b7ca10    [87.2618] FS:  00007f7b9603a840(0000) GS:ffff9d4658982000(0000) knlGS:0000000000000000    [87. ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16: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-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-2024-50004",
                                "url": "https://ubuntu.com/security/CVE-2024-50004",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: update DML2 policy EnhancedPrefetchScheduleAccelerationFinal DCN35  [WHY & HOW] Mismatch in DCN35 DML2 cause bw validation failed to acquire unexpected DPP pipe to cause grey screen and system hang. Remove EnhancedPrefetchScheduleAccelerationFinal value override to match HW spec.  (cherry picked from commit 9dad21f910fcea2bdcff4af46159101d7f9cd8ba)",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-10-21 19:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23274",
                                "url": "https://ubuntu.com/security/CVE-2026-23274",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels  IDLETIMER revision 0 rules reuse existing timers by label and always call mod_timer() on timer->timer.  If the label was created first by revision 1 with XT_IDLETIMER_ALARM, the object uses alarm timer semantics and timer->timer is never initialized. Reusing that object from revision 0 causes mod_timer() on an uninitialized timer_list, triggering debugobjects warnings and possible panic when panic_on_warn=1.  Fix this by rejecting revision 0 rule insertion when an existing timer with the same label is of ALARM type.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-20 09:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23351",
                                "url": "https://ubuntu.com/security/CVE-2026-23351",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_set_pipapo: split gc into unlink and reclaim phase  Yiming Qian reports Use-after-free in the pipapo set type:   Under a large number of expired elements, commit-time GC can run for a very   long time in a non-preemptible context, triggering soft lockup warnings and   RCU stall reports (local denial of service).  We must split GC in an unlink and a reclaim phase.  We cannot queue elements for freeing until pointers have been swapped. Expired elements are still exposed to both the packet path and userspace dumpers via the live copy of the data structure.  call_rcu() does not protect us: dump operations or element lookups starting after call_rcu has fired can still observe the free'd element, unless the commit phase has made enough progress to swap the clone and live pointers before any new reader has picked up the old version.  This a similar approach as done recently for the rbtree backend in commit 35f83a75529a (\"netfilter: nft_set_rbtree: don't gc elements on insert\").",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-25 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23231",
                                "url": "https://ubuntu.com/security/CVE-2026-23231",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-03-04 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23209",
                                "url": "https://ubuntu.com/security/CVE-2026-23209",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23112",
                                "url": "https://ubuntu.com/security/CVE-2026-23112",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-114.114~22.04.1 -proposed tracker (LP: #2147981)",
                            "",
                            "  [ Ubuntu: 6.8.0-114.114 ]",
                            "",
                            "  * noble/linux: 6.8.0-114.114 -proposed tracker (LP: #2148397)",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465)",
                            "    - SAUCE: Fix skb_vlan_inet_prepare() usage",
                            "",
                            "  [ Ubuntu: 6.8.0-112.112 ]",
                            "",
                            "  * noble/linux: 6.8.0-112.112 -proposed tracker (LP: #2147982)",
                            "  * Canonical Kmod 2025 key rotation (LP: #2147447)",
                            "    - [Packaging] ubuntu-compatible-signing -- make Ubuntu-Compatible-Signing",
                            "      extensible",
                            "    - [Packaging] ubuntu-compatible-signing -- allow consumption of positive",
                            "      certs",
                            "    - [Packaging] ubuntu-compatible-signing -- report the livepatch:2025 key",
                            "    - [Config] prepare for Canonical Kmod key rotation",
                            "    - [Packaging] ubuntu-compatible-signing -- report the kmod:2025 key",
                            "  * Remount ext4 to readonly with data=journal mode may dump call trace",
                            "    (LP: #2147400)",
                            "    - ext4: fix stale xarray tags after writeback",
                            "  * Compile error due to nonexistent struct member with CONFIG_PCI_EPF_TEST",
                            "    (LP: #2147065)",
                            "    - SAUCE: Revert \"PCI: endpoint: pci-epf-test: Limit PCIe BAR size for",
                            "      fixed BARs\"",
                            "  * BUG: kernel NULL pointer dereference in amdgpu (LP: #2144577)",
                            "    - drm/amdgpu: validate the flush_gpu_tlb_pasid()",
                            "    - drm/amdgpu: Fix validating flush_gpu_tlb_pasid()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841)",
                            "    - x86/kfence: fix booting on 32bit non-PAE systems",
                            "    - platform/x86: intel_telemetry: Fix swapped arrays in PSS output",
                            "    - pmdomain: qcom: rpmpd: fix off-by-one error in clamping to the highest",
                            "      state",
                            "    - pmdomain: imx8mp-blk-ctrl: Keep gpc power domain on for system wakeup",
                            "    - pmdomain: imx: gpcv2: Fix the imx8mm gpu hang due to wrong adb400 reset",
                            "    - pmdomain: imx8mp-blk-ctrl: Keep usb phy power domain on for system",
                            "      wakeup",
                            "    - rbd: check for EOD after exclusive lock is ensured to be held",
                            "    - ARM: 9468/1: fix memset64() on big-endian",
                            "    - hfsplus: fix slab-out-of-bounds read in hfsplus_uni2asc()",
                            "    - binder: fix BR_FROZEN_REPLY error log",
                            "    - binderfs: fix ida_alloc_max() upper bound",
                            "    - KVM: selftests: Add -U_FORTIFY_SOURCE to avoid some unpredictable test",
                            "      failures",
                            "    - tracing: Fix ftrace event field alignments",
                            "    - net: usb: sr9700: support devices with virtual driver CD",
                            "    - block,bfq: fix aux stat accumulation destination",
                            "    - LoongArch: Set correct protection_map[] for VM_NONE/VM_SHARED",
                            "    - HID: intel-ish-hid: Update ishtp bus match to support device ID table",
                            "    - HID: multitouch: add MT_QUIRK_STICKY_FINGERS to MT_CLS_VTL",
                            "    - HID: intel-ish-hid: Reset enum_devices_done before enumeration",
                            "    - HID: playstation: Center initial joystick axes to prevent spurious",
                            "      events",
                            "    - ALSA: hda/realtek: add HP Laptop 15s-eq1xxx mute LED quirk",
                            "    - netfilter: replace -EEXIST with -EBUSY",
                            "    - HID: quirks: Add another Chicony HP 5MP Cameras to hid_ignore_list",
                            "    - HID: Apply quirk HID_QUIRK_ALWAYS_POLL to Edifier QR30 (2d99:a101)",
                            "    - ring-buffer: Avoid softlockup in ring_buffer_resize() during memory free",
                            "    - wifi: mac80211: collect station statistics earlier when disconnect",
                            "    - ASoC: davinci-evm: Fix reference leak in davinci_evm_probe",
                            "    - ASoC: amd: yc: Fix microphone on ASUS M6500RE",
                            "    - ASoC: tlv320adcx140: Propagate error codes during probe",
                            "    - spi: hisi-kunpeng: Fixed the wrong debugfs node name in hisi_spi debugfs",
                            "      initialization",
                            "    - wifi: cfg80211: Fix bitrate calculation overflow for HE rates",
                            "    - ALSA: hda/realtek: Fix headset mic for TongFang X6AR55xU",
                            "    - wifi: mac80211: correctly check if CSA is active",
                            "    - wifi: mac80211: don't increment crypto_tx_tailroom_needed_cnt twice",
                            "    - platform/x86: intel_telemetry: Fix PSS event register mask",
                            "    - platform/x86: hp-bioscfg: Skip empty attribute names",
                            "    - net: add skb_header_pointer_careful() helper",
                            "    - net: don't touch dev->stats in BPF redirect paths",
                            "    - tipc: use kfree_sensitive() for session key material",
                            "    - net: ethernet: adi: adin1110: Check return value of",
                            "      devm_gpiod_get_optional() in adin1110_check_spi()",
                            "    - drm/mgag200: fix mgag200_bmc_stop_scanout()",
                            "    - hwmon: (occ) Mark occ_init_attribute() as __printf",
                            "    - ipv6: Fix ECMP sibling count mismatch when clearing RTF_ADDRCONF",
                            "    - gve: Correct ethtool rx_dropped calculation",
                            "    - spi: tegra210-quad: Return IRQ_HANDLED when timeout already processed",
                            "      transfer",
                            "    - spi: tegra210-quad: Move curr_xfer read inside spinlock",
                            "    - spi: tegra210-quad: Protect curr_xfer assignment in",
                            "      tegra_qspi_setup_transfer_one",
                            "    - spi: tegra210-quad: Protect curr_xfer in tegra_qspi_combined_seq_xfer",
                            "    - spi: tegra210-quad: Protect curr_xfer clearing in",
                            "      tegra_qspi_non_combined_seq_xfer",
                            "    - spi: tegra114: Preserve SPI mode bits in def_command1_reg",
                            "    - ALSA: hda/realtek: Really fix headset mic for TongFang X6AR55xU.",
                            "    - PCI/ERR: Ensure error recoverability at all times",
                            "    - ALSA: hda/realtek: Add quirk for Acer Nitro AN517-55",
                            "    - PCI: qcom: Remove ASPM L0s support for MSM8996 SoC",
                            "    - HID: logitech: add HID++ support for Logitech MX Anywhere 3S",
                            "    - ALSA: hda/realtek: ALC269 fixup for Lenovo Yoga Book 9i 13IRU8 audio",
                            "    - net: phy: add phy_interface_weight()",
                            "    - net: phy: add phy_interface_copy()",
                            "    - net: sfp: pre-parse the module support",
                            "    - net: sfp: enhance quirk for Fibrestore 2.5G copper SFP module",
                            "    - net: sfp: convert sfp quirks to modify struct sfp_module_support",
                            "    - net: sfp: Fix quirk for Ubiquiti U-Fiber Instant SFP module",
                            "    - drm/amd/display: fix wrong color value mapping on MCM shaper LUT",
                            "    - drm/xe/query: Fix topology query pointer advance",
                            "    - ALSA: usb-audio: fix broken logic in snd_audigy2nx_led_update()",
                            "    - gpiolib-acpi: Update file references in the Documentation and",
                            "      MAINTAINERS",
                            "    - Upstream stable to v6.6.124, v6.12.70",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23214",
                            "    - btrfs: reject new transactions if the fs is fully read-only",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23213",
                            "    - drm/amd/pm: Disable MMIO access during SMU Mode 1 reset",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71225",
                            "    - md: suspend array while updating raid_disks via sysfs",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-68823",
                            "    - ublk: fix deadlock when reading partition table",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23191",
                            "    - ALSA: aloop: Fix racy access at PCM trigger",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23215",
                            "    - x86/vmware: Fix hypercall clobbers",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23182",
                            "    - spi: tegra: Fix a memory leak in tegra_slink_probe()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23190",
                            "    - ASoC: amd: fix memory leak in acp3x pdm dma ops",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23254",
                            "    - net: gro: fix outer network offset",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23180",
                            "    - dpaa2-switch: add bounds check for if_id in IRQ handler",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23256",
                            "    - net: liquidio: Fix off-by-one error in VF setup_nic_devices() cleanup",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23257",
                            "    - net: liquidio: Fix off-by-one error in PF setup_nic_devices() cleanup",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23258",
                            "    - net: liquidio: Initialize netdev pointer before queue setup",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23206",
                            "    - dpaa2-switch: prevent ZERO_SIZE_PTR dereference when num_ifs is zero",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23204",
                            "    - net/sched: cls_u32: use skb_header_pointer_careful()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23205",
                            "    - smb/client: fix memory leak in smb2_open_file()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23176",
                            "    - platform/x86: toshiba_haps: Fix memory leaks in add/remove routines",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23216",
                            "    - scsi: target: iscsi: Fix use-after-free in iscsit_dec_conn_usage_count()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23193",
                            "    - scsi: target: iscsi: Fix use-after-free in",
                            "      iscsit_dec_session_usage_count()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23260",
                            "    - regmap: maple: free entry on mas_store_gfp() failure",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23179",
                            "    - nvmet-tcp: fixup hang in nvmet_tcp_listen_data_ready()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23261",
                            "    - nvme-fc: release admin tagset if init fails",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23178",
                            "    - HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71268",
                            "    - btrfs: fix reservation leak in some error paths when inserting inline",
                            "      extent",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71270",
                            "    - LoongArch: Enable exception fixup for specific ADE subcode",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71220",
                            "    - smb/server: call ksmbd_session_rpc_close() on error path in",
                            "      create_smb2_pipe()",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71222",
                            "    - wifi: wlcore: ensure skb headroom before skb_push",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-71224",
                            "    - wifi: mac80211: ocb: skip rx_no_sta when interface is not joined",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23262",
                            "    - gve: Fix stats report corruption on queue count change",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2025-38201",
                            "    - netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23198",
                            "    - KVM: Don't clobber irqfd routing type when deassigning irqfd",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23264",
                            "    - Revert \"drm/amd: Check if ASPM is enabled from PCIe subsystem\"",
                            "  * Noble update: upstream stable patchset 2026-04-10 (LP: #2147841) //",
                            "    CVE-2026-23187",
                            "    - pmdomain: imx8m-blk-ctrl: fix out-of-range access of bc->domains",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543)",
                            "    - net/mlx5: Fix memory leak in esw_acl_ingress_lgcy_setup()",
                            "    - can: gs_usb: gs_usb_receive_bulk_callback(): fix error message",
                            "    - net: bcmasp: fix early exit leak with fixed phy",
                            "    - net: mvpp2: cls: Fix memory leak in mvpp2_ethtool_cls_rule_ins()",
                            "    - ipv6: use the right ifindex when replying to icmpv6 from localhost",
                            "    - ice: stop counting UDP csum mismatch as rx_errors",
                            "    - net/mlx5e: Report rx_discards_phy via rx_dropped",
                            "    - net/mlx5e: Account for netdev stats in ndo_get_stats64",
                            "    - net: bridge: fix static key check",
                            "    - net/mlx5e: Skip ESN replay window setup for IPsec crypto offload",
                            "    - scsi: firewire: sbp-target: Fix overflow in sbp_make_tpg()",
                            "    - ASoC: Intel: sof_es8336: fix headphone GPIO logic inversion",
                            "    - gpiolib: acpi: use BIT_ULL() for u64 mask in address space handler",
                            "    - dma/pool: distinguish between missing and exhausted atomic pools",
                            "    - pinctrl: meson: mark the GPIO controller as sleeping",
                            "    - riscv: compat: fix COMPAT_UTS_MACHINE definition",
                            "    - rust: kbuild: give `--config-path` to `rustfmt` in `.rsi` target",
                            "    - ASoC: fsl: imx-card: Do not force slot width to sample width",
                            "    - scsi: be2iscsi: Fix a memory leak in beiscsi_boot_get_sinfo()",
                            "    - ASoC: amd: yc: Add DMI quirk for Acer TravelMate P216-41-TCO",
                            "    - gpio: pca953x: mask interrupts in irq shutdown",
                            "    - scsi: qla2xxx: edif: Fix dma_free_coherent() size",
                            "    - mptcp: only reset subflow errors when propagated",
                            "    - selftests: mptcp: check no dup close events after error",
                            "    - selftests: mptcp: check subflow errors in close events",
                            "    - selftests: mptcp: join: fix local endp not being tracked",
                            "    - scripts: generate_rust_analyzer: Add compiler_builtins -> core dep",
                            "    - drm/amdgpu/soc21: fix xclk for APUs",
                            "    - drm/amdgpu/gfx10: fix wptr reset in KGQ init",
                            "    - drm/amdgpu/gfx11: fix wptr reset in KGQ init",
                            "    - mm/kfence: randomize the freelist on initialization",
                            "    - arm64/fpsimd: signal: Mandate SVE payload for streaming-mode state",
                            "    - arm64/fpsimd: signal: Consistently read FPSIMD context",
                            "    - btrfs: prevent use-after-free on page private data in",
                            "      btrfs_subpage_clear_uptodate()",
                            "    - net/sched: act_ife: convert comma to semicolon",
                            "    - pinctrl: lpass-lpi: implement .get_direction() for the GPIO driver",
                            "    - drm/msm/a6xx: fix bogus hwcg register updates",
                            "    - writeback: fix 100% CPU usage when dirtytime_expire_interval is 0",
                            "    - mptcp: avoid dup SUB_CLOSED events after disconnect",
                            "    - ksmbd: fix recursive locking in RPC handle list access",
                            "    - bpf/selftests: test_select_reuseport_kern: Remove unused header",
                            "    - can: at91_can: Fix memory leak in at91_can_probe()",
                            "    - net: phy: micrel: fix clk warning when removing the driver",
                            "    - net/mlx5: fs, Fix inverted cap check in tx flow table root disconnect",
                            "    - net/mlx5: Initialize events outside devlink lock",
                            "    - net/mlx5: Fix vhca_id access call trace use before alloc",
                            "    - bcache: fix improper use of bi_end_io",
                            "    - bcache: use bio cloning for detached device requests",
                            "    - bcache: fix I/O accounting leak in detached_dev_do_request",
                            "    - gpio: rockchip: Stop calling pinctrl for set_direction",
                            "    - mm/memory-failure: improve memory failure action_result messages",
                            "    - mm/memory-failure: fix redundant updates for already poisoned pages",
                            "    - mm/memory-failure: fix missing ->mf_stats count in hugetlb poison",
                            "    - mm/memory-failure: teach kill_accessing_process to accept hugetlb tail",
                            "      page pfn",
                            "    - gpiolib: acpi: Fix potential out-of-boundary left shift",
                            "    - rust: kbuild: support `-Cjump-tables=n` for Rust 1.93.0",
                            "    - pinctrl: qcom: sm8350-lpass-lpi: Merge with SC7280 to fix I2S2 and SWR",
                            "      TX pins",
                            "    - [Config] remove PINCTRL_SM8350_LPASS_LPI",
                            "    - Upstream stable to v6.6.123, v6.12.69",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23148",
                            "    - nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23166",
                            "    - ice: Fix NULL pointer dereference in ice_vsi_set_napi_queues",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23151",
                            "    - Bluetooth: MGMT: Fix memory leak in set_ssp_complete",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23163",
                            "    - drm/amdgpu: fix NULL pointer dereference in",
                            "      amdgpu_gmc_filter_faults_remove",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23159",
                            "    - perf: sched: Fix perf crash with new is_user_task() helper",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2024-58096",
                            "    - wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2025-40039",
                            "    - ksmbd: Fix race condition in RPC handle list access",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23093",
                            "    - ksmbd: smbd: fix dma_unmap_sg() nents",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23102",
                            "    - arm64/fpsimd: signal: Fix restoration of SVE context",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23170",
                            "    - drm/imx/tve: fix probe device leak",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23168",
                            "    - flex_proportions: make fprop_new_period() hardirq safe",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23156",
                            "    - efivarfs: fix error propagation in efivar_entry_get()",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23167",
                            "    - nfc: nci: Fix race between rfkill and nci_unregister_device().",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23173",
                            "    - net/mlx5e: TC, delete flows only for existing peers",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23150",
                            "    - nfc: llcp: Fix memleak in nfc_llcp_send_ui_frame().",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23164",
                            "    - rocker: fix memory leak in rocker_world_port_post_fini()",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23172",
                            "    - net: wwan: t7xx: fix potential skb->frags overflow in RX path",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23212",
                            "    - bonding: annotate data-races around slave->last_rx",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23160",
                            "    - octeon_ep: Fix memory leak in octep_device_setup()",
                            "  * Noble update: upstream stable patchset 2026-04-08 (LP: #2147543) //",
                            "    CVE-2026-23146",
                            "    - Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work",
                            "  * CVE-2026-23394",
                            "    - af_unix: Give up GC if MSG_PEEK intervened.",
                            "  * [SRU] MIPI camera is not working after upgrading to 6.17-oem",
                            "    (LP: #2145171)",
                            "    - SAUCE: ACPI: respect items already in honor_dep before skipping",
                            "  * ADATA SU680 causes repeated SATA resets and I/O errors on Ubuntu unless",
                            "    link power management is forced to max_performance (LP: #2144060)",
                            "    - ata: libata-core: disable LPM on ADATA SU680 SSD",
                            "  *  intel_idle: add Clearwater Forest SoC support (LP: #2144006)",
                            "    - intel_idle: add Clearwater Forest SoC support",
                            "  * Noble kernel 6.8.0-108 does not compile when KASAN enabled (LP: #2144914)",
                            "    - mm/kasan: fix incorrect unpoisoning in vrealloc for KASAN",
                            "  * Generic noble linux throws warning from file tegra-i2c.c (LP: #2143152)",
                            "    - i2c: tegra: Use internal reset when reset property is not available",
                            "  * [SRU] Duplicated entries in /proc/<pid>/mountinfo (LP: #2143083)",
                            "    - namespace: fix proc mount iteration",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465)",
                            "    - firmware: imx: scu-irq: Set mu_resource_id before get handle",
                            "    - efi/cper: Fix cper_bits_to_str buffer handling and return value",
                            "    - ASoC: codecs: wsa884x: fix codec initialisation",
                            "    - xfrm: Fix inner mode lookup in tunnel mode GSO segmentation",
                            "    - net: bridge: annotate data-races around fdb->{updated,used}",
                            "    - net: update netdev_lock_{type,name}",
                            "    - vsock/test: add a final full barrier after run all tests",
                            "    - net/mlx5e: Restore destroying state bit after profile cleanup",
                            "    - btrfs: store fs_info in space_info",
                            "    - btrfs: factor out init_space_info() from create_space_info()",
                            "    - btrfs: factor out check_removing_space_info() from",
                            "      btrfs_free_block_groups()",
                            "    - btrfs: introduce btrfs_space_info sub-group",
                            "    - btrfs: fix memory leaks in create_space_info() error paths",
                            "    - selftests: drv-net: fix RPS mask handling for high CPU numbers",
                            "    - ASoC: tlv320adcx140: fix word length",
                            "    - textsearch: describe @list member in ts_ops search",
                            "    - mm, kfence: describe @slab parameter in __kfence_obj_info()",
                            "    - dmaengine: xilinx_dma: Fix uninitialized addr_width when",
                            "      \"xlnx,addrwidth\" property is missing",
                            "    - phy: fsl-imx8mq-usb: Clear the PCS_TX_SWING_FULL field before using it",
                            "    - phy: phy-snps-eusb2: refactor constructs names",
                            "    - phy: drop probe registration printks",
                            "    - phy: broadcom: ns-usb3: Fix Wvoid-pointer-to-enum-cast warning (again)",
                            "    - i2c: qcom-geni: make sure I2C hub controllers can't use SE DMA",
                            "    - HID: usbhid: paper over wrong bNumDescriptor field",
                            "    - scsi: core: Fix error handler encryption support",
                            "    - ALSA: pcm: Improve the fix for race of buffer access at PCM OSS layer",
                            "    - can: ctucanfd: fix SSP_SRC in cases when bit-rate is higher than 1 MBit.",
                            "    - x86/kaslr: Recognize all ZONE_DEVICE users as physaddr consumers",
                            "    - phy: rockchip: inno-usb2: fix communication disruption in gadget mode",
                            "    - phy: freescale: imx8m-pcie: assert phy reset during power on",
                            "    - phy: rockchip: inno-usb2: fix disconnection in gadget mode",
                            "    - phy: tegra: xusb: Explicitly configure HS_DISCON_LEVEL to 0x7",
                            "    - usb: dwc3: Check for USB4 IP_NAME",
                            "    - usb: core: add USB_QUIRK_NO_BOS for devices that hang on BOS descriptor",
                            "    - USB: OHCI/UHCI: Add soft dependencies on ehci_platform",
                            "    - USB: serial: option: add Telit LE910 MBIM composition",
                            "    - USB: serial: ftdi_sio: add support for PICAXE AXE027 cable",
                            "    - nvme-pci: disable secondary temp for Wodposit WPBSNM8",
                            "    - hrtimer: Fix softirq base check in update_needs_ipi()",
                            "    - EDAC/x38: Fix a resource leak in x38_probe1()",
                            "    - EDAC/i3200: Fix a resource leak in i3200_probe1()",
                            "    - tcpm: allow looking for role_sw device in the main node",
                            "    - x86/resctrl: Add missing resctrl initialization for Hygon",
                            "    - x86/resctrl: Fix memory bandwidth counter width for Hygon",
                            "    - mm/page_alloc: make percpu_pagelist_high_fraction reads lock-free",
                            "    - LoongArch: Fix PMU counter allocation for mixed-type event groups",
                            "    - drm/amd/display: Bump the HDMI clock to 340MHz",
                            "    - drm/amd: Clean up kfd node on surprise disconnect",
                            "    - drm/amdkfd: fix a memory leak in device_queue_manager_init()",
                            "    - drm/nouveau/disp/nv50-: Set lock_core in curs507a_prepare",
                            "    - drm/vmwgfx: Fix an error return check in vmw_compat_shader_add()",
                            "    - dmaengine: apple-admac: Add \"apple,t8103-admac\" compatible",
                            "    - dmaengine: sh: rz-dmac: Fix rz_dmac_terminate_all()",
                            "    - dmaengine: ti: dma-crossbar: fix device leak on dra7x route allocation",
                            "    - dmaengine: ti: k3-udma: fix device leak on udma lookup",
                            "    - io_uring: move local task_work in exit cancel loop",
                            "    - posix-clock: Store file pointer in struct posix_clock_context",
                            "    - ptp: Add PHC file mode checks. Allow RO adjtime() without FMODE_WRITE.",
                            "    - selftest/ptp: update ptp selftest to exercise the gettimex options",
                            "    - testptp: Add option to open PHC in readonly mode",
                            "    - arm64: dts: qcom: sc8280xp: Add missing VDD_MXC links",
                            "    - hyperv-tlfs: Change prefix of generic HV_REGISTER_* MSRs to HV_MSR_*",
                            "    - Drivers: hv: Always do Hyper-V panic notification in hv_kmsg_dump()",
                            "    - btrfs: fix missing fields in superblock backup with BLOCK_GROUP_TREE",
                            "    - dt-bindings: power: qcom,rpmpd: document the SM8750 RPMh Power Domains",
                            "    - dt-bindings: power: qcom,rpmpd: add Turbo L5 corner",
                            "    - dt-bindings: power: qcom-rpmpd: split RPMh domains definitions",
                            "    - dt-bindings: power: qcom,rpmpd: Add SC8280XP_MXC_AO",
                            "    - pmdomain: qcom: rpmhpd: Add MXC to SC8280XP",
                            "    - ata: libata: Add cpr_log to ata_dev_print_features() early return",
                            "    - ata: libata-core: Introduce ata_dev_config_lpm()",
                            "    - ata: libata: Call ata_dev_config_lpm() for ATAPI devices",
                            "    - ata: libata: Print features also for ATAPI devices",
                            "    - ice: initialize ring_stats->syncp",
                            "    - ice: Avoid detrimental cleanup for bond during interface stop",
                            "    - igc: fix race condition in TX timestamp read for register 0",
                            "    - net: usb: dm9601: remove broken SR9700 support",
                            "    - selftests: net: fib-onlink-tests: Convert to use namespaces by default",
                            "    - can: gs_usb: gs_usb_receive_bulk_callback(): unanchor URL on",
                            "      usb_submit_urb() error",
                            "    - amd-xgbe: avoid misleading per-packet error log",
                            "    - tools: ynl: Specify --no-line-number in ynl-regen.sh.",
                            "    - veth: fix data race in veth_get_ethtool_stats",
                            "    - octeontx2: cn10k: fix RX flowid TCAM mask handling",
                            "    - serial: 8250_pci: Fix broken RS485 for F81504/508/512",
                            "    - comedi: dmm32at: serialize use of paged registers",
                            "    - w1: fix redundant counter decrement in w1_attach_slave_device()",
                            "    - Revert \"nfc/nci: Add the inconsistency check between the input data",
                            "      length and count\"",
                            "    - Input: i8042 - add quirks for MECHREVO Wujie 15X Pro",
                            "    - Input: i8042 - add quirk for ASUS Zenbook UX425QA_UM425QA",
                            "    - scsi: storvsc: Process unsupported MODE_SENSE_10",
                            "    - arm64: dts: rockchip: remove dangerous max-link-speed from helios64",
                            "    - arm64: dts: rockchip: Fix voltage threshold for volume keys for",
                            "      Pinephone Pro",
                            "    - x86/kfence: avoid writing L1TF-vulnerable PTEs",
                            "    - comedi: Fix getting range information for subdevices 16 to 255",
                            "    - iio: adc: ad7280a: handle spi_setup() errors in probe()",
                            "    - kconfig: fix static linking of nconf",
                            "    - riscv: clocksource: Fix stimecmp update hazard on RV32",
                            "    - ALSA: usb: Increase volume range that triggers a warning",
                            "    - net: hns3: fix data race in hns3_fetch_stats",
                            "    - be2net: fix data race in be_get_new_eqd",
                            "    - net: hns3: fix wrong GENMASK() for HCLGE_FD_AD_COUNTER_NUM_M",
                            "    - net: hns3: fix the HCLGE_FD_AD_NXT_KEY error setting issue",
                            "    - usbnet: limit max_mtu based on device's hard_mtu",
                            "    - drm/amd/pm: Don't clear SI SMC table when setting power limit",
                            "    - drm/amd/pm: Workaround SI powertune issue on Radeon 430 (v2)",
                            "    - selftests: net: amt: wait longer for connection before sending packets",
                            "    - net: dsa: fix off-by-one in maximum bridge ID determination",
                            "    - octeontx2-af: Fix error handling",
                            "    - net: openvswitch: fix data race in ovs_vport_get_upcall_stats",
                            "    - vsock/test: fix seqpacket message bounds test",
                            "    - x86: make page fault handling disable interrupts properly",
                            "    - of: fix reference count leak in of_alias_scan()",
                            "    - of: platform: Use default match table for /firmware",
                            "    - iio: accel: iis328dq: fix gain values",
                            "    - iio: adc: ad9467: fix ad9434 vref mask",
                            "    - iio: chemical: scd4x: fix reported channel endianness",
                            "    - iio: dac: ad5686: add AD5695R to ad5686_chip_info_tbl",
                            "    - mmc: rtsx_pci_sdmmc: implement sdmmc_card_busy function",
                            "    - wifi: mwifiex: Fix a loop in mwifiex_update_ampdu_rxwinsize()",
                            "    - octeontx2: Fix otx2_dma_map_page() error return code",
                            "    - slimbus: core: fix runtime PM imbalance on report present",
                            "    - platform/x86: hp-bioscfg: Fix automatic module loading",
                            "    - perf/x86/intel: Do not enable BTS for guests",
                            "    - selftests/bpf: Check for timeout in perf_link test",
                            "    - mm/damon/sysfs-scheme: cleanup quotas subdirs on scheme dir setup",
                            "      failure",
                            "    - iio: core: add missing mutex_destroy in iio_dev_release()",
                            "    - iio: core: add separate lockdep class for info_exist_lock",
                            "    - mm/rmap: fix two comments related to huge_pmd_unshare()",
                            "    - arm64: dts: rockchip: remove redundant max-link-speed from nanopi-r4s",
                            "    - iio: adc: exynos_adc: fix OF populate on driver rebind",
                            "    - dmaengine: stm32: dmamux: fix OF node leak on route allocation failure",
                            "    - mm: kmsan: fix poisoning of high-order non-compound pages",
                            "    - phy: phy-rockchip-inno-usb2: Use dev_err_probe() in the probe path",
                            "    - ASoC: codecs: wsa881x: Drop unused version readout",
                            "    - ASoC: codecs: wsa881x: fix unnecessary initialisation",
                            "    - ASoC: codecs: wsa883x: fix unnecessary initialisation",
                            "    - nvme-fc: rename free_ctrl callback to match name pattern",
                            "    - nvme-pci: do not directly handle subsys reset fallout",
                            "    - nvme: fix PCIe subsystem reset controller state transition",
                            "    - net: phy: fix phy_uses_state_machine()",
                            "    - pnfs/blocklayout: Fix memory leak in bl_parse_scsi()",
                            "    - drm/vmwgfx: Merge vmw_bo_release and vmw_bo_free functions",
                            "    - ALSA: hda/cirrus_scodec_test: Fix incorrect setup of gpiochip",
                            "    - ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type",
                            "    - selftests/landlock: Fix TCP bind(AF_UNSPEC) test case",
                            "    - xfs: Fix the return value of xfs_rtcopy_summary()",
                            "    - phy: ti: gmii-sel: fix regmap leak on probe failure",
                            "    - LoongArch: dts: loongson-2k0500: Add default interrupt controller",
                            "      address cells",
                            "    - LoongArch: dts: loongson-2k1000: Add default interrupt controller",
                            "      address cells",
                            "    - LoongArch: dts: loongson-2k1000: Fix i2c-gpio node names",
                            "    - LoongArch: dts: loongson-2k2000: Add default interrupt controller",
                            "      address cells",
                            "    - HID: intel-ish-hid: Use dedicated unbound workqueues to prevent resume",
                            "      blocking",
                            "    - HID: intel-ish-hid: Fix -Wcast-function-type-strict in",
                            "      devm_ishtp_alloc_workqueue()",
                            "    - xfs: set max_agbno to allow sparse alloc of last full inode chunk",
                            "    - selftests/bpf: Test invalid narrower ctx load",
                            "    - mm/page_alloc/vmstat: simplify refresh_cpu_vm_stats change detection",
                            "    - mm/page_alloc: batch page freeing in decay_pcp_high",
                            "    - ata: libata-sata: Improve link_power_management_supported sysfs",
                            "      attribute",
                            "    - igc: Restore default Qbv schedule when changing channels",
                            "    - vsock/virtio: Coalesce only linear skb",
                            "    - platform/x86/amd: Fix memory leak in wbrf_record()",
                            "    - drm/imagination: Wait for FW trace update command completion",
                            "    - ice: Fix persistent failure in ice_get_rxfh",
                            "    - sched/fair: Fix pelt clock sync when entering idle",
                            "    - drm/nouveau: add missing DCB connector types",
                            "    - drm/nouveau: implement missing DCB connector types; gracefully handle",
                            "      unknown connectors",
                            "    - dpll: Prevent duplicate registrations",
                            "    - mei: trace: treat reg parameter as string",
                            "    - s390/ap: Fix wrong APQN fill calculation",
                            "    - net: sfp: add potron quirk to the H-COM SPP425H-GAB4 SFP+ Stick",
                            "    - gpio: cdev: Correct return code on memory allocation failure",
                            "    - dmaengine: ti: k3-udma: Enable second resource range for BCDMA and",
                            "      PKTDMA",
                            "    - exfat: fix refcount leak in exfat_find",
                            "    - accel/ivpu: Fix race condition when unbinding BOs",
                            "    - btrfs: fix racy bitfield write in btrfs_clear_space_info_full()",
                            "    - vsock/virtio: Move length check to callers of virtio_vsock_skb_rx_put()",
                            "    - vsock/virtio: Rename virtio_vsock_alloc_skb()",
                            "    - vsock/virtio: Move SKB allocation lower-bound check to callers",
                            "    - vsock/virtio: Rename virtio_vsock_skb_rx_put()",
                            "    - vhost/vsock: Allocate nonlinear SKBs for handling large receive buffers",
                            "    - vsock/virtio: Allocate nonlinear SKBs for handling large transmit",
                            "      buffers",
                            "    - net: Introduce skb_copy_datagram_from_iter_full()",
                            "    - vsock/virtio: Fix message iterator handling on transmit path",
                            "    - Upstream stable to v6.6.122, v6.12.67, v6.12.68",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-38591",
                            "    - bpf: Reject narrower access to pointer ctx fields",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23035",
                            "    - net/mlx5e: Pass netdev to mlx5e_destroy_netdev instead of priv",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22996",
                            "    - net/mlx5e: Don't store mlx5e_priv in mlx5e_dev devlink priv",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23000",
                            "    - net/mlx5e: Fix crash on profile change rollback failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23053",
                            "    - NFS: Fix a deadlock involving nfs_release_folio()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23050",
                            "    - pNFS: Fix a deadlock when returning a delegation during open()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23005",
                            "    - x86/fpu: Clear XSTATE_BV[i] in guest XSAVE state whenever XFD[i]=1",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2024-58097",
                            "    - wifi: ath11k: fix RCU stall while reaping monitor destination ring",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-68365",
                            "    - fs/ntfs3: Initialize allocated memory before use",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-37926",
                            "    - ksmbd: fix use-after-free in ksmbd_session_rpc_open",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23030",
                            "    - phy: rockchip: inno-usb2: Fix a double free bug in",
                            "      rockchip_usb2phy_probe()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23025",
                            "    - mm/page_alloc: prevent pcp corruption with SMP=n",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71186",
                            "    - dmaengine: stm32: dmamux: fix device leak on route allocation",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23078",
                            "    - ALSA: scarlett2: Fix buffer overflow in config retrieval",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23142",
                            "    - mm/damon/sysfs-scheme: cleanup access_pattern subdirs on scheme dir",
                            "      setup failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23075",
                            "    - can: esd_usb: esd_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-68725",
                            "    - bpf: Do not let BPF test infra emit invalid GSO types to stack",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23097",
                            "    - migrate: correct lock ordering for hugetlb file folios",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23108",
                            "    - can: usb_8dev: usb_8dev_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23080",
                            "    - can: mcba_usb: mcba_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23061",
                            "    - can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23058",
                            "    - can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23085",
                            "    - irqchip/gic-v3-its: Avoid truncating memory addresses",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23116",
                            "    - pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23098",
                            "    - netrom: fix double-free in nr_route_frame()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23063",
                            "    - uacce: ensure safe queue release with state management",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23056",
                            "    - uacce: implement mremap in uacce_vm_ops to return -EPERM",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23094",
                            "    - uacce: fix isolate sysfs check condition",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23096",
                            "    - uacce: fix cdev handling in the cleanup path",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23091",
                            "    - intel_th: fix device leak on output open()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23088",
                            "    - tracing: Fix crash on synthetic stacktrace field usage",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23090",
                            "    - slimbus: core: fix device reference leak on report present",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23128",
                            "    - arm64: Set __nocfi on swsusp_arch_resume()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23107",
                            "    - arm64/fpsimd: signal: Allocate SSVE storage when restoring ZA",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23073",
                            "    - wifi: rsi: Fix memory corruption due to not set vif driver data size",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23135",
                            "    - wifi: ath12k: fix dma_free_coherent() pointer",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23133",
                            "    - wifi: ath10k: fix dma_free_coherent() pointer",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71200",
                            "    - mmc: sdhci-of-dwcmshc: Prevent illegal clock reduction in HS200/HS400",
                            "      mode",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23089",
                            "    - ALSA: usb-audio: Fix use-after-free in snd_usb_mixer_free()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23076",
                            "    - ALSA: ctxfi: Fix potential OOB access in audio mixer handling",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71199",
                            "    - iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc",
                            "      driver",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23101",
                            "    - leds: led-class: Only Add LED to leds_list when it is fully ready",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23064",
                            "    - net/sched: act_ife: avoid possible NULL deref",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23086",
                            "    - vsock/virtio: cap TX credit to local buffer size",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23069",
                            "    - vsock/virtio: fix potential underflow in virtio_transport_get_credit()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23119",
                            "    - bonding: provide a net pointer to __skb_flow_dissect()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23084",
                            "    - be2net: Fix NULL pointer dereference in be_cmd_get_mac_from_list",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23124",
                            "    - ipv6: annotate data-race in ndisc_router_discovery()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23121",
                            "    - mISDN: annotate data-race around dev->work",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23126",
                            "    - netdevsim: fix a race issue related to the operation on bpf_bound_progs",
                            "      list",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23059",
                            "    - scsi: qla2xxx: Sanitize payload size to prevent member overflow",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23110",
                            "    - scsi: core: Wake up the error handler when final completions race",
                            "      against each other",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23071",
                            "    - regmap: Fix race condition in hwspinlock irqsave routine",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23068",
                            "    - spi: spi-sprd-adi: Fix double free in probe error path",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23123",
                            "    - interconnect: debugfs: initialize src_node and dst_node to empty strings",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71198",
                            "    - iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event",
                            "      detection",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23113",
                            "    - io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23062",
                            "    - platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23131",
                            "    - platform/x86: hp-bioscfg: Fix kobject warnings for empty attribute names",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23087",
                            "    - scsi: xen: scsiback: Fix potential memory leak in scsiback_remove()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71197",
                            "    - w1: therm: Fix off-by-one buffer overflow in alarms_store",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23105",
                            "    - net/sched: qfq: Use cl_is_active to determine whether class is active in",
                            "      qfq_rm_from_ag",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23103",
                            "    - ipvlan: Make the addrs_lock be per port",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23120",
                            "    - l2tp: avoid one data-race in l2tp_tunnel_del_work()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23083",
                            "    - fou: Don't allow 0 for FOU_ATTR_IPPROTO.",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23095",
                            "    - gue: Fix skb memleak with inner IP protocol 0.",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23125",
                            "    - sctp: move SCTP_CMD_ASSOC_SHKEY right after SCTP_CMD_PEER_INIT",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23099",
                            "    - bonding: limit BOND_MODE_8023AD to Ethernet devices",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71194",
                            "    - btrfs: fix deadlock in wait_current_trans() due to ignored transaction",
                            "      type",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71185",
                            "    - dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23026",
                            "    - dmaengine: qcom: gpi: Fix memory leak in gpi_peripheral_config()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71188",
                            "    - dmaengine: lpc18xx-dmamux: fix device leak on route allocation",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71163",
                            "    - dmaengine: idxd: fix device leaks on compat bind and unbind",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71189",
                            "    - dmaengine: dw: dmamux: fix OF node leak on route allocation failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71190",
                            "    - dmaengine: bcm-sba-raid: fix device leak on probe",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71191",
                            "    - dmaengine: at_hdmac: fix device leak on of_dma_xlate()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23049",
                            "    - drm/panel-simple: fix connector type for DataImage SCF0700C48GGU18 panel",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23144",
                            "    - mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23145",
                            "    - ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22997",
                            "    - net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session",
                            "      upon receiving the second rts",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23031",
                            "    - can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23032",
                            "    - null_blk: fix kmemleak by releasing references to fault configfs items",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23033",
                            "    - dmaengine: omap-dma: fix dma_pool resource leak in error paths",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71196",
                            "    - phy: stm32-usphyc: Fix off by one in probe()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71193",
                            "    - phy: qcom-qusb2: Fix NULL pointer dereference on early suspend",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71162",
                            "    - dmaengine: tegra-adma: Fix use-after-free",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2025-71195",
                            "    - dmaengine: xilinx: xdma: Fix regmap max_register",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23006",
                            "    - ASoC: tlv320adcx140: fix null pointer",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22999",
                            "    - net/sched: sch_qfq: do not free existing class in qfq_change_class()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23010",
                            "    - ipv6: Fix use-after-free in inet6_addr_del().",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23054",
                            "    - net: hv_netvsc: reject RSS hash key programming without RX indirection",
                            "      table",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23011",
                            "    - ipv4: ip_gre: make ipgre_header() robust",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23001",
                            "    - macvlan: fix possible UAF in macvlan_forward_source()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23003",
                            "    - ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23141",
                            "    - btrfs: send: check for inline extents in range_is_hole_in_parent()",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-22998",
                            "    - nvme-tcp: fix NULL pointer dereferences in nvmet_tcp_build_pdu_iovec",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23037",
                            "    - can: etas_es58x: allow partial RX URB allocation to succeed",
                            "  * Noble update: upstream stable patchset 2026-03-26 (LP: #2146465) //",
                            "    CVE-2026-23038",
                            "    - pnfs/flexfiles: Fix memory leak in nfs4_ff_alloc_deviceid_node()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058)",
                            "    - NFSD: Fix permission check for read access to executable-only files",
                            "    - 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",
                            "    - counter: 104-quad-8: Fix incorrect return value in IRQ handler",
                            "    - drm/pl111: Fix error handling in pl111_amba_probe",
                            "    - drm/radeon: Remove __counted_by from ClockInfoArray.clockInfo[]",
                            "    - gpio: rockchip: mark the GPIO controller as sleeping",
                            "    - pinctrl: qcom: lpass-lpi: mark the GPIO controller as sleeping",
                            "    - net: Add locking to protect skb->dev access in ip_output",
                            "    - nfsd: Fix a regression in nfsd_setattr()",
                            "    - nfsd: Fix NFSv3 atomicity bugs in nfsd_setattr()",
                            "    - nfsd: set security label during create operations",
                            "    - 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",
                            "    - dm-snapshot: fix 'scheduling while atomic' on real-time kernels",
                            "    - NFSv4: ensure the open stateid seqid doesn't go backwards",
                            "    - NFS: Fix up the automount fs_context to use the correct cred",
                            "    - smb/client: fix NT_STATUS_UNABLE_TO_FREE_VM value",
                            "    - smb/client: fix NT_STATUS_DEVICE_DOOR_OPEN value",
                            "    - smb/client: fix NT_STATUS_NO_DATA_DETECTED value",
                            "    - scsi: ipr: Enable/disable IRQD_NO_BALANCING during reset",
                            "    - scsi: ufs: core: Fix EH failure after W-LUN resume error",
                            "    - 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",
                            "    - arm64: dts: imx8mp: Fix LAN8740Ai PHY reference clock on DH electronics",
                            "      i.MX8M Plus DHCOM",
                            "    - netfilter: nft_synproxy: avoid possible data-race on update operation",
                            "    - gpio: pca953x: Add support for level-triggered interrupts",
                            "    - gpio: pca953x: handle short interrupt pulses on PCAL devices",
                            "    - netfilter: nf_tables: fix memory leak in nf_tables_newrule()",
                            "    - 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",
                            "    - net: wwan: iosm: Fix memory leak in ipc_mux_deinit()",
                            "    - bnxt_en: Fix potential data corruption with HW GRO/LRO",
                            "    - net: enetc: fix build warning when PAGE_SIZE is greater than 128K",
                            "    - arp: do not assume dev_hard_header() does not change skb->head",
                            "    - ALSA: ac97bus: Use guard() for mutex locks",
                            "    - NFS: trace: show TIMEDOUT instead of 0x6e",
                            "    - nfs_common: factor out nfs_errtbl and nfs_stat_to_errno",
                            "    - NFSD: Remove NFSERR_EAGAIN",
                            "    - bpf: Fix an issue in bpf_prog_test_run_xdp when page size greater than",
                            "      4K",
                            "    - bpf: Make variables in bpf_prog_test_run_xdp less confusing",
                            "    - bpf: Support specifying linear xdp packet data size for",
                            "      BPF_PROG_TEST_RUN",
                            "    - powercap: fix race condition in register_control_type()",
                            "    - powercap: fix sscanf() error return value handling",
                            "    - ALSA: usb-audio: Update for native DSD support quirks",
                            "    - ASoC: amd: yc: Add quirk for Honor MagicBook X16 2025",
                            "    - ASoC: fsl_sai: Add missing registers to cache default",
                            "    - scsi: sg: Fix occasional bogus elapsed time that exceeds timeout",
                            "    - bpf: test_run: Fix ctx leak in bpf_prog_test_run_xdp error path",
                            "    - ASoC: rockchip: Fix Wvoid-pointer-to-enum-cast warning (again)",
                            "    - btrfs: tracepoints: use btrfs_root_id() to get the id of a root",
                            "    - crypto: qat - fix duplicate restarting msg during AER error",
                            "    - netfilter: nft_set_pipapo: fix range overlap detection",
                            "    - vsock: Make accept()ed sockets use custom setsockopt()",
                            "    - btrfs: only enforce free space tree if v1 cache is required for bs < ps",
                            "      cases",
                            "    - riscv: pgtable: Cleanup useless VA_USER_XXX definitions",
                            "    - idpf: keep the netdev when a reset fails",
                            "    - net: sfp: extend Potron XGSPON quirk to cover additional EEPROM variant",
                            "    - ata: libata-core: Disable LPM on ST2000DM008-2FR102",
                            "    - drm/amd/display: Fix DP no audio issue",
                            "    - ALSA: hda/realtek: enable woofer speakers on Medion NM14LNL",
                            "    - spi: cadence-quadspi: Prevent lost complete() call during indirect read",
                            "    - ALSA: hda: intel-dsp-config: Prefer legacy driver as fallback",
                            "    - Upstream stable to v6.6.121, v6.12.66",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71184",
                            "    - btrfs: fix NULL dereference on root when tracing inode eviction",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71182",
                            "    - can: j1939: make j1939_session_activate() fail if device is no longer",
                            "      registered",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71160",
                            "    - netfilter: nf_tables: avoid chain re-validation if possible",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22994",
                            "    - bpf: Fix reference count leak in bpf_prog_test_run_xdp()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23140",
                            "    - bpf, test_run: Subtract size of xdp_frame from allowed metadata size",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71192",
                            "    - ALSA: ac97: fix a double free in snd_ac97_controller_register()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23021",
                            "    - net: usb: pegasus: fix memory leak in update_eth_regs_async()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22976",
                            "    - net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate",
                            "      in qfq_reset",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22979",
                            "    - net: fix memory leak in skb_segment_list for GRO packets",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22977",
                            "    - net: sock: fix hardened usercopy panic in sock_recv_errqueue",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22982",
                            "    - net: mscc: ocelot: Fix crash when adding interface under a lag",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23019",
                            "    - net: marvell: prestera: fix NULL dereference on devlink_alloc() failure",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23139",
                            "    - netfilter: nf_conncount: update last_gc only when GC has been performed",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-40149",
                            "    - tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock().",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-68803",
                            "    - NFSD: NFSv4 file creation neglects setting ACL",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23047",
                            "    - libceph: make calc_target() set t->paused, not just clear it",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23136",
                            "    - libceph: reset sparse-read state in osd_fault()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22992",
                            "    - libceph: return the handler error from mon_handle_auth_done()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22991",
                            "    - libceph: make free_choose_arg_map() resilient to partial allocation",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22990",
                            "    - libceph: replace overzealous BUG_ON in osdmap_apply_incremental()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22984",
                            "    - libceph: prevent potential out-of-bounds reads in handle_auth_done()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22978",
                            "    - wifi: avoid kernel-infoleak from struct iw_point",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71180",
                            "    - counter: interrupt-cnt: Drop IRQF_NO_THREAD flag",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2025-71183",
                            "    - btrfs: always detect conflicting inodes when logging inode refs",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-23020",
                            "    - net: 3com: 3c59x: fix possible null dereference in vortex_probe1()",
                            "  * Noble update: upstream stable patchset 2026-03-12 (LP: #2144058) //",
                            "    CVE-2026-22980",
                            "    - nfsd: provide locking for v4_end_grace",
                            "  * CVE-2024-50004",
                            "    - drm/amd/display: update DML2 policy",
                            "      EnhancedPrefetchScheduleAccelerationFinal DCN35",
                            "  * CVE-2026-23274",
                            "    - netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels",
                            "  * CVE-2026-23351",
                            "    - netfilter: nft_set_pipapo: split gc into unlink and reclaim phase",
                            "  * CVE-2026-23231",
                            "    - netfilter: nf_tables: fix use-after-free in nf_tables_addchain()",
                            "  * macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "    path (LP: #2144380) // CVE-2026-23209",
                            "    - macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "      path",
                            "  * CVE-2026-23112",
                            "    - nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-114.114~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2147981,
                            2148397,
                            2146465,
                            2147982,
                            2147447,
                            2147400,
                            2147065,
                            2144577,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147841,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2147543,
                            2145171,
                            2144060,
                            2144006,
                            2144914,
                            2143152,
                            2143083,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2146465,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144058,
                            2144380
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Fri, 17 Apr 2026 10:49:46 +0200"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23231",
                                "url": "https://ubuntu.com/security/CVE-2026-23231",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix use-after-free in nf_tables_addchain()  nf_tables_addchain() publishes the chain to table->chains via list_add_tail_rcu() (in nft_chain_add()) before registering hooks. If nf_tables_register_hook() then fails, the error path calls nft_chain_del() (list_del_rcu()) followed by nf_tables_chain_destroy() with no RCU grace period in between.  This creates two use-after-free conditions:   1) Control-plane: nf_tables_dump_chains() traverses table->chains     under rcu_read_lock(). A concurrent dump can still be walking     the chain when the error path frees it.   2) Packet path: for NFPROTO_INET, nf_register_net_hook() briefly     installs the IPv4 hook before IPv6 registration fails.  Packets     entering nft_do_chain() via the transient IPv4 hook can still be     dereferencing chain->blob_gen_X when the error path frees the     chain.  Add synchronize_rcu() between nft_chain_del() and the chain destroy so that all RCU readers -- both dump threads and in-flight packet evaluation -- have finished before the chain is freed.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-03-04 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23209",
                                "url": "https://ubuntu.com/security/CVE-2026-23209",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23112",
                                "url": "https://ubuntu.com/security/CVE-2026-23112",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec  nvmet_tcp_build_pdu_iovec() could walk past cmd->req.sg when a PDU length or offset exceeds sg_cnt and then use bogus sg->length/offset values, leading to _copy_to_iter() GPF/KASAN. Guard sg_idx, remaining entries, and sg->length/offset before building the bvec.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-111.111~22.04.1 -proposed tracker (LP: #2147889)",
                            "",
                            "  [ Ubuntu: 6.8.0-111.111 ]",
                            "",
                            "  * noble/linux: 6.8.0-111.111 -proposed tracker (LP: #2147890)",
                            "  * CVE-2026-23231",
                            "    - netfilter: nf_tables: fix use-after-free in nf_tables_addchain()",
                            "  * macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "    path (LP: #2144380) // CVE-2026-23209",
                            "    - macvlan: observe an RCU grace period in macvlan_common_newlink() error",
                            "      path",
                            "  * CVE-2026-23112",
                            "    - nvmet-tcp: add bounds checks in nvmet_tcp_build_pdu_iovec",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-111.111~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2147889,
                            2147890,
                            2144380
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Tue, 14 Apr 2026 17:47:01 +0200"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2024-36347",
                                "url": "https://ubuntu.com/security/CVE-2024-36347",
                                "cve_description": "Improper signature verification in AMD CPU ROM microcode patch loader may allow an attacker with local administrator privilege to load malicious microcode, potentially resulting in loss of integrity of x86 instruction execution, loss of confidentiality and integrity of data in x86 CPU privileged context and compromise of SMM execution environment.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-06-27 23:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40164",
                                "url": "https://ubuntu.com/security/CVE-2025-40164",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Fix using smp_processor_id() in preemptible code warnings  Syzbot reported the following warning:  BUG: using smp_processor_id() in preemptible [00000000] code: dhcpcd/2879 caller is usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331 CPU: 1 UID: 0 PID: 2879 Comm: dhcpcd Not tainted 6.15.0-rc4-syzkaller-00098-g615dca38c2ea #0 PREEMPT(voluntary) Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120  check_preemption_disabled+0xd0/0xe0 lib/smp_processor_id.c:49  usbnet_skb_return+0x74/0x490 drivers/net/usb/usbnet.c:331  usbnet_resume_rx+0x4b/0x170 drivers/net/usb/usbnet.c:708  usbnet_change_mtu+0x1be/0x220 drivers/net/usb/usbnet.c:417  __dev_set_mtu net/core/dev.c:9443 [inline]  netif_set_mtu_ext+0x369/0x5c0 net/core/dev.c:9496  netif_set_mtu+0xb0/0x160 net/core/dev.c:9520  dev_set_mtu+0xae/0x170 net/core/dev_api.c:247  dev_ifsioc+0xa31/0x18d0 net/core/dev_ioctl.c:572  dev_ioctl+0x223/0x10e0 net/core/dev_ioctl.c:821  sock_do_ioctl+0x19d/0x280 net/socket.c:1204  sock_ioctl+0x42f/0x6a0 net/socket.c:1311  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+0x190/0x200 fs/ioctl.c:892  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  For historical and portability reasons, the netif_rx() is usually run in the softirq or interrupt context, this commit therefore add local_bh_disable/enable() protection in the usbnet_resume_rx().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-12 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40325",
                                "url": "https://ubuntu.com/security/CVE-2025-40325",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid10: wait barrier before returning discard request with REQ_NOWAIT  raid10_handle_discard should wait barrier before returning a discard bio which has REQ_NOWAIT. And there is no need to print warning calltrace if a discard bio has REQ_NOWAIT flag. Quality engineer usually checks dmesg and reports error if dmesg has warning/error calltrace.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-18 07:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68206",
                                "url": "https://ubuntu.com/security/CVE-2025-68206",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nft_ct: add seqadj extension for natted connections  Sequence adjustment may be required for FTP traffic with PASV/EPSV modes. due to need to re-write packet payload (IP, port) on the ftp control connection. This can require changes to the TCP length and expected seq / ack_seq.  The easiest way to reproduce this issue is with PASV mode. Example ruleset: table inet ftp_nat {         ct helper ftp_helper {                 type \"ftp\" protocol tcp                 l3proto inet         }          chain prerouting {                 type filter hook prerouting priority 0; policy accept;                 tcp dport 21 ct state new ct helper set \"ftp_helper\"         } } table ip nat {         chain prerouting {                 type nat hook prerouting priority -100; policy accept;                 tcp dport 21 dnat ip prefix to ip daddr map { \t\t\t192.168.100.1 : 192.168.13.2/32 }         }          chain postrouting {                 type nat hook postrouting priority 100 ; policy accept;                 tcp sport 21 snat ip prefix to ip saddr map { \t\t\t192.168.13.2 : 192.168.100.1/32 }         } }  Note that the ftp helper gets assigned *after* the dnat setup.  The inverse (nat after helper assign) is handled by an existing check in nf_nat_setup_info() and will not show the problem.  Topoloy:   +-------------------+     +----------------------------------+  | FTP: 192.168.13.2 | <-> | NAT: 192.168.13.3, 192.168.100.1 |  +-------------------+     +----------------------------------+                                       |                          +-----------------------+                          | Client: 192.168.100.2 |                          +-----------------------+  ftp nat changes do not work as expected in this case: Connected to 192.168.100.1. [..] ftp> epsv EPSV/EPRT on IPv4 off. ftp> ls 227 Entering passive mode (192,168,100,1,209,129). 421 Service not available, remote server has closed connection.  Kernel logs: Missing nfct_seqadj_ext_add() setup call WARNING: CPU: 1 PID: 0 at net/netfilter/nf_conntrack_seqadj.c:41 [..]  __nf_nat_mangle_tcp_packet+0x100/0x160 [nf_nat]  nf_nat_ftp+0x142/0x280 [nf_nat_ftp]  help+0x4d1/0x880 [nf_conntrack_ftp]  nf_confirm+0x122/0x2e0 [nf_conntrack]  nf_hook_slow+0x3c/0xb0  ..  Fix this by adding the required extension when a conntrack helper is assigned to a connection that has a nat binding.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15: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-71135",
                                "url": "https://ubuntu.com/security/CVE-2025-71135",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md/raid5: fix possible null-pointer dereferences in raid5_store_group_thread_cnt()  The variable mddev->private is first assigned to conf and then checked:    conf = mddev->private;   if (!conf) ...  If conf is NULL, then mddev->private is also NULL. In this case, null-pointer dereferences can occur when calling raid5_quiesce():    raid5_quiesce(mddev, true);   raid5_quiesce(mddev, false);  since mddev->private is assigned to conf again in raid5_quiesce(), and conf is dereferenced in several places, for example:    conf->quiesce = 0;   wake_up(&conf->wait_for_quiescent);  To fix this issue, the function should unlock mddev and return before invoking raid5_quiesce() when conf is NULL, following the existing pattern in raid5_change_consistency_policy().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38234",
                                "url": "https://ubuntu.com/security/CVE-2025-38234",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/rt: Fix race in push_rt_task  Overview ======== When a CPU chooses to call push_rt_task and picks a task to push to another CPU's runqueue then it will call find_lock_lowest_rq method which would take a double lock on both CPUs' runqueues. If one of the locks aren't readily available, it may lead to dropping the current runqueue lock and reacquiring both the locks at once. During this window it is possible that the task is already migrated and is running on some other CPU. These cases are already handled. However, if the task is migrated and has already been executed and another CPU is now trying to wake it up (ttwu) such that it is queued again on the runqeue (on_rq is 1) and also if the task was run by the same CPU, then the current checks will pass even though the task was migrated out and is no longer in the pushable tasks list.  Crashes ======= This bug resulted in quite a few flavors of crashes triggering kernel panics with various crash signatures such as assert failures, page faults, null pointer dereferences, and queue corruption errors all coming from scheduler itself.  Some of the crashes: -> kernel BUG at kernel/sched/rt.c:1616! BUG_ON(idx >= MAX_RT_PRIO)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? pick_next_task_rt+0x6e/0x1d0    ? do_error_trap+0x64/0xa0    ? pick_next_task_rt+0x6e/0x1d0    ? exc_invalid_op+0x4c/0x60    ? pick_next_task_rt+0x6e/0x1d0    ? asm_exc_invalid_op+0x12/0x20    ? pick_next_task_rt+0x6e/0x1d0    __schedule+0x5cb/0x790    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: kernel NULL pointer dereference, address: 00000000000000c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? __warn+0x8a/0xe0    ? exc_page_fault+0x3d6/0x520    ? asm_exc_page_fault+0x1e/0x30    ? pick_next_task_rt+0xb5/0x1d0    ? pick_next_task_rt+0x8c/0x1d0    __schedule+0x583/0x7e0    ? update_ts_time_stats+0x55/0x70    schedule_idle+0x1e/0x40    do_idle+0x15e/0x200    cpu_startup_entry+0x19/0x20    start_secondary+0x117/0x160    secondary_startup_64_no_verify+0xb0/0xbb  -> BUG: unable to handle page fault for address: ffff9464daea5900    kernel BUG at kernel/sched/rt.c:1861! BUG_ON(rq->cpu != task_cpu(p))  -> kernel BUG at kernel/sched/rt.c:1055! BUG_ON(!rq->nr_running)    Call Trace:    ? __die_body+0x1a/0x60    ? die+0x2a/0x50    ? do_trap+0x85/0x100    ? dequeue_top_rt_rq+0xa2/0xb0    ? do_error_trap+0x64/0xa0    ? dequeue_top_rt_rq+0xa2/0xb0    ? exc_invalid_op+0x4c/0x60    ? dequeue_top_rt_rq+0xa2/0xb0    ? asm_exc_invalid_op+0x12/0x20    ? dequeue_top_rt_rq+0xa2/0xb0    dequeue_rt_entity+0x1f/0x70    dequeue_task_rt+0x2d/0x70    __schedule+0x1a8/0x7e0    ? blk_finish_plug+0x25/0x40    schedule+0x3c/0xb0    futex_wait_queue_me+0xb6/0x120    futex_wait+0xd9/0x240    do_futex+0x344/0xa90    ? get_mm_exe_file+0x30/0x60    ? audit_exe_compare+0x58/0x70    ? audit_filter_rules.constprop.26+0x65e/0x1220    __x64_sys_futex+0x148/0x1f0    do_syscall_64+0x30/0x80    entry_SYSCALL_64_after_hwframe+0x62/0xc7  -> BUG: unable to handle page fault for address: ffff8cf3608bc2c0    Call Trace:    ? __die_body+0x1a/0x60    ? no_context+0x183/0x350    ? spurious_kernel_fault+0x171/0x1c0    ? exc_page_fault+0x3b6/0x520    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? asm_exc_page_fault+0x1e/0x30    ? _cond_resched+0x15/0x30    ? futex_wait_queue_me+0xc8/0x120    ? futex_wait+0xd9/0x240    ? try_to_wake_up+0x1b8/0x490    ? futex_wake+0x78/0x160    ? do_futex+0xcd/0xa90    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? plist_del+0x6a/0xd0    ? plist_check_list+0x15/0x40    ? plist_check_list+0x2e/0x40    ? dequeue_pushable_task+0x20/0x70    ? __schedule+0x382/0x7e0    ? asm_sysvec_reschedule_i ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-07-04 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68811",
                                "url": "https://ubuntu.com/security/CVE-2025-68811",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: use rc_pageoff for memcpy byte offset  svc_rdma_copy_inline_range added rc_curpage (page index) to the page base instead of the byte offset rc_pageoff. Use rc_pageoff so copies land within the current page.  Found by ZeroPath (https://zeropath.com)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68810",
                                "url": "https://ubuntu.com/security/CVE-2025-68810",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot  Reject attempts to disable KVM_MEM_GUEST_MEMFD on a memslot that was initially created with a guest_memfd binding, as KVM doesn't support toggling KVM_MEM_GUEST_MEMFD on existing memslots.  KVM prevents enabling KVM_MEM_GUEST_MEMFD, but doesn't prevent clearing the flag.  Failure to reject the new memslot results in a use-after-free due to KVM not unbinding from the guest_memfd instance.  Unbinding on a FLAGS_ONLY change is easy enough, and can/will be done as a hardening measure (in anticipation of KVM supporting dirty logging on guest_memfd at some point), but fixing the use-after-free would only address the immediate symptom.    ==================================================================   BUG: KASAN: slab-use-after-free in kvm_gmem_release+0x362/0x400 [kvm]   Write of size 8 at addr ffff8881111ae908 by task repro/745    CPU: 7 UID: 1000 PID: 745 Comm: repro Not tainted 6.18.0-rc6-115d5de2eef3-next-kasan #3 NONE   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015   Call Trace:    <TASK>    dump_stack_lvl+0x51/0x60    print_report+0xcb/0x5c0    kasan_report+0xb4/0xe0    kvm_gmem_release+0x362/0x400 [kvm]    __fput+0x2fa/0x9d0    task_work_run+0x12c/0x200    do_exit+0x6ae/0x2100    do_group_exit+0xa8/0x230    __x64_sys_exit_group+0x3a/0x50    x64_sys_call+0x737/0x740    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f581f2eac31    </TASK>    Allocated by task 745 on cpu 6 at 9.746971s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_kmalloc+0x77/0x90    kvm_set_memory_region.part.0+0x652/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53    Freed by task 745 on cpu 6 at 9.747467s:    kasan_save_stack+0x20/0x40    kasan_save_track+0x13/0x50    __kasan_save_free_info+0x37/0x50    __kasan_slab_free+0x3b/0x60    kfree+0xf5/0x440    kvm_set_memslot+0x3c2/0x1160 [kvm]    kvm_set_memory_region.part.0+0x86a/0x1110 [kvm]    kvm_vm_ioctl+0x14b0/0x3290 [kvm]    __x64_sys_ioctl+0x129/0x1a0    do_syscall_64+0x5b/0x900    entry_SYSCALL_64_after_hwframe+0x4b/0x53",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71109",
                                "url": "https://ubuntu.com/security/CVE-2025-71109",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  MIPS: ftrace: Fix memory corruption when kernel is located beyond 32 bits  Since commit e424054000878 (\"MIPS: Tracing: Reduce the overhead of dynamic Function Tracer\"), the macro UASM_i_LA_mostly has been used, and this macro can generate more than 2 instructions. At the same time, the code in ftrace assumes that no more than 2 instructions can be generated, which is why it stores them in an int[2] array. However, as previously noted, the macro UASM_i_LA_mostly (and now UASM_i_LA) causes a buffer overflow when _mcount is beyond 32 bits. This leads to corruption of the variables located in the __read_mostly section.  This corruption was observed because the variable __cpu_primary_thread_mask was corrupted, causing a hang very early during boot.  This fix prevents the corruption by avoiding the generation of instructions if they could exceed 2 instructions in length. Fortunately, insn_la_mcount is only used if the instrumented code is located outside the kernel code section, so dynamic ftrace can still be used, albeit in a more limited scope. This is still preferable to corrupting memory and/or crashing the kernel.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68770",
                                "url": "https://ubuntu.com/security/CVE-2025-68770",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bnxt_en: Fix XDP_TX path  For XDP_TX action in bnxt_rx_xdp(), clearing of the event flags is not correct.  __bnxt_poll_work() -> bnxt_rx_pkt() -> bnxt_rx_xdp() may be looping within NAPI and some event flags may be set in earlier iterations.  In particular, if BNXT_TX_EVENT is set earlier indicating some XDP_TX packets are ready and pending, it will be cleared if it is XDP_TX action again.  Normally, we will set BNXT_TX_EVENT again when we successfully call __bnxt_xmit_xdp().  But if the TX ring has no more room, the flag will not be set.  This will cause the TX producer to be ahead but the driver will not hit the TX doorbell.  For multi-buf XDP_TX, there is no need to clear the event flags and set BNXT_AGG_EVENT.  The BNXT_AGG_EVENT flag should have been set earlier in bnxt_rx_pkt().  The visible symptom of this is that the RX ring associated with the TX XDP ring will eventually become empty and all packets will be dropped. Because this condition will cause the driver to not refill the RX ring seeing that the TX ring has forever pending XDP_TX packets.  The fix is to only clear BNXT_RX_EVENT when we have successfully called __bnxt_xmit_xdp().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71072",
                                "url": "https://ubuntu.com/security/CVE-2025-71072",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  shmem: fix recovery on rename failures  maple_tree insertions can fail if we are seriously short on memory; simple_offset_rename() does not recover well if it runs into that. The same goes for simple_offset_rename_exchange().  Moreover, shmem_whiteout() expects that if it succeeds, the caller will progress to d_move(), i.e. that shmem_rename2() won't fail past the successful call of shmem_whiteout().  Not hard to fix, fortunately - mtree_store() can't fail if the index we are trying to store into is already present in the tree as a singleton.  For simple_offset_rename_exchange() that's enough - we just need to be careful about the order of operations.  For simple_offset_rename() solution is to preinsert the target into the tree for new_dir; the rest can be done without any potentially failing operations.  That preinsertion has to be done in shmem_rename2() rather than in simple_offset_rename() itself - otherwise we'd need to deal with the possibility of failure after successful shmem_whiteout().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68374",
                                "url": "https://ubuntu.com/security/CVE-2025-68374",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  md: fix rcu protection in md_wakeup_thread  We attempted to use RCU to protect the pointer 'thread', but directly passed the value when calling md_wakeup_thread(). This means that the RCU pointer has been acquired before rcu_read_lock(), which renders rcu_read_lock() ineffective and could lead to a use-after-free.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68378",
                                "url": "https://ubuntu.com/security/CVE-2025-68378",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix stackmap overflow check in __bpf_get_stackid()  Syzkaller reported a KASAN slab-out-of-bounds write in __bpf_get_stackid() when copying stack trace data. The issue occurs when the perf trace  contains more stack entries than the stack map bucket can hold,  leading to an out-of-bounds write in the bucket's data array.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-57795",
                                "url": "https://ubuntu.com/security/CVE-2024-57795",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Remove the direct link to net_device  The similar patch in siw is in the link: https://git.kernel.org/rdma/rdma/c/16b87037b48889  This problem also occurred in RXE. The following analyze this problem. In the following Call Traces: \" BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 net/core/dev.c:8782 Read of size 4 at addr ffff8880554640b0 by task kworker/1:4/5295  CPU: 1 UID: 0 PID: 5295 Comm: kworker/1:4 Not tainted 6.12.0-rc3-syzkaller-00399-g9197b73fd7bb #0 Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: infiniband ib_cache_event_task 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:377 [inline]  print_report+0x169/0x550 mm/kasan/report.c:488  kasan_report+0x143/0x180 mm/kasan/report.c:601  dev_get_flags+0x188/0x1d0 net/core/dev.c:8782  rxe_query_port+0x12d/0x260 drivers/infiniband/sw/rxe/rxe_verbs.c:60  __ib_query_port drivers/infiniband/core/device.c:2111 [inline]  ib_query_port+0x168/0x7d0 drivers/infiniband/core/device.c:2143  ib_cache_update+0x1a9/0xb80 drivers/infiniband/core/cache.c:1494  ib_cache_event_task+0xf3/0x1e0 drivers/infiniband/core/cache.c:1568  process_one_work kernel/workqueue.c:3229 [inline]  process_scheduled_works+0xa65/0x1850 kernel/workqueue.c:3310  worker_thread+0x870/0xd30 kernel/workqueue.c:3391  kthread+0x2f2/0x390 kernel/kthread.c:389  ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:147  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244  </TASK> \"  1). In the link [1],  \"  infiniband syz2: set down \"  This means that on 839.350575, the event ib_cache_event_task was sent andi queued in ib_wq.  2). In the link [1],  \"  team0 (unregistering): Port device team_slave_0 removed \"  It indicates that before 843.251853, the net device should be freed.  3). In the link [1],  \"  BUG: KASAN: slab-use-after-free in dev_get_flags+0x188/0x1d0 \"  This means that on 850.559070, this slab-use-after-free problem occurred.  In all, on 839.350575, the event ib_cache_event_task was sent and queued in ib_wq,  before 843.251853, the net device veth was freed.  on 850.559070, this event was executed, and the mentioned freed net device was called. Thus, the above call trace occurred.  [1] https://syzkaller.appspot.com/x/log.txt?x=12e7025f980000",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-01-15 13: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-71140",
                                "url": "https://ubuntu.com/security/CVE-2025-71140",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: mediatek: vcodec: Use spinlock for context list protection lock  Previously a mutex was added to protect the encoder and decoder context lists from unexpected changes originating from the SCP IP block, causing the context pointer to go invalid, resulting in a NULL pointer dereference in the IPI handler.  Turns out on the MT8173, the VPU IPI handler is called from hard IRQ context. This causes a big warning from the scheduler. This was first reported downstream on the ChromeOS kernels, but is also reproducible on mainline using Fluster with the FFmpeg v4l2m2m decoders. Even though the actual capture format is not supported, the affected code paths are triggered.  Since this lock just protects the context list and operations on it are very fast, it should be OK to switch to a spinlock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-68772",
                                "url": "https://ubuntu.com/security/CVE-2025-68772",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating compression context during writeback  Bai, Shuangpeng <sjb7183@psu.edu> reported a bug as below:  Oops: divide error: 0000 [#1] SMP KASAN PTI CPU: 0 UID: 0 PID: 11441 Comm: syz.0.46 Not tainted 6.17.0 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP: 0010:f2fs_all_cluster_page_ready+0x106/0x550 fs/f2fs/compress.c:857 Call Trace:  <TASK>  f2fs_write_cache_pages fs/f2fs/data.c:3078 [inline]  __f2fs_write_data_pages fs/f2fs/data.c:3290 [inline]  f2fs_write_data_pages+0x1c19/0x3600 fs/f2fs/data.c:3317  do_writepages+0x38e/0x640 mm/page-writeback.c:2634  filemap_fdatawrite_wbc mm/filemap.c:386 [inline]  __filemap_fdatawrite_range mm/filemap.c:419 [inline]  file_write_and_wait_range+0x2ba/0x3e0 mm/filemap.c:794  f2fs_do_sync_file+0x6e6/0x1b00 fs/f2fs/file.c:294  generic_write_sync include/linux/fs.h:3043 [inline]  f2fs_file_write_iter+0x76e/0x2700 fs/f2fs/file.c:5259  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x7e9/0xe00 fs/read_write.c:686  ksys_write+0x19d/0x2d0 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xf7/0x470 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The bug was triggered w/ below race condition:  fsync\t\t\t\tsetattr\t\t\tioctl - f2fs_do_sync_file  - file_write_and_wait_range   - f2fs_write_cache_pages   : inode is non-compressed   : cc.cluster_size =     F2FS_I(inode)->i_cluster_size = 0    - tag_pages_for_writeback \t\t\t\t- f2fs_setattr \t\t\t\t - truncate_setsize \t\t\t\t - f2fs_truncate \t\t\t\t\t\t\t- f2fs_fileattr_set \t\t\t\t\t\t\t - f2fs_setflags_common \t\t\t\t\t\t\t  - set_compress_context \t\t\t\t\t\t\t  : F2FS_I(inode)->i_cluster_size = 4 \t\t\t\t\t\t\t  : set_inode_flag(inode, FI_COMPRESSED_FILE)    - f2fs_compressed_file    : return true    - f2fs_all_cluster_page_ready    : \"pgidx % cc->cluster_size\" trigger dividing 0 issue  Let's change as below to fix this issue: - introduce a new atomic type variable .writeback in structure f2fs_inode_info to track the number of threads which calling f2fs_write_cache_pages(). - use .i_sem lock to protect .writeback update. - check .writeback before update compression context in f2fs_setflags_common() to avoid race w/ ->writepages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15: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-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-71141",
                                "url": "https://ubuntu.com/security/CVE-2025-71141",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/tilcdc: Fix removal actions in case of failed probe  The drm_kms_helper_poll_fini() and drm_atomic_helper_shutdown() helpers should only be called when the device has been successfully registered. Currently, these functions are called unconditionally in tilcdc_fini(), which causes warnings during probe deferral scenarios.  [    7.972317] WARNING: CPU: 0 PID: 23 at drivers/gpu/drm/drm_atomic_state_helper.c:175 drm_atomic_helper_crtc_duplicate_state+0x60/0x68 ... [    8.005820]  drm_atomic_helper_crtc_duplicate_state from drm_atomic_get_crtc_state+0x68/0x108 [    8.005858]  drm_atomic_get_crtc_state from drm_atomic_helper_disable_all+0x90/0x1c8 [    8.005885]  drm_atomic_helper_disable_all from drm_atomic_helper_shutdown+0x90/0x144 [    8.005911]  drm_atomic_helper_shutdown from tilcdc_fini+0x68/0xf8 [tilcdc] [    8.005957]  tilcdc_fini [tilcdc] from tilcdc_pdev_probe+0xb0/0x6d4 [tilcdc]  Fix this by rewriting the failed probe cleanup path using the standard goto error handling pattern, which ensures that cleanup functions are only called on successfully initialized resources. Additionally, remove the now-unnecessary is_registered flag.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 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-71088",
                                "url": "https://ubuntu.com/security/CVE-2025-71088",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fallback earlier on simult connection  Syzkaller reports a simult-connect race leading to inconsistent fallback status:    WARNING: CPU: 3 PID: 33 at net/mptcp/subflow.c:1515 subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Modules linked in:   CPU: 3 UID: 0 PID: 33 Comm: ksoftirqd/3 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:subflow_data_ready+0x40b/0x7c0 net/mptcp/subflow.c:1515   Code: 89 ee e8 78 61 3c f6 40 84 ed 75 21 e8 8e 66 3c f6 44 89 fe bf 07 00 00 00 e8 c1 61 3c f6 41 83 ff 07 74 09 e8 76 66 3c f6 90 <0f> 0b 90 e8 6d 66 3c f6 48 89 df e8 e5 ad ff ff 31 ff 89 c5 89 c6   RSP: 0018:ffffc900006cf338 EFLAGS: 00010246   RAX: 0000000000000000 RBX: ffff888031acd100 RCX: ffffffff8b7f2abf   RDX: ffff88801e6ea440 RSI: ffffffff8b7f2aca RDI: 0000000000000005   RBP: 0000000000000000 R08: 0000000000000005 R09: 0000000000000007   R10: 0000000000000004 R11: 0000000000002c10 R12: ffff88802ba69900   R13: 1ffff920000d9e67 R14: ffff888046f81800 R15: 0000000000000004   FS:  0000000000000000(0000) GS:ffff8880d69bc000(0000) knlGS:0000000000000000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 0000560fc0ca1670 CR3: 0000000032c3a000 CR4: 0000000000352ef0   Call Trace:    <TASK>    tcp_data_queue+0x13b0/0x4f90 net/ipv4/tcp_input.c:5197    tcp_rcv_state_process+0xfdf/0x4ec0 net/ipv4/tcp_input.c:6922    tcp_v6_do_rcv+0x492/0x1740 net/ipv6/tcp_ipv6.c:1672    tcp_v6_rcv+0x2976/0x41e0 net/ipv6/tcp_ipv6.c:1918    ip6_protocol_deliver_rcu+0x188/0x1520 net/ipv6/ip6_input.c:438    ip6_input_finish+0x1e4/0x4b0 net/ipv6/ip6_input.c:489    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ip6_input+0x105/0x2f0 net/ipv6/ip6_input.c:500    dst_input include/net/dst.h:471 [inline]    ip6_rcv_finish net/ipv6/ip6_input.c:79 [inline]    NF_HOOK include/linux/netfilter.h:318 [inline]    NF_HOOK include/linux/netfilter.h:312 [inline]    ipv6_rcv+0x264/0x650 net/ipv6/ip6_input.c:311    __netif_receive_skb_one_core+0x12d/0x1e0 net/core/dev.c:5979    __netif_receive_skb+0x1d/0x160 net/core/dev.c:6092    process_backlog+0x442/0x15e0 net/core/dev.c:6444    __napi_poll.constprop.0+0xba/0x550 net/core/dev.c:7494    napi_poll net/core/dev.c:7557 [inline]    net_rx_action+0xa9f/0xfe0 net/core/dev.c:7684    handle_softirqs+0x216/0x8e0 kernel/softirq.c:579    run_ksoftirqd kernel/softirq.c:968 [inline]    run_ksoftirqd+0x3a/0x60 kernel/softirq.c:960    smpboot_thread_fn+0x3f7/0xae0 kernel/smpboot.c:160    kthread+0x3c2/0x780 kernel/kthread.c:463    ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148    ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245    </TASK>  The TCP subflow can process the simult-connect syn-ack packet after transitioning to TCP_FIN1 state, bypassing the MPTCP fallback check, as the sk_state_change() callback is not invoked for * -> FIN_WAIT1 transitions.  That will move the msk socket to an inconsistent status and the next incoming data will hit the reported splat.  Close the race moving the simult-fallback check at the earliest possible stage - that is at syn-ack generation time.  About the fixes tags: [2] was supposed to also fix this issue introduced by [3]. [1] is required as a dependence: it was not explicitly marked as a fix, but it is one and it has already been backported before [3]. In other words, this commit should be backported up to [3], including [2] and [1] if that's not already there.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71065",
                                "url": "https://ubuntu.com/security/CVE-2025-71065",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid potential deadlock  As Jiaming Zhang and syzbot reported, there is potential deadlock in f2fs as below:  Chain exists of:   &sbi->cp_rwsem --> fs_reclaim --> sb_internal#2   Possible unsafe locking scenario:         CPU0                    CPU1        ----                    ----   rlock(sb_internal#2);                                lock(fs_reclaim);                                lock(sb_internal#2);   rlock(&sbi->cp_rwsem);   *** DEADLOCK ***  3 locks held by kswapd0/73:  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat mm/vmscan.c:7015 [inline]  #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0x951/0x2800 mm/vmscan.c:7389  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_trylock_shared fs/super.c:562 [inline]  #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_cache_scan+0x91/0x4b0 fs/super.c:197  #2: ffff888011840610 (sb_internal#2){.+.+}-{0:0}, at: f2fs_evict_inode+0x8d9/0x1b60 fs/f2fs/inode.c:890  stack backtrace: CPU: 0 UID: 0 PID: 73 Comm: kswapd0 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 Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_circular_bug+0x2ee/0x310 kernel/locking/lockdep.c:2043  check_noncircular+0x134/0x160 kernel/locking/lockdep.c:2175  check_prev_add kernel/locking/lockdep.c:3165 [inline]  check_prevs_add kernel/locking/lockdep.c:3284 [inline]  validate_chain+0xb9b/0x2140 kernel/locking/lockdep.c:3908  __lock_acquire+0xab9/0xd20 kernel/locking/lockdep.c:5237  lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5868  down_read+0x46/0x2e0 kernel/locking/rwsem.c:1537  f2fs_down_read fs/f2fs/f2fs.h:2278 [inline]  f2fs_lock_op fs/f2fs/f2fs.h:2357 [inline]  f2fs_do_truncate_blocks+0x21c/0x10c0 fs/f2fs/file.c:791  f2fs_truncate_blocks+0x10a/0x300 fs/f2fs/file.c:867  f2fs_truncate+0x489/0x7c0 fs/f2fs/file.c:925  f2fs_evict_inode+0x9f2/0x1b60 fs/f2fs/inode.c:897  evict+0x504/0x9c0 fs/inode.c:810  f2fs_evict_inode+0x1dc/0x1b60 fs/f2fs/inode.c:853  evict+0x504/0x9c0 fs/inode.c:810  dispose_list fs/inode.c:852 [inline]  prune_icache_sb+0x21b/0x2c0 fs/inode.c:1000  super_cache_scan+0x39b/0x4b0 fs/super.c:224  do_shrink_slab+0x6ef/0x1110 mm/shrinker.c:437  shrink_slab_memcg mm/shrinker.c:550 [inline]  shrink_slab+0x7ef/0x10d0 mm/shrinker.c:628  shrink_one+0x28a/0x7c0 mm/vmscan.c:4955  shrink_many mm/vmscan.c:5016 [inline]  lru_gen_shrink_node mm/vmscan.c:5094 [inline]  shrink_node+0x315d/0x3780 mm/vmscan.c:6081  kswapd_shrink_node mm/vmscan.c:6941 [inline]  balance_pgdat mm/vmscan.c:7124 [inline]  kswapd+0x147c/0x2800 mm/vmscan.c:7389  kthread+0x70e/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>  The root cause is deadlock among four locks as below:  kswapd - fs_reclaim\t\t\t\t--- Lock A  - shrink_one   - evict    - f2fs_evict_inode     - sb_start_intwrite\t\t\t--- Lock B  - iput  - evict   - f2fs_evict_inode    - sb_start_intwrite\t\t\t--- Lock B    - f2fs_truncate     - f2fs_truncate_blocks      - f2fs_do_truncate_blocks       - f2fs_lock_op\t\t\t--- Lock C  ioctl - f2fs_ioc_commit_atomic_write  - f2fs_lock_op\t\t\t\t--- Lock C   - __f2fs_commit_atomic_write    - __replace_atomic_write_block     - f2fs_get_dnode_of_data      - __get_node_folio       - f2fs_check_nid_range        - f2fs_handle_error         - f2fs_record_errors          - f2fs_down_write\t\t--- Lock D  open - do_open  - do_truncate   - security_inode_need_killpriv    - f2fs_getxattr     - lookup_all_xattrs      - f2fs_handle_error       - f2fs_record_errors        - f2fs_down_write\t\t--- Lock D         - f2fs_commit_super          - read_mapping_folio           - filemap_alloc_folio_noprof            - prepare_alloc_pages             - fs_reclaim_acquire\t--- Lock A  In order to a ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68345",
                                "url": "https://ubuntu.com/security/CVE-2025-68345",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: hda: cs35l41: Fix NULL pointer dereference in cs35l41_hda_read_acpi()  The acpi_get_first_physical_node() function can return NULL, in which case the get_device() function also returns NULL, but this value is then dereferenced without checking,so add a check to prevent a crash.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11: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-71130",
                                "url": "https://ubuntu.com/security/CVE-2025-71130",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/gem: Zero-initialize the eb.vma array in i915_gem_do_execbuffer  Initialize the eb.vma array with values of 0 when the eb structure is first set up. In particular, this sets the eb->vma[i].vma pointers to NULL, simplifying cleanup and getting rid of the bug described below.  During the execution of eb_lookup_vmas(), the eb->vma array is successively filled up with struct eb_vma objects. This process includes calling eb_add_vma(), which might fail; however, even in the event of failure, eb->vma[i].vma is set for the currently processed buffer.  If eb_add_vma() fails, eb_lookup_vmas() returns with an error, which prompts a call to eb_release_vmas() to clean up the mess. Since eb_lookup_vmas() might fail during processing any (possibly not first) buffer, eb_release_vmas() checks whether a buffer's vma is NULL to know at what point did the lookup function fail.  In eb_lookup_vmas(), eb->vma[i].vma is set to NULL if either the helper function eb_lookup_vma() or eb_validate_vma() fails. eb->vma[i+1].vma is set to NULL in case i915_gem_object_userptr_submit_init() fails; the current one needs to be cleaned up by eb_release_vmas() at this point, so the next one is set. If eb_add_vma() fails, neither the current nor the next vma is set to NULL, which is a source of a NULL deref bug described in the issue linked in the Closes tag.  When entering eb_lookup_vmas(), the vma pointers are set to the slab poison value, instead of NULL. This doesn't matter for the actual lookup, since it gets overwritten anyway, however the eb_release_vmas() function only recognizes NULL as the stopping value, hence the pointers are being set to NULL as they go in case of intermediate failure. This patch changes the approach to filling them all with NULL at the start instead, rather than handling that manually during failure.  (cherry picked from commit 08889b706d4f0b8d2352b7ca29c2d8df4d0787cd)",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71138",
                                "url": "https://ubuntu.com/security/CVE-2025-71138",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/msm/dpu: Add missing NULL pointer check for pingpong interface  It is checked almost always in dpu_encoder_phys_wb_setup_ctl(), but in a single place the check is missing. Also use convenient locals instead of phys_enc->* where available.  Patchwork: https://patchwork.freedesktop.org/patch/693860/",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16: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-71129",
                                "url": "https://ubuntu.com/security/CVE-2025-71129",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  LoongArch: BPF: Sign extend kfunc call arguments  The kfunc calls are native calls so they should follow LoongArch calling conventions. Sign extend its arguments properly to avoid kernel panic. This is done by adding a new emit_abi_ext() helper. The emit_abi_ext() helper performs extension in place meaning a value already store in the target register (Note: this is different from the existing sign_extend() helper and thus we can't reuse it).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-71143",
                                "url": "https://ubuntu.com/security/CVE-2025-71143",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  clk: samsung: exynos-clkout: Assign .num before accessing .hws  Commit f316cdff8d67 (\"clk: Annotate struct clk_hw_onecell_data with __counted_by\") annotated the hws member of 'struct clk_hw_onecell_data' with __counted_by, which informs the bounds sanitizer (UBSAN_BOUNDS) about the number of elements in .hws[], so that it can warn when .hws[] is accessed out of bounds. As noted in that change, the __counted_by member must be initialized with the number of elements before the first array access happens, otherwise there will be a warning from each access prior to the initialization because the number of elements is zero. This occurs in exynos_clkout_probe() due to .num being assigned after .hws[] has been accessed:    UBSAN: array-index-out-of-bounds in drivers/clk/samsung/clk-exynos-clkout.c:178:18   index 0 is out of range for type 'clk_hw *[*]'  Move the .num initialization to before the first access of .hws[], clearing up the warning.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-71089",
                                "url": "https://ubuntu.com/security/CVE-2025-71089",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu: disable SVA when CONFIG_X86 is set  Patch series \"Fix stale IOTLB entries for kernel address space\", v7.  This proposes a fix for a security vulnerability related to IOMMU Shared Virtual Addressing (SVA).  In an SVA context, an IOMMU can cache kernel page table entries.  When a kernel page table page is freed and reallocated for another purpose, the IOMMU might still hold stale, incorrect entries.  This can be exploited to cause a use-after-free or write-after-free condition, potentially leading to privilege escalation or data corruption.  This solution introduces a deferred freeing mechanism for kernel page table pages, which provides a safe window to notify the IOMMU to invalidate its caches before the page is reused.   This patch (of 8):  In the IOMMU Shared Virtual Addressing (SVA) context, the IOMMU hardware shares and walks the CPU's page tables.  The x86 architecture maps the kernel's virtual address space into the upper portion of every process's page table.  Consequently, in an SVA context, the IOMMU hardware can walk and cache kernel page table entries.  The Linux kernel currently lacks a notification mechanism for kernel page table changes, specifically when page table pages are freed and reused. The IOMMU driver is only notified of changes to user virtual address mappings.  This can cause the IOMMU's internal caches to retain stale entries for kernel VA.  Use-After-Free (UAF) and Write-After-Free (WAF) conditions arise when kernel page table pages are freed and later reallocated.  The IOMMU could misinterpret the new data as valid page table entries.  The IOMMU might then walk into attacker-controlled memory, leading to arbitrary physical memory DMA access or privilege escalation.  This is also a Write-After-Free issue, as the IOMMU will potentially continue to write Accessed and Dirty bits to the freed memory while attempting to walk the stale page tables.  Currently, SVA contexts are unprivileged and cannot access kernel mappings.  However, the IOMMU will still walk kernel-only page tables all the way down to the leaf entries, where it realizes the mapping is for the kernel and errors out.  This means the IOMMU still caches these intermediate page table entries, making the described vulnerability a real concern.  Disable SVA on x86 architecture until the IOMMU can receive notification to flush the paging cache before freeing the CPU kernel page table pages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16: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-71153",
                                "url": "https://ubuntu.com/security/CVE-2025-71153",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix memory leak in get_file_all_info()  In get_file_all_info(), if vfs_getattr() fails, the function returns immediately without freeing the allocated filename, leading to a memory leak.  Fix this by freeing the filename before returning in this error case.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 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-71095",
                                "url": "https://ubuntu.com/security/CVE-2025-71095",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: stmmac: fix the crash issue for zero copy XDP_TX action  There is a crash issue when running zero copy XDP_TX action, the crash log is shown below.  [  216.122464] Unable to handle kernel paging request at virtual address fffeffff80000000 [  216.187524] Internal error: Oops: 0000000096000144 [#1]  SMP [  216.301694] Call trace: [  216.304130]  dcache_clean_poc+0x20/0x38 (P) [  216.308308]  __dma_sync_single_for_device+0x1bc/0x1e0 [  216.313351]  stmmac_xdp_xmit_xdpf+0x354/0x400 [  216.317701]  __stmmac_xdp_run_prog+0x164/0x368 [  216.322139]  stmmac_napi_poll_rxtx+0xba8/0xf00 [  216.326576]  __napi_poll+0x40/0x218 [  216.408054] Kernel panic - not syncing: Oops: Fatal exception in interrupt  For XDP_TX action, the xdp_buff is converted to xdp_frame by xdp_convert_buff_to_frame(). The memory type of the resulting xdp_frame depends on the memory type of the xdp_buff. For page pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_POOL. For zero copy XSK pool based xdp_buff it produces xdp_frame with memory type MEM_TYPE_PAGE_ORDER0. However, stmmac_xdp_xmit_back() does not check the memory type and always uses the page pool type, this leads to invalid mappings and causes the crash. Therefore, check the xdp_buff memory type in stmmac_xdp_xmit_back() to fix this issue.",
                                "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-71101",
                                "url": "https://ubuntu.com/security/CVE-2025-71101",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: hp-bioscfg: Fix out-of-bounds array access in ACPI package parsing  The hp_populate_*_elements_from_package() functions in the hp-bioscfg driver contain out-of-bounds array access vulnerabilities.  These functions parse ACPI packages into internal data structures using a for loop with index variable 'elem' that iterates through enum_obj/integer_obj/order_obj/password_obj/string_obj arrays.  When processing multi-element fields like PREREQUISITES and ENUM_POSSIBLE_VALUES, these functions read multiple consecutive array elements using expressions like 'enum_obj[elem + reqs]' and 'enum_obj[elem + pos_values]' within nested loops.  The bug is that the bounds check only validated elem, but did not consider the additional offset when accessing elem + reqs or elem + pos_values.  The fix changes the bounds check to validate the actual accessed index.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16: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-71071",
                                "url": "https://ubuntu.com/security/CVE-2025-71071",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommu/mediatek: fix use-after-free on probe deferral  The driver is dropping the references taken to the larb devices during probe after successful lookup as well as on errors. This can potentially lead to a use-after-free in case a larb device has not yet been bound to its driver so that the iommu driver probe defers.  Fix this by keeping the references as expected while the iommu driver is bound.",
                                "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-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-71149",
                                "url": "https://ubuntu.com/security/CVE-2025-71149",
                                "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68778",
                                "url": "https://ubuntu.com/security/CVE-2025-68778",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: don't log conflicting inode if it's a dir moved in the current transaction  We can't log a conflicting inode if it's a directory and it was moved from one parent directory to another parent directory in the current transaction, as this can result an attempt to have a directory with two hard links during log replay, one for the old parent directory and another for the new parent directory.  The following scenario triggers that issue:  1) We have directories \"dir1\" and \"dir2\" created in a past transaction.    Directory \"dir1\" has inode A as its parent directory;  2) We move \"dir1\" to some other directory;  3) We create a file with the name \"dir1\" in directory inode A;  4) We fsync the new file. This results in logging the inode of the new file    and the inode for the directory \"dir1\" that was previously moved in the    current transaction. So the log tree has the INODE_REF item for the    new location of \"dir1\";  5) We move the new file to some other directory. This results in updating    the log tree to included the new INODE_REF for the new location of the    file and removes the INODE_REF for the old location. This happens    during the rename when we call btrfs_log_new_name();  6) We fsync the file, and that persists the log tree changes done in the    previous step (btrfs_log_new_name() only updates the log tree in    memory);  7) We have a power failure;  8) Next time the fs is mounted, log replay happens and when processing    the inode for directory \"dir1\" we find a new INODE_REF and add that    link, but we don't remove the old link of the inode since we have    not logged the old parent directory of the directory inode \"dir1\".  As a result after log replay finishes when we trigger writeback of the subvolume tree's extent buffers, the tree check will detect that we have a directory a hard link count of 2 and we get a mount failure. The errors and stack traces reported in dmesg/syslog are like this:     [ 3845.729764] BTRFS info (device dm-0): start tree-log replay    [ 3845.730304] page: refcount:3 mapcount:0 mapping:000000005c8a3027 index:0x1d00 pfn:0x11510c    [ 3845.731236] memcg:ffff9264c02f4e00    [ 3845.731751] aops:btree_aops [btrfs] ino:1    [ 3845.732300] flags: 0x17fffc00000400a(uptodate|private|writeback|node=0|zone=2|lastcpupid=0x1ffff)    [ 3845.733346] raw: 017fffc00000400a 0000000000000000 dead000000000122 ffff9264d978aea8    [ 3845.734265] raw: 0000000000001d00 ffff92650e6d4738 00000003ffffffff ffff9264c02f4e00    [ 3845.735305] page dumped because: eb page dump    [ 3845.735981] BTRFS critical (device dm-0): corrupt leaf: root=5 block=30408704 slot=6 ino=257, invalid nlink: has 2 expect no more than 1 for dir    [ 3845.737786] BTRFS info (device dm-0): leaf 30408704 gen 10 total ptrs 17 free space 14881 owner 5    [ 3845.737789] BTRFS info (device dm-0): refs 4 lock_owner 0 current 30701    [ 3845.737792] \titem 0 key (256 INODE_ITEM 0) itemoff 16123 itemsize 160    [ 3845.737794] \t\tinode generation 3 transid 9 size 16 nbytes 16384    [ 3845.737795] \t\tblock group 0 mode 40755 links 1 uid 0 gid 0    [ 3845.737797] \t\trdev 0 sequence 2 flags 0x0    [ 3845.737798] \t\tatime 1764259517.0    [ 3845.737800] \t\tctime 1764259517.572889464    [ 3845.737801] \t\tmtime 1764259517.572889464    [ 3845.737802] \t\totime 1764259517.0    [ 3845.737803] \titem 1 key (256 INODE_REF 256) itemoff 16111 itemsize 12    [ 3845.737805] \t\tindex 0 name_len 2    [ 3845.737807] \titem 2 key (256 DIR_ITEM 2363071922) itemoff 16077 itemsize 34    [ 3845.737808] \t\tlocation key (257 1 0) type 2    [ 3845.737810] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737811] \titem 3 key (256 DIR_ITEM 2676584006) itemoff 16043 itemsize 34    [ 3845.737813] \t\tlocation key (258 1 0) type 2    [ 3845.737814] \t\ttransid 9 data_len 0 name_len 4    [ 3845.737815] \titem 4 key (256 DIR_INDEX 2) itemoff 16009 itemsize 34    [ 3845.737816] \t\tlocation key (257 1 0) type 2    [ ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71119",
                                "url": "https://ubuntu.com/security/CVE-2025-71119",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/kexec: Enable SMT before waking offline CPUs  If SMT is disabled or a partial SMT state is enabled, when a new kernel image is loaded for kexec, on reboot the following warning is observed:  kexec: Waking offline cpu 228. WARNING: CPU: 0 PID: 9062 at arch/powerpc/kexec/core_64.c:223 kexec_prepare_cpus+0x1b0/0x1bc [snip]  NIP kexec_prepare_cpus+0x1b0/0x1bc  LR  kexec_prepare_cpus+0x1a0/0x1bc  Call Trace:   kexec_prepare_cpus+0x1a0/0x1bc (unreliable)   default_machine_kexec+0x160/0x19c   machine_kexec+0x80/0x88   kernel_kexec+0xd0/0x118   __do_sys_reboot+0x210/0x2c4   system_call_exception+0x124/0x320   system_call_vectored_common+0x15c/0x2ec  This occurs as add_cpu() fails due to cpu_bootable() returning false for CPUs that fail the cpu_smt_thread_allowed() check or non primary threads if SMT is disabled.  Fix the issue by enabling SMT and resetting the number of SMT threads to the number of threads per core, before attempting to wake up all present CPUs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-71148",
                                "url": "https://ubuntu.com/security/CVE-2025-71148",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: restore destructor on submit failure  handshake_req_submit() replaces sk->sk_destruct but never restores it when submission fails before the request is hashed. handshake_sk_destruct() then returns early and the original destructor never runs, leaking the socket. Restore sk_destruct on the error path.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15: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-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-71107",
                                "url": "https://ubuntu.com/security/CVE-2025-71107",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: ensure node page reads complete before f2fs_put_super() finishes  Xfstests generic/335, generic/336 sometimes crash with the following message:  F2FS-fs (dm-0): detect filesystem reference count leak during umount, type: 9, count: 1 ------------[ cut here ]------------ kernel BUG at fs/f2fs/super.c:1939! Oops: invalid opcode: 0000 [#1] SMP NOPTI CPU: 1 UID: 0 PID: 609351 Comm: umount Tainted: G        W          6.17.0-rc5-xfstests-g9dd1835ecda5 #1 PREEMPT(none) Tainted: [W]=WARN Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:f2fs_put_super+0x3b3/0x3c0 Call Trace:  <TASK>  generic_shutdown_super+0x7e/0x190  kill_block_super+0x1a/0x40  kill_f2fs_super+0x9d/0x190  deactivate_locked_super+0x30/0xb0  cleanup_mnt+0xba/0x150  task_work_run+0x5c/0xa0  exit_to_user_mode_loop+0xb7/0xc0  do_syscall_64+0x1ae/0x1c0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  </TASK> ---[ end trace 0000000000000000 ]---  It appears that sometimes it is possible that f2fs_put_super() is called before all node page reads are completed. Adding a call to f2fs_wait_on_all_pages() for F2FS_RD_NODE fixes the problem.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15: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-71126",
                                "url": "https://ubuntu.com/security/CVE-2025-71126",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: avoid deadlock on fallback while reinjecting  Jakub reported an MPTCP deadlock at fallback time:   WARNING: possible recursive locking detected  6.18.0-rc7-virtme #1 Not tainted  --------------------------------------------  mptcp_connect/20858 is trying to acquire lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_try_fallback+0xd8/0x280   but task is already holding lock:  ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   other info that might help us debug this:   Possible unsafe locking scenario:          CPU0         ----    lock(&msk->fallback_lock);    lock(&msk->fallback_lock);    *** DEADLOCK ***    May be due to missing lock nesting notation   3 locks held by mptcp_connect/20858:   #0: ff1100001da18290 (sk_lock-AF_INET){+.+.}-{0:0}, at: mptcp_sendmsg+0x114/0x1bc0   #1: ff1100001db40fd0 (k-sk_lock-AF_INET#2){+.+.}-{0:0}, at: __mptcp_retrans+0x2cb/0xaa0   #2: ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0   stack backtrace:  CPU: 0 UID: 0 PID: 20858 Comm: mptcp_connect Not tainted 6.18.0-rc7-virtme #1 PREEMPT(full)  Hardware name: Bochs, BIOS Bochs 01/01/2011  Call Trace:   <TASK>   dump_stack_lvl+0x6f/0xa0   print_deadlock_bug.cold+0xc0/0xcd   validate_chain+0x2ff/0x5f0   __lock_acquire+0x34c/0x740   lock_acquire.part.0+0xbc/0x260   _raw_spin_lock_bh+0x38/0x50   __mptcp_try_fallback+0xd8/0x280   mptcp_sendmsg_frag+0x16c2/0x3050   __mptcp_retrans+0x421/0xaa0   mptcp_release_cb+0x5aa/0xa70   release_sock+0xab/0x1d0   mptcp_sendmsg+0xd5b/0x1bc0   sock_write_iter+0x281/0x4d0   new_sync_write+0x3c5/0x6f0   vfs_write+0x65e/0xbb0   ksys_write+0x17e/0x200   do_syscall_64+0xbb/0xfd0   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7fa5627cbc5e  Code: 4d 89 d8 e8 14 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa  RSP: 002b:00007fff1fe14700 EFLAGS: 00000202 ORIG_RAX: 0000000000000001  RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00007fa5627cbc5e  RDX: 0000000000001f9c RSI: 00007fff1fe16984 RDI: 0000000000000005  RBP: 00007fff1fe14710 R08: 0000000000000000 R09: 0000000000000000  R10: 0000000000000000 R11: 0000000000000202 R12: 00007fff1fe16920  R13: 0000000000002000 R14: 0000000000001f9c R15: 0000000000001f9c  The packet scheduler could attempt a reinjection after receiving an MP_FAIL and before the infinite map has been transmitted, causing a deadlock since MPTCP needs to do the reinjection atomically from WRT fallback.  Address the issue explicitly avoiding the reinjection in the critical scenario. Note that this is the only fallback critical section that could potentially send packets and hit the double-lock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-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-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-71151",
                                "url": "https://ubuntu.com/security/CVE-2025-71151",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cifs: Fix memory and information leak in smb3_reconfigure()  In smb3_reconfigure(), if smb3_sync_session_ctx_passwords() fails, the function returns immediately without freeing and erasing the newly allocated new_password and new_password2. This causes both a memory leak and a potential information leak.  Fix this by calling kfree_sensitive() on both password buffers before returning in this error case.",
                                "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-68773",
                                "url": "https://ubuntu.com/security/CVE-2025-68773",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: fsl-cpm: Check length parity before switching to 16 bit mode  Commit fc96ec826bce (\"spi: fsl-cpm: Use 16 bit mode for large transfers with even size\") failed to make sure that the size is really even before switching to 16 bit mode. Until recently the problem went unnoticed because kernfs uses a pre-allocated bounce buffer of size PAGE_SIZE for reading EEPROM.  But commit 8ad6249c51d0 (\"eeprom: at25: convert to spi-mem API\") introduced an additional dynamically allocated bounce buffer whose size is exactly the size of the transfer, leading to a buffer overrun in the fsl-cpm driver when that size is odd.  Add the missing length parity verification and remain in 8 bit mode when the length is not even.",
                                "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-68806",
                                "url": "https://ubuntu.com/security/CVE-2025-68806",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix buffer validation by including null terminator size in EA length  The smb2_set_ea function, which handles Extended Attributes (EA), was performing buffer validation checks that incorrectly omitted the size of the null terminating character (+1 byte) for EA Name. This patch fixes the issue by explicitly adding '+ 1' to EaNameLength where the null terminator is expected to be present in the buffer, ensuring the validation accurately reflects the total required buffer size.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71150",
                                "url": "https://ubuntu.com/security/CVE-2025-71150",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: Fix refcount leak when invalid session is found on session lookup  When a session is found but its state is not SMB2_SESSION_VALID, It indicates that no valid session was found, but it is missing to decrement the reference count acquired by the session lookup, which results in a reference count leak. This patch fixes the issue by explicitly calling ksmbd_user_session_put to release the reference to the session.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68786",
                                "url": "https://ubuntu.com/security/CVE-2025-68786",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: skip lock-range check on equal size to avoid size==0 underflow  When size equals the current i_size (including 0), the code used to call check_lock_range(filp, i_size, size - 1, WRITE), which computes `size - 1` and can underflow for size==0. Skip the equal case.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68789",
                                "url": "https://ubuntu.com/security/CVE-2025-68789",
                                "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                                "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-68775",
                                "url": "https://ubuntu.com/security/CVE-2025-68775",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/handshake: duplicate handshake cancellations leak socket  When a handshake request is cancelled it is removed from the handshake_net->hn_requests list, but it is still present in the handshake_rhashtbl until it is destroyed.  If a second cancellation request arrives for the same handshake request, then remove_pending() will return false... and assuming HANDSHAKE_F_REQ_COMPLETED isn't set in req->hr_flags, we'll continue processing through the out_true label, where we put another reference on the sock and a refcount underflow occurs.  This can happen for example if a handshake times out - particularly if the SUNRPC client sends the AUTH_TLS probe to the server but doesn't follow it up with the ClientHello due to a problem with tlshd.  When the timeout is hit on the server, the server will send a FIN, which triggers a cancellation request via xs_reset_transport().  When the timeout is hit on the client, another cancellation request happens via xs_tls_handshake_sync().  Add a test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED) in the pending cancel path so duplicate cancels can be detected.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15: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-71122",
                                "url": "https://ubuntu.com/security/CVE-2025-71122",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iommufd/selftest: Check for overflow in IOMMU_TEST_OP_ADD_RESERVED  syzkaller found it could overflow math in the test infrastructure and cause a WARN_ON by corrupting the reserved interval tree. This only effects test kernels with CONFIG_IOMMUFD_TEST.  Validate the user input length in the test ioctl.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15: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-68809",
                                "url": "https://ubuntu.com/security/CVE-2025-68809",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: vfs: fix race on m_flags in vfs_cache  ksmbd maintains delete-on-close and pending-delete state in ksmbd_inode->m_flags. In vfs_cache.c this field is accessed under inconsistent locking: some paths read and modify m_flags under ci->m_lock while others do so without taking the lock at all.  Examples:   - ksmbd_query_inode_status() and __ksmbd_inode_close() use    ci->m_lock when checking or updating m_flags.  - ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete() and ksmbd_fd_set_delete_on_close()    used to read and modify m_flags without ci->m_lock.  This creates a potential data race on m_flags when multiple threads open, close and delete the same file concurrently. In the worst case delete-on-close and pending-delete bits can be lost or observed in an inconsistent state, leading to confusing delete semantics (files that stay on disk after delete-on-close, or files that disappear while still in use).  Fix it by:   - Making ksmbd_query_inode_status() look at m_flags under ci->m_lock    after dropping inode_hash_lock.  - Adding ci->m_lock protection to all helpers that read or modify    m_flags (ksmbd_inode_pending_delete(), ksmbd_set_inode_pending_delete(),    ksmbd_clear_inode_pending_delete(), ksmbd_fd_set_delete_on_close()).  - Keeping the existing ci->m_lock protection in __ksmbd_inode_close(),    and moving the actual unlink/xattr removal outside the lock.  This unifies the locking around m_flags and removes the data race while preserving the existing delete-on-close behaviour.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68817",
                                "url": "https://ubuntu.com/security/CVE-2025-68817",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency  Under high concurrency, A tree-connection object (tcon) is freed on a disconnect path while another path still holds a reference and later executes *_put()/write on it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16: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-71067",
                                "url": "https://ubuntu.com/security/CVE-2025-71067",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs: set dummy blocksize to read boot_block when mounting  When mounting, sb->s_blocksize is used to read the boot_block without being defined or validated. Set a dummy blocksize before attempting to read the boot_block.  The issue can be triggered with the following syz reproducer:    mkdirat(0xffffffffffffff9c, &(0x7f0000000080)='./file1\\x00', 0x0)   r4 = openat$nullb(0xffffffffffffff9c, &(0x7f0000000040), 0x121403, 0x0)   ioctl$FS_IOC_SETFLAGS(r4, 0x40081271, &(0x7f0000000980)=0x4000)   mount(&(0x7f0000000140)=@nullb, &(0x7f0000000040)='./cgroup\\x00',         &(0x7f0000000000)='ntfs3\\x00', 0x2208004, 0x0)   syz_clone(0x88200200, 0x0, 0x0, 0x0, 0x0, 0x0)  Here, the ioctl sets the bdev block size to 16384. During mount, get_tree_bdev_flags() calls sb_set_blocksize(sb, block_size(bdev)), but since block_size(bdev) > PAGE_SIZE, sb_set_blocksize() leaves sb->s_blocksize at zero.  Later, ntfs_init_from_boot() attempts to read the boot_block while sb->s_blocksize is still zero, which triggers the bug.  [almaz.alexandrovich@paragon-software.com: changed comment style, added return value handling]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16: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-68798",
                                "url": "https://ubuntu.com/security/CVE-2025-68798",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  perf/x86/amd: Check event before enable to avoid GPF  On AMD machines cpuc->events[idx] can become NULL in a subtle race condition with NMI->throttle->x86_pmu_stop().  Check event for NULL in amd_pmu_enable_all() before enable to avoid a GPF. This appears to be an AMD only issue.  Syzkaller reported a GPF in amd_pmu_enable_all.  INFO: NMI handler (perf_event_nmi_handler) took too long to run: 13.143     msecs Oops: general protection fault, probably for non-canonical address     0xdffffc0000000034: 0000  PREEMPT SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x00000000000001a0-0x00000000000001a7] CPU: 0 UID: 0 PID: 328415 Comm: repro_36674776 Not tainted 6.12.0-rc1-syzk RIP: 0010:x86_pmu_enable_event (arch/x86/events/perf_event.h:1195     arch/x86/events/core.c:1430) RSP: 0018:ffff888118009d60 EFLAGS: 00010012 RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000000034 RSI: 0000000000000000 RDI: 00000000000001a0 RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000002 R13: ffff88811802a440 R14: ffff88811802a240 R15: ffff8881132d8601 FS:  00007f097dfaa700(0000) GS:ffff888118000000(0000) GS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000200001c0 CR3: 0000000103d56000 CR4: 00000000000006f0 Call Trace:  <IRQ> amd_pmu_enable_all (arch/x86/events/amd/core.c:760 (discriminator 2)) x86_pmu_enable (arch/x86/events/core.c:1360) event_sched_out (kernel/events/core.c:1191 kernel/events/core.c:1186     kernel/events/core.c:2346) __perf_remove_from_context (kernel/events/core.c:2435) event_function (kernel/events/core.c:259) remote_function (kernel/events/core.c:92 (discriminator 1)     kernel/events/core.c:72 (discriminator 1)) __flush_smp_call_function_queue (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207 ./include/trace/events/csd.h:64     kernel/smp.c:135 kernel/smp.c:540) __sysvec_call_function_single (./arch/x86/include/asm/jump_label.h:27     ./include/linux/jump_label.h:207     ./arch/x86/include/asm/trace/irq_vectors.h:99 arch/x86/kernel/smp.c:272) sysvec_call_function_single (arch/x86/kernel/smp.c:266 (discriminator 47)     arch/x86/kernel/smp.c:266 (discriminator 47))  </IRQ>",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68794",
                                "url": "https://ubuntu.com/security/CVE-2025-68794",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iomap: adjust read range correctly for non-block-aligned positions  iomap_adjust_read_range() assumes that the position and length passed in are block-aligned. This is not always the case however, as shown in the syzbot generated case for erofs. This causes too many bytes to be skipped for uptodate blocks, which results in returning the incorrect position and length to read in. If all the blocks are uptodate, this underflows length and returns a position beyond the folio.  Fix the calculation to also take into account the block offset when calculating how many bytes can be skipped for uptodate blocks.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16: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-68766",
                                "url": "https://ubuntu.com/security/CVE-2025-68766",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()  If irq_domain_translate_twocell() sets \"hwirq\" to >= MCHP_EIC_NIRQ (2) then it results in an out of bounds access.  The code checks for invalid values, but doesn't set the error code.  Return -EINVAL in that case, instead of returning success.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68756",
                                "url": "https://ubuntu.com/security/CVE-2025-68756",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  block: Use RCU in blk_mq_[un]quiesce_tagset() instead of set->tag_list_lock  blk_mq_{add,del}_queue_tag_set() functions add and remove queues from tagset, the functions make sure that tagset and queues are marked as shared when two or more queues are attached to the same tagset. Initially a tagset starts as unshared and when the number of added queues reaches two, blk_mq_add_queue_tag_set() marks it as shared along with all the queues attached to it. When the number of attached queues drops to 1 blk_mq_del_queue_tag_set() need to mark both the tagset and the remaining queues as unshared.  Both functions need to freeze current queues in tagset before setting on unsetting BLK_MQ_F_TAG_QUEUE_SHARED flag. While doing so, both functions hold set->tag_list_lock mutex, which makes sense as we do not want queues to be added or deleted in the process. This used to work fine until commit 98d81f0df70c (\"nvme: use blk_mq_[un]quiesce_tagset\") made the nvme driver quiesce tagset instead of quiscing individual queues. blk_mq_quiesce_tagset() does the job and quiesce the queues in set->tag_list while holding set->tag_list_lock also.  This results in deadlock between two threads with these stacktraces:    __schedule+0x47c/0xbb0   ? timerqueue_add+0x66/0xb0   schedule+0x1c/0xa0   schedule_preempt_disabled+0xa/0x10   __mutex_lock.constprop.0+0x271/0x600   blk_mq_quiesce_tagset+0x25/0xc0   nvme_dev_disable+0x9c/0x250   nvme_timeout+0x1fc/0x520   blk_mq_handle_expired+0x5c/0x90   bt_iter+0x7e/0x90   blk_mq_queue_tag_busy_iter+0x27e/0x550   ? __blk_mq_complete_request_remote+0x10/0x10   ? __blk_mq_complete_request_remote+0x10/0x10   ? __call_rcu_common.constprop.0+0x1c0/0x210   blk_mq_timeout_work+0x12d/0x170   process_one_work+0x12e/0x2d0   worker_thread+0x288/0x3a0   ? rescuer_thread+0x480/0x480   kthread+0xb8/0xe0   ? kthread_park+0x80/0x80   ret_from_fork+0x2d/0x50   ? kthread_park+0x80/0x80   ret_from_fork_asm+0x11/0x20    __schedule+0x47c/0xbb0   ? xas_find+0x161/0x1a0   schedule+0x1c/0xa0   blk_mq_freeze_queue_wait+0x3d/0x70   ? destroy_sched_domains_rcu+0x30/0x30   blk_mq_update_tag_set_shared+0x44/0x80   blk_mq_exit_queue+0x141/0x150   del_gendisk+0x25a/0x2d0   nvme_ns_remove+0xc9/0x170   nvme_remove_namespaces+0xc7/0x100   nvme_remove+0x62/0x150   pci_device_remove+0x23/0x60   device_release_driver_internal+0x159/0x200   unbind_store+0x99/0xa0   kernfs_fop_write_iter+0x112/0x1e0   vfs_write+0x2b1/0x3d0   ksys_write+0x4e/0xb0   do_syscall_64+0x5b/0x160   entry_SYSCALL_64_after_hwframe+0x4b/0x53  The top stacktrace is showing nvme_timeout() called to handle nvme command timeout. timeout handler is trying to disable the controller and as a first step, it needs to blk_mq_quiesce_tagset() to tell blk-mq not to call queue callback handlers. The thread is stuck waiting for set->tag_list_lock as it tries to walk the queues in set->tag_list.  The lock is held by the second thread in the bottom stack which is waiting for one of queues to be frozen. The queue usage counter will drop to zero after nvme_timeout() finishes, and this will not happen because the thread will wait for this mutex forever.  Given that [un]quiescing queue is an operation that does not need to sleep, update blk_mq_[un]quiesce_tagset() to use RCU instead of taking set->tag_list_lock, update blk_mq_{add,del}_queue_tag_set() to use RCU safe list operations. Also, delete INIT_LIST_HEAD(&q->tag_set_list) in blk_mq_del_queue_tag_set() because we can not re-initialize it while the list is being traversed under RCU. The deleted queue will not be added/deleted to/from a tagset and it will be freed in blk_free_queue() after the end of RCU grace period.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68753",
                                "url": "https://ubuntu.com/security/CVE-2025-68753",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: add bounds check in put_user loop for DSP events  In the DSP event handling code, a put_user() loop copies event data. When the user buffer size is not aligned to 4 bytes, it could overwrite beyond the buffer boundary.  Fix by adding a bounds check before put_user().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68347",
                                "url": "https://ubuntu.com/security/CVE-2025-68347",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: firewire-motu: fix buffer overflow in hwdep read for DSP events  The DSP event handling code in hwdep_read() could write more bytes to the user buffer than requested, when a user provides a buffer smaller than the event header size (8 bytes).  Fix by using min_t() to clamp the copy size, This ensures we never copy more than the user requested.",
                                "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-68763",
                                "url": "https://ubuntu.com/security/CVE-2025-68763",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: starfive - Correctly handle return of sg_nents_for_len  The return value of sg_nents_for_len was assigned to an unsigned long in starfive_hash_digest, causing negative error codes to be converted to large positive integers.  Add error checking for sg_nents_for_len and return immediately on failure to prevent potential buffer overflows.",
                                "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-68741",
                                "url": "https://ubuntu.com/security/CVE-2025-68741",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: qla2xxx: Fix improper freeing of purex item  In qla2xxx_process_purls_iocb(), an item is allocated via qla27xx_copy_multiple_pkt(), which internally calls qla24xx_alloc_purex_item().  The qla24xx_alloc_purex_item() function may return a pre-allocated item from a per-adapter pool for small allocations, instead of dynamically allocating memory with kzalloc().  An error handling path in qla2xxx_process_purls_iocb() incorrectly uses kfree() to release the item. If the item was from the pre-allocated pool, calling kfree() on it is a bug that can lead to memory corruption.  Fix this by using the correct deallocation function, qla24xx_free_purex_item(), which properly handles both dynamically allocated and pre-allocated items.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68742",
                                "url": "https://ubuntu.com/security/CVE-2025-68742",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Fix invalid prog->stats access when update_effective_progs fails  Syzkaller triggers an invalid memory access issue following fault injection in update_effective_progs. The issue can be described as follows:  __cgroup_bpf_detach   update_effective_progs     compute_effective_progs       bpf_prog_array_alloc <-- fault inject   purge_effective_progs     /* change to dummy_bpf_prog */     array->items[index] = &dummy_bpf_prog.prog  ---softirq start--- __do_softirq   ...     __cgroup_bpf_run_filter_skb       __bpf_prog_run_save_cb         bpf_prog_run           stats = this_cpu_ptr(prog->stats)           /* invalid memory access */           flags = u64_stats_update_begin_irqsave(&stats->syncp) ---softirq end---    static_branch_dec(&cgroup_bpf_enabled_key[atype])  The reason is that fault injection caused update_effective_progs to fail and then changed the original prog into dummy_bpf_prog.prog in purge_effective_progs. Then a softirq came, and accessing the members of dummy_bpf_prog.prog in the softirq triggers invalid mem access.  To fix it, skip updating stats when stats is NULL.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16: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-68363",
                                "url": "https://ubuntu.com/security/CVE-2025-68363",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Check skb->transport_header is set in bpf_skb_check_mtu  The bpf_skb_check_mtu helper needs to use skb->transport_header when the BPF_MTU_CHK_SEGS flag is used:  \tbpf_skb_check_mtu(skb, ifindex, &mtu_len, 0, BPF_MTU_CHK_SEGS)  The transport_header is not always set. There is a WARN_ON_ONCE report when CONFIG_DEBUG_NET is enabled + skb->gso_size is set + bpf_prog_test_run is used:  WARNING: CPU: 1 PID: 2216 at ./include/linux/skbuff.h:3071  skb_gso_validate_network_len  bpf_skb_check_mtu  bpf_prog_3920e25740a41171_tc_chk_segs_flag # A test in the next patch  bpf_test_run  bpf_prog_test_run_skb  For a normal ingress skb (not test_run), skb_reset_transport_header is performed but there is plan to avoid setting it as described in commit 2170a1f09148 (\"net: no longer reset transport_header in __netif_receive_skb_core()\").  This patch fixes the bpf helper by checking skb_transport_header_was_set(). The check is done just before skb->transport_header is used, to avoid breaking the existing bpf prog. The WARN_ON_ONCE is limited to bpf_prog_test_run, so targeting bpf-next.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68744",
                                "url": "https://ubuntu.com/security/CVE-2025-68744",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Free special fields when update [lru_,]percpu_hash maps  As [lru_,]percpu_hash maps support BPF_KPTR_{REF,PERCPU}, missing calls to 'bpf_obj_free_fields()' in 'pcpu_copy_value()' could cause the memory referenced by BPF_KPTR_{REF,PERCPU} fields to be held until the map gets freed.  Fix this by calling 'bpf_obj_free_fields()' after 'copy_map_value[,_long]()' in 'pcpu_copy_value()'.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16: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-68755",
                                "url": "https://ubuntu.com/security/CVE-2025-68755",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: most: remove broken i2c driver  The MOST I2C driver has been completely broken for five years without anyone noticing so remove the driver from staging.  Specifically, commit 723de0f9171e (\"staging: most: remove device from interface structure\") started requiring drivers to set the interface device pointer before registration, but the I2C driver was never updated which results in a NULL pointer dereference if anyone ever tries to probe it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68371",
                                "url": "https://ubuntu.com/security/CVE-2025-68371",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: smartpqi: Fix device resources accessed after device removal  Correct possible race conditions during device removal.  Previously, a scheduled work item to reset a LUN could still execute after the device was removed, leading to use-after-free and other resource access issues.  This race condition occurs because the abort handler may schedule a LUN reset concurrently with device removal via sdev_destroy(), leading to use-after-free and improper access to freed resources.    - Check in the device reset handler if the device is still present in     the controller's SCSI device list before running; if not, the reset     is skipped.    - Cancel any pending TMF work that has not started in sdev_destroy().    - Ensure device freeing in sdev_destroy() is done while holding the     LUN reset mutex to avoid races with ongoing resets.",
                                "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-68379",
                                "url": "https://ubuntu.com/security/CVE-2025-68379",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/rxe: Fix null deref on srq->rq.queue after resize failure  A NULL pointer dereference can occur in rxe_srq_chk_attr() when ibv_modify_srq() is invoked twice in succession under certain error conditions. The first call may fail in rxe_queue_resize(), which leads rxe_srq_from_attr() to set srq->rq.queue = NULL. The second call then triggers a crash (null deref) when accessing srq->rq.queue->buf->index_mask.  Call Trace: <TASK> rxe_modify_srq+0x170/0x480 [rdma_rxe] ? __pfx_rxe_modify_srq+0x10/0x10 [rdma_rxe] ? uverbs_try_lock_object+0x4f/0xa0 [ib_uverbs] ? rdma_lookup_get_uobject+0x1f0/0x380 [ib_uverbs] ib_uverbs_modify_srq+0x204/0x290 [ib_uverbs] ? __pfx_ib_uverbs_modify_srq+0x10/0x10 [ib_uverbs] ? tryinc_node_nr_active+0xe6/0x150 ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x2c0/0x470 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ? uverbs_fill_udata+0xed/0x4f0 [ib_uverbs] ib_uverbs_run_method+0x55a/0x6e0 [ib_uverbs] ? __pfx_ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x10/0x10 [ib_uverbs] ib_uverbs_cmd_verbs+0x54d/0x800 [ib_uverbs] ? __pfx_ib_uverbs_cmd_verbs+0x10/0x10 [ib_uverbs] ? __pfx___raw_spin_lock_irqsave+0x10/0x10 ? __pfx_do_vfs_ioctl+0x10/0x10 ? ioctl_has_perm.constprop.0.isra.0+0x2c7/0x4c0 ? __pfx_ioctl_has_perm.constprop.0.isra.0+0x10/0x10 ib_uverbs_ioctl+0x13e/0x220 [ib_uverbs] ? __pfx_ib_uverbs_ioctl+0x10/0x10 [ib_uverbs] __x64_sys_ioctl+0x138/0x1c0 do_syscall_64+0x82/0x250 ? fdget_pos+0x58/0x4c0 ? ksys_write+0xf3/0x1c0 ? __pfx_ksys_write+0x10/0x10 ? do_syscall_64+0xc8/0x250 ? __pfx_vm_mmap_pgoff+0x10/0x10 ? fget+0x173/0x230 ? fput+0x2a/0x80 ? ksys_mmap_pgoff+0x224/0x4c0 ? do_syscall_64+0xc8/0x250 ? do_user_addr_fault+0x37b/0xfe0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 ? clear_bhb_loop+0x50/0xa0 entry_SYSCALL_64_after_hwframe+0x76/0x7e",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68380",
                                "url": "https://ubuntu.com/security/CVE-2025-68380",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: ath11k: fix peer HE MCS assignment  In ath11k_wmi_send_peer_assoc_cmd(), peer's transmit MCS is sent to firmware as receive MCS while peer's receive MCS sent as transmit MCS, which goes against firmwire's definition.  While connecting to a misbehaved AP that advertises 0xffff (meaning not supported) for 160 MHz transmit MCS map, firmware crashes due to 0xffff is assigned to he_mcs->rx_mcs_set field.  \tExt Tag: HE Capabilities \t    [...] \t    Supported HE-MCS and NSS Set \t\t[...] \t        Rx and Tx MCS Maps 160 MHz \t\t    [...] \t            Tx HE-MCS Map 160 MHz: 0xffff  Swap the assignment to fix this issue.  As the HE rate control mask is meant to limit our own transmit MCS, it needs to go via he_mcs->rx_mcs_set field. With the aforementioned swapping done, change is needed as well to apply it to the peer's receive MCS.  Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41 Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11: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-68256",
                                "url": "https://ubuntu.com/security/CVE-2025-68256",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in rtw_get_ie() parser  The Information Element (IE) parser rtw_get_ie() trusted the length byte of each IE without validating that the IE body (len bytes after the 2-byte header) fits inside the remaining frame buffer. A malformed frame can advertise an IE length larger than the available data, causing the parser to increment its pointer beyond the buffer end. This results in out-of-bounds reads or, depending on the pattern, an infinite loop.  Fix by validating that (offset + 2 + len) does not exceed the limit before accepting the IE or advancing to the next element.  This prevents OOB reads and ensures the parser terminates safely on malformed frames.",
                                "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-68265",
                                "url": "https://ubuntu.com/security/CVE-2025-68265",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: fix admin request_queue lifetime  The namespaces can access the controller's admin request_queue, and stale references on the namespaces may exist after tearing down the controller. Ensure the admin request_queue is active by moving the controller's 'put' to after all controller references have been released to ensure no one is can access the request_queue. This fixes a reported use-after-free bug:    BUG: KASAN: slab-use-after-free in blk_queue_enter+0x41c/0x4a0   Read of size 8 at addr ffff88c0a53819f8 by task nvme/3287   CPU: 67 UID: 0 PID: 3287 Comm: nvme Tainted: G            E      6.13.2-ga1582f1a031e #15   Tainted: [E]=UNSIGNED_MODULE   Hardware name: Jabil /EGS 2S MB1, BIOS 1.00 06/18/2025   Call Trace:    <TASK>    dump_stack_lvl+0x4f/0x60    print_report+0xc4/0x620    ? _raw_spin_lock_irqsave+0x70/0xb0    ? _raw_read_unlock_irqrestore+0x30/0x30    ? blk_queue_enter+0x41c/0x4a0    kasan_report+0xab/0xe0    ? blk_queue_enter+0x41c/0x4a0    blk_queue_enter+0x41c/0x4a0    ? __irq_work_queue_local+0x75/0x1d0    ? blk_queue_start_drain+0x70/0x70    ? irq_work_queue+0x18/0x20    ? vprintk_emit.part.0+0x1cc/0x350    ? wake_up_klogd_work_func+0x60/0x60    blk_mq_alloc_request+0x2b7/0x6b0    ? __blk_mq_alloc_requests+0x1060/0x1060    ? __switch_to+0x5b7/0x1060    nvme_submit_user_cmd+0xa9/0x330    nvme_user_cmd.isra.0+0x240/0x3f0    ? force_sigsegv+0xe0/0xe0    ? nvme_user_cmd64+0x400/0x400    ? vfs_fileattr_set+0x9b0/0x9b0    ? cgroup_update_frozen_flag+0x24/0x1c0    ? cgroup_leave_frozen+0x204/0x330    ? nvme_ioctl+0x7c/0x2c0    blkdev_ioctl+0x1a8/0x4d0    ? blkdev_common_ioctl+0x1930/0x1930    ? fdget+0x54/0x380    __x64_sys_ioctl+0x129/0x190    do_syscall_64+0x5b/0x160    entry_SYSCALL_64_after_hwframe+0x4b/0x53   RIP: 0033:0x7f765f703b0b   Code: ff ff ff 85 c0 79 9b 49 c7 c4 ff ff ff ff 5b 5d 4c 89 e0 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d dd 52 0f 00 f7 d8 64 89 01 48   RSP: 002b:00007ffe2cefe808 EFLAGS: 00000202 ORIG_RAX: 0000000000000010   RAX: ffffffffffffffda RBX: 00007ffe2cefe860 RCX: 00007f765f703b0b   RDX: 00007ffe2cefe860 RSI: 00000000c0484e41 RDI: 0000000000000003   RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000000   R10: 00007f765f611d50 R11: 0000000000000202 R12: 0000000000000003   R13: 00000000c0484e41 R14: 0000000000000001 R15: 00007ffe2cefea60    </TASK>",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15: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-68259",
                                "url": "https://ubuntu.com/security/CVE-2025-68259",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: SVM: Don't skip unrelated instruction if INT3/INTO is replaced  When re-injecting a soft interrupt from an INT3, INT0, or (select) INTn instruction, discard the exception and retry the instruction if the code stream is changed (e.g. by a different vCPU) between when the CPU executes the instruction and when KVM decodes the instruction to get the next RIP.  As effectively predicted by commit 6ef88d6e36c2 (\"KVM: SVM: Re-inject INT3/INTO instead of retrying the instruction\"), failure to verify that the correct INTn instruction was decoded can effectively clobber guest state due to decoding the wrong instruction and thus specifying the wrong next RIP.  The bug most often manifests as \"Oops: int3\" panics on static branch checks in Linux guests.  Enabling or disabling a static branch in Linux uses the kernel's \"text poke\" code patching mechanism.  To modify code while other CPUs may be executing that code, Linux (temporarily) replaces the first byte of the original instruction with an int3 (opcode 0xcc), then patches in the new code stream except for the first byte, and finally replaces the int3 with the first byte of the new code stream.  If a CPU hits the int3, i.e. executes the code while it's being modified, then the guest kernel must look up the RIP to determine how to handle the #BP, e.g. by emulating the new instruction.  If the RIP is incorrect, then this lookup fails and the guest kernel panics.  The bug reproduces almost instantly by hacking the guest kernel to repeatedly check a static branch[1] while running a drgn script[2] on the host to constantly swap out the memory containing the guest's TSS.  [1]: https://gist.github.com/osandov/44d17c51c28c0ac998ea0334edf90b5a [2]: https://gist.github.com/osandov/10e45e45afa29b11e0c7209247afc00b",
                                "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-68263",
                                "url": "https://ubuntu.com/security/CVE-2025-68263",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: ipc: fix use-after-free in ipc_msg_send_request  ipc_msg_send_request() waits for a generic netlink reply using an ipc_msg_table_entry on the stack. The generic netlink handler (handle_generic_event()/handle_response()) fills entry->response under ipc_msg_table_lock, but ipc_msg_send_request() used to validate and free entry->response without holding the same lock.  Under high concurrency this allows a race where handle_response() is copying data into entry->response while ipc_msg_send_request() has just freed it, leading to a slab-use-after-free reported by KASAN in handle_generic_event():    BUG: KASAN: slab-use-after-free in handle_generic_event+0x3c4/0x5f0 [ksmbd]   Write of size 12 at addr ffff888198ee6e20 by task pool/109349   ...   Freed by task:     kvfree     ipc_msg_send_request [ksmbd]     ksmbd_rpc_open -> ksmbd_session_rpc_open [ksmbd]  Fix by: - Taking ipc_msg_table_lock in ipc_msg_send_request() while validating   entry->response, freeing it when invalid, and removing the entry from   ipc_msg_table. - Returning the final entry->response pointer to the caller only after   the hash entry is removed under the lock. - Returning NULL in the error path, preserving the original API   semantics.  This makes all accesses to entry->response consistent with handle_response(), which already updates and fills the response buffer under ipc_msg_table_lock, and closes the race that allowed the UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15: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-2026-23111",
                                "url": "https://ubuntu.com/security/CVE-2026-23111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23209",
                                "url": "https://ubuntu.com/security/CVE-2026-23209",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macvlan: fix error recovery in macvlan_common_newlink()  valis provided a nice repro to crash the kernel:  ip link add p1 type veth peer p2 ip link set address 00:00:00:00:00:20 dev p1 ip link set up dev p1 ip link set up dev p2  ip link add mv0 link p2 type macvlan mode source ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20  ping -c1 -I p1 1.2.3.4  He also gave a very detailed analysis:  <quote valis>  The issue is triggered when a new macvlan link is created  with MACVLAN_MODE_SOURCE mode and MACVLAN_MACADDR_ADD (or MACVLAN_MACADDR_SET) parameter, lower device already has a macvlan port and register_netdevice() called from macvlan_common_newlink() fails (e.g. because of the invalid link name).  In this case macvlan_hash_add_source is called from macvlan_change_sources() / macvlan_common_newlink():  This adds a reference to vlan to the port's vlan_source_hash using macvlan_source_entry.  vlan is a pointer to the priv data of the link that is being created.  When register_netdevice() fails, the error is returned from macvlan_newlink() to rtnl_newlink_create():          if (ops->newlink)                 err = ops->newlink(dev, &params, extack);         else                 err = register_netdevice(dev);         if (err < 0) {                 free_netdev(dev);                 goto out;         }  and free_netdev() is called, causing a kvfree() on the struct net_device that is still referenced in the source entry attached to the lower device's macvlan port.  Now all packets sent on the macvlan port with a matching source mac address will trigger a use-after-free in macvlan_forward_source().  </quote valis>  With all that, my fix is to make sure we call macvlan_flush_sources() regardless of @create value whenever \"goto destroy_macvlan_port;\" path is taken.  Many thanks to valis for following up on this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-14 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23074",
                                "url": "https://ubuntu.com/security/CVE-2026-23074",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23060",
                                "url": "https://ubuntu.com/security/CVE-2026-23060",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-110.110~22.04.1 -proposed tracker (LP: #2143477)",
                            "",
                            "  [ Ubuntu: 6.8.0-110.110 ]",
                            "",
                            "  * noble/linux: 6.8.0-110.110 -proposed tracker (LP: #2144887)",
                            "  * ITS mitigation is not enabled on affected CPUs (LP: #2144730)",
                            "    - x86/bugs: Rename CONFIG_RETPOLINE => CONFIG_MITIGATION_RETPOLINE",
                            "    - x86/bugs: Rename CONFIG_RETHUNK => CONFIG_MITIGATION_RETHUNK",
                            "    - [Config] rename config options RETHUNK and RETPOLINE",
                            "",
                            "  [ Ubuntu: 6.8.0-108.108 ]",
                            "",
                            "  * noble/linux: 6.8.0-108.108 -proposed tracker (LP: #2143478)",
                            "  * linux-riscv-6.8 is FTBFS because of missing patches (LP: #2142235)",
                            "    - riscv, bpf: Unify 32-bit sign-extension to emit_sextw",
                            "    - riscv, bpf: Unify 32-bit zero-extension to emit_zextw",
                            "    - riscv, bpf: Simplify sext and zext logics in branch instructions",
                            "    - riscv, bpf: Add necessary Zbb instructions",
                            "    - riscv, bpf: Optimize sign-extention mov insns with Zbb support",
                            "    - riscv, bpf: Optimize bswap insns with Zbb support",
                            "  * ADT test for linux package failed with \"fatal: unable to connect to",
                            "    git.launchpad.net\" (LP: #2143033)",
                            "    - [Packaging] d/t/ubuntu-regression-suite: use https to clone",
                            "  * Coresight fails to build on 6.8.0-102 due to missing function and arg",
                            "    definitions (LP: #2142337)",
                            "    - SAUCE: Revert \"coresight: catu: Support atclk\"",
                            "    - SAUCE: Revert \"coresight: catu: Move ACPI support from AMBA driver to",
                            "      platform driver\"",
                            "    - SAUCE: Revert \"coresight: tmc: Support atclk\"",
                            "    - SAUCE: Revert \"coresight: tmc: Move ACPI support from AMBA driver to",
                            "      platform driver\"",
                            "    - SAUCE: Revert \"Coresight: Set correct cs_mode for TPDM to fix disable",
                            "      issue\"",
                            "    - SAUCE: Revert \"Coresight: Set correct cs_mode for dummy source to fix",
                            "      disable issue\"",
                            "  * efi: Fix swapped arguments to bsearch() in efi_status_to_*() SAUCE patch",
                            "    (LP: #2141276)",
                            "    - SAUCE efi: Fix swapped arguments to bsearch() in efi_status_to_*()",
                            "  * Fix conntrack use after free when ovs hardware offload is enabled",
                            "    (LP: #2139322)",
                            "    - netfilter: conntrack: remove skb argument from nf_ct_refresh",
                            "    - netfilter: conntrack: rework offload nf_conn timeout extension logic",
                            "    - netfilter: conntrack: fix erronous removal of offload bit",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789)",
                            "    - xhci: fix stale flag preventig URBs after link state error is cleared",
                            "    - Revert \"xfrm: destroy xfrm_state synchronously on net exit path\"",
                            "    - xfrm: flush all states in xfrm_state_fini",
                            "    - 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",
                            "    - ftrace: bpf: Fix IPMODIFY + DIRECT in modify_ftrace_direct()",
                            "    - spi: xilinx: increase number of retries before declaring stall",
                            "    - spi: imx: keep dma request disabled before dma transfer setup",
                            "    - drm/vmwgfx: Use kref in vmw_bo_dirty",
                            "    - Bluetooth: btrtl: Avoid loading the config file on security chips",
                            "    - smb: fix invalid username check in smb3_fs_context_parse_param()",
                            "    - ALSA: usb-audio: Add native DSD quirks for PureAudio DAC series",
                            "    - HID: hid-input: Extend Elan ignore battery quirk to USB",
                            "    - pinctrl: qcom: msm: Fix deadlock in pinmux configuration",
                            "    - platform/x86: acer-wmi: Ignore backlight event",
                            "    - HID: apple: Add SONiX AK870 PRO to non_apple_keyboards quirk list",
                            "    - platform/x86: huawei-wmi: add keys for HONOR models",
                            "    - platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list",
                            "    - platform/x86/amd/pmc: Add spurious_8042 to Xbox Ally",
                            "    - HID: elecom: Add support for ELECOM M-XT3URBK (018F)",
                            "    - LoongArch: Mask all interrupts during kexec/kdump",
                            "    - samples: work around glibc redefining some of our defines wrong",
                            "    - wifi: rtw88: Add USB ID 2001:3329 for D-Link AC13U rev. A1",
                            "    - drm/panel: visionox-rm69299: Don't clear all mode flags",
                            "    - USB: Fix descriptor count when handling invalid MBIM extended descriptor",
                            "    - clk: renesas: cpg-mssr: Add missing 1ms delay into reset toggle callback",
                            "    - clk: renesas: Use str_on_off() helper",
                            "    - clk: renesas: Pass sub struct of cpg_mssr_priv to cpg_clk_register",
                            "    - clk: renesas: cpg-mssr: Read back reset registers to assure values",
                            "      latched",
                            "    - HID: logitech-hidpp: Do not assume FAP in hidpp_send_message_sync()",
                            "    - objtool: Fix standalone --hacks=jump_label",
                            "    - objtool: Fix weak symbol detection",
                            "    - sched/fair: Forfeit vruntime on yield",
                            "    - irqchip/irq-bcm7038-l1: Fix section mismatch",
                            "    - irqchip/irq-bcm7120-l2: Fix section mismatch",
                            "    - irqchip/irq-brcmstb-l2: Fix section mismatch",
                            "    - irqchip/imx-mu-msi: Fix section mismatch",
                            "    - irqchip/qcom-irq-combiner: Fix section mismatch",
                            "    - crypto: authenc - Correctly pass EINPROGRESS back up to the caller",
                            "    - 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: Fix measurement unit for odr struct member",
                            "    - arm64: dts: freescale: imx8mp-venice-gw7905-2x: remove duplicate usdhc1",
                            "      props",
                            "    - arm64: dts: imx8mm-venice-gw72xx: remove unused sdhc1 pinctrl",
                            "    - arm64: dts: imx8mp-venice-gw702x: remove off-board uart",
                            "    - arm64: dts: imx8mp-venice-gw702x: remove off-board sdhc1",
                            "    - PCI: rcar-gen2: Drop ARM dependency from PCI_RCAR_GEN2",
                            "    - uio: uio_fsl_elbc_gpcm:: Add null pointer check to",
                            "      uio_fsl_elbc_gpcm_probe",
                            "    - clk: qcom: camcc-sm6350: Specify Titan GDSC power domain as a parent to",
                            "      other",
                            "    - clk: qcom: camcc-sm6350: Fix PLL config of PLL2",
                            "    - 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",
                            "    - arm64: dts: ti: k3-am62p: Fix memory ranges for GPU",
                            "    - firmware: imx: scu-irq: fix OF node leak in",
                            "    - arm64: dts: qcom: sdm845-oneplus: Correct gpio used for slider",
                            "    - phy: mscc: Fix PTP for VSC8574 and VSC8572",
                            "    - sctp: Defer SCTP_DBG_OBJCNT_DEC() to sctp_destroy_sock().",
                            "    - ARM: dts: renesas: gose: Remove superfluous port property",
                            "    - ARM: dts: renesas: r9a06g032-rzn1d400-db: Drop invalid #cells properties",
                            "    - Revert \"mtd: rawnand: marvell: fix layouts\"",
                            "    - mtd: nand: relax ECC parameter validation check",
                            "    - mtd: rawnand: lpc32xx_slc: fix GPIO descriptor leak on probe error and",
                            "      remove",
                            "    - task_work: Fix NMI race condition",
                            "    - x86/dumpstack: Prevent KASAN false positive warnings in __show_regs()",
                            "    - tools/nolibc/stdio: let perror work when NOLIBC_IGNORE_ERRNO is set",
                            "    - soc: qcom: smem: fix hwspinlock resource leak in probe error paths",
                            "    - pinctrl: stm32: fix hwspinlock resource leak in probe function",
                            "    - i3c: fix refcount inconsistency in i3c_master_register",
                            "    - i3c: master: svc: Prevent incomplete IBI transaction",
                            "    - interconnect: qcom: msm8996: add missing link to SLAVE_USB_HS",
                            "    - arm64: dts: qcom: msm8996: add interconnect paths to USB2 controller",
                            "    - interconnect: debugfs: Fix incorrect error handling for NULL path",
                            "    - perf lock contention: Load kernel map before lookup",
                            "    - perf record: skip synthesize event when open evsel failed",
                            "    - power: supply: cw2015: Check devm_delayed_work_autocancel() return code",
                            "    - power: supply: rt9467: Return error on failure in",
                            "      rt9467_set_value_from_ranges()",
                            "    - power: supply: rt9467: Prevent using uninitialized local variable in",
                            "      rt9467_set_value_from_ranges()",
                            "    - 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",
                            "    - fs/9p: Don't open remote file with APPEND mode when writeback cache is",
                            "      used",
                            "    - ARM: dts: am335x-netcom-plus-2xx: add missing GPIO labels",
                            "    - ARM: dts: omap3: beagle-xm: Correct obsolete TWL4030 power compatible",
                            "    - ARM: dts: omap3: n900: Correct obsolete TWL4030 power compatible",
                            "    - x86/boot: Fix page table access in 5-level to 4-level paging transition",
                            "    - efi/libstub: Fix page table access in 5-level to 4-level paging",
                            "      transition",
                            "    - mfd: da9055: Fix missing regmap_del_irq_chip() in error path",
                            "    - 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",
                            "    - scsi: stex: Fix reboot_notifier leak in probe error path",
                            "    - staging: most: i2c: Drop explicit initialization of struct",
                            "      i2c_device_id::driver_data to 0",
                            "    - [Config] remove MOST_I2C driver",
                            "    - dt-bindings: PCI: amlogic: Fix the register name of the DBI region",
                            "    - RDMA/rtrs: server: Fix error handling in get_or_create_srv",
                            "    - ARM: dts: stm32: stm32mp157c-phycore: Fix STMPE811 touchscreen node",
                            "      properties",
                            "    - ntfs3: init run lock for extend inode",
                            "    - scsi: ufs: core: fix incorrect buffer duplication in",
                            "      ufshcd_read_string_desc()",
                            "    - cpufreq/amd-pstate: Call cppc_set_auto_sel() only for online CPUs",
                            "    - powerpc/32: Fix unpaired stwcx. on interrupt exit",
                            "    - wifi: cw1200: Fix potential memory leak in cw1200_bh_rx_helper()",
                            "    - coresight: etm4x: Correct polling IDLE bit",
                            "    - 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",
                            "    - arm64: dts: rockchip: Move the EEPROM to correct I2C bus on Radxa ROCK",
                            "      5A",
                            "    - arm64: dts: rockchip: Add eeprom vcc-supply for Radxa ROCK 5A",
                            "    - ps3disk: use memcpy_{from,to}_bvec index",
                            "    - bpf: Handle return value of ftrace_set_filter_ip in register_fentry",
                            "    - selftests/bpf: Fix failure paths in send_signal test",
                            "    - watchdog: wdat_wdt: Fix ACPI table leak in probe function",
                            "    - watchdog: starfive: Fix resource leak in probe error path",
                            "    - tracefs: fix a leak in eventfs_create_events_dir()",
                            "    - NFSD/blocklayout: Fix minlength check in proc_layoutget",
                            "    - drm/msm/a2xx: stop over-complaining about the legacy firmware",
                            "    - bpf: Improve program stats run-time calculation",
                            "    - powerpc/64s/hash: Restrict stress_hpt_struct memblock region to within",
                            "      RMA limit",
                            "    - powerpc/64s/ptdump: Fix kernel_hash_pagetable dump for ISA v3.00 HPTE",
                            "      format",
                            "    - 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",
                            "    - net/ipv6: Remove expired routes with a separated list of routes.",
                            "    - ipv6: clear RA flags when adding a static route",
                            "    - perf arm-spe: Extend branch operations",
                            "    - perf arm_spe: Fix memset subclass in operation",
                            "    - pwm: bcm2835: Make sure the channel is enabled after pwm_request()",
                            "    - wifi: mac80211: fix CMAC functions not handling errors",
                            "    - mfd: mt6397-irq: Fix missing irq_domain_remove() in error path",
                            "    - mfd: mt6358-irq: Fix missing irq_domain_remove() in error path",
                            "    - phy: renesas: rcar-gen3-usb2: Fix an error handling path in",
                            "      rcar_gen3_phy_usb2_probe()",
                            "    - net: phy: adin1100: Fix software power-down ready condition",
                            "    - cpuset: Treat cpusets in attaching as populated",
                            "    - 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",
                            "    - RISC-V: KVM: Fix guest page fault within HLV* instructions",
                            "    - RDMA/bnxt_re: Fix the inline size for GenP7 devices",
                            "    - firmware: stratix10-svc: fix make htmldocs warning for stratix10_svc",
                            "    - staging: fbtft: core: fix potential memory leak in fbtft_probe_common()",
                            "    - btrfs: fix leaf leak in an error path in btrfs_del_items()",
                            "    - PCI: dwc: Fix wrong PORT_LOGIC_LTSSM_STATE_MASK definition",
                            "    - drm/nouveau: restrict the flush page to a 32-bit address",
                            "    - iomap: factor out a iomap_dio_done helper",
                            "    - iomap: always run error completions in user context",
                            "    - wifi: ieee80211: correct FILS status codes",
                            "    - 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",
                            "    - RDMA/irdma: Do not directly rely on IB_PD_UNSAFE_GLOBAL_RKEY",
                            "    - ASoC: fsl_xcvr: clear the channel status control memory",
                            "    - drm/amd/display: Fix logical vs bitwise bug in",
                            "      get_embedded_panel_info_v2_1()",
                            "    - hwmon: sy7636a: Fix regulator_enable resource leak on error path",
                            "    - ACPI: processor_core: fix map_x2apic_id for amd-pstate on am4",
                            "    - ublk: prevent invalid access with DEBUG",
                            "    - ext4: improve integrity checking in __mb_check_buddy by enhancing",
                            "      order-0 validation",
                            "    - virtio_vdpa: fix misleading return in void function",
                            "    - virtio: fix typo in virtio_device_ready() comment",
                            "    - virtio: fix whitespace in virtio_config_ops",
                            "    - virtio: fix virtqueue_set_affinity() docs",
                            "    - vdpa/pds: use %pe for ERR_PTR() in event handler registration",
                            "    - ASoC: Intel: catpt: Fix error path in hw_params()",
                            "    - ARM: dts: samsung: universal_c210: turn off SDIO WLAN chip during system",
                            "      suspend",
                            "    - ARM: dts: samsung: exynos4210-i9100: turn off SDIO WLAN chip during",
                            "      system suspend",
                            "    - ARM: dts: samsung: exynos4210-trats: turn off SDIO WLAN chip during",
                            "      system suspend",
                            "    - ARM: dts: samsung: exynos4412-midas: turn off SDIO WLAN chip during",
                            "      system suspend",
                            "    - resource: replace open coded resource_intersection()",
                            "    - resource: introduce is_type_match() helper and use it",
                            "    - Reinstate \"resource: avoid unnecessary lookups in find_next_iomem_res()\"",
                            "    - netfilter: flowtable: check for maximum number of encapsulations in",
                            "      bridge vlan",
                            "    - 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: rawnand: renesas: Handle devm_pm_runtime_enable() errors",
                            "    - selftests: bonding: add ipvlan over bond testing",
                            "    - selftests: bonding: add delay before each xvlan_over_bond connectivity",
                            "      check",
                            "    - mtd: lpddr_cmds: fix signed shifts in lpddr_cmds",
                            "    - remoteproc: qcom_q6v5_wcss: fix parsing of qcom,halt-regs",
                            "    - md/raid5: fix IO hang when array is broken with IO inflight",
                            "    - clk: keystone: fix compile testing",
                            "    - 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()",
                            "    - 9p: fix cache/debug options printing in v9fs_show_options",
                            "    - NFS: Avoid changing nlink when file removes and attribute updates race",
                            "    - fs/nls: Fix utf16 to utf8 conversion",
                            "    - NFS: Initialise verifiers for visible dentries in readdir and lookup",
                            "    - 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\"",
                            "    - Expand the type of nfs_fattr->valid",
                            "    - NFS: Fix inheritance of the block sizes when automounting",
                            "    - 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",
                            "    - nvme-auth: use kvfree() for memory allocated with kvcalloc()",
                            "    - dma/pool: eliminate alloc_pages warning in atomic_pool_expand",
                            "    - ALSA: uapi: Fix typo in asound.h comment",
                            "    - rtc: gamecube: Check the return value of ioremap()",
                            "    - 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()",
                            "    - LoongArch: Add machine_kexec_mask_interrupts() implementation",
                            "    - net: lan743x: Allocate rings outside ZONE_DMA",
                            "    - usb: gadget: tegra-xudc: Always reinitialize data toggle when clear halt",
                            "    - usb: phy: Initialize struct usb_phy list_head",
                            "    - ipv6: add exception routes to GC list in rt6_insert_exception",
                            "    - btrfs: do not skip logging new dentries when logging a new name",
                            "    - btrfs: fix a potential path leak in print_data_reloc_error()",
                            "    - bpf, arm64: Do not audit capability check in do_jit()",
                            "    - btrfs: fix memory leak of fs_devices in degraded seed device path",
                            "    - iomap: account for unaligned end offsets when truncating read range",
                            "    - sched/fair: Revert max_newidle_lb_cost bump",
                            "    - x86/ptrace: Always inline trivial accessors",
                            "    - ACPI: property: Use ACPI functions in acpi_graph_get_next_endpoint()",
                            "      only",
                            "    - cpufreq: dt-platdev: Add JH7110S SOC to the allowlist",
                            "    - cpufreq: s5pv210: fix refcount leak",
                            "    - cpuidle: menu: Use residency threshold in polling state override",
                            "      decisions",
                            "    - livepatch: Match old_sympos 0 and 1 in klp_find_func()",
                            "    - fs/ntfs3: Support timestamps prior to epoch",
                            "    - kbuild: Use objtree for module signing key path",
                            "    - hfsplus: fix volume corruption issue for generic/070",
                            "    - hfsplus: fix volume corruption issue for generic/073",
                            "    - wifi: brcmfmac: Add DMI nvram filename quirk for Acer A1 840 tablet",
                            "    - btrfs: scrub: always update btrfs_scrub_progress::last_physical",
                            "    - gfs2: fix remote evict for read-only filesystems",
                            "    - smb/server: fix return value of smb2_ioctl()",
                            "    - ksmbd: use rwsem instead of rwlock for lease break",
                            "    - Bluetooth: btusb: Add new VID/PID 2b89/6275 for RTL8761BUV",
                            "    - Bluetooth: btusb: Add new VID/PID 13d3/3533 for RTL8821CE",
                            "    - net: fec: ERR007885 Workaround for XDP TX path",
                            "    - ipvlan: Ignore PACKET_LOOPBACK in handle_mode_l2()",
                            "    - mlxsw: spectrum_router: Fix possible neighbour reference count leak",
                            "    - 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()",
                            "    - netfilter: nf_tables: pass context structure to nft_parse_register_load",
                            "    - netfilter: nf_tables: allow loads only when register is initialized",
                            "    - netfilter: nf_tables: remove redundant chain validation on register",
                            "      store",
                            "    - net/mlx5: fw reset, clear reset requested on drain_fw_reset",
                            "    - net/mlx5: Drain firmware reset in shutdown callback",
                            "    - net/mlx5: fw_tracer, Handle escaped percent properly",
                            "    - net/mlx5: Skip HotPlug check on sync reset using hot reset",
                            "    - net/mlx5: Serialize firmware reset with devlink",
                            "    - net: enetc: do not transmit redirected XDP frames when the link is down",
                            "    - net: hns3: using the num_tqps to check whether tqp_index is out of range",
                            "      when vf get ring info from mbx",
                            "    - hwmon: (tmp401) fix overflow caused by default conversion rate value",
                            "    - MIPS: Fix a reference leak bug in ip22_check_gio()",
                            "    - drm/panel: sony-td4353-jdi: Enable prepare_prev_first",
                            "    - x86/xen: Move Xen upcall handler",
                            "    - x86/xen: Fix sparse warning in enlighten_pv.c",
                            "    - spi: cadence-quadspi: Fix clock disable on probe failure path",
                            "    - block: rnbd-clt: Fix leaked ID in init_dev()",
                            "    - HID: input: map HID_GD_Z to ABS_DISTANCE for stylus/pen",
                            "    - Input: i8042 - add TUXEDO InfinityBook Max Gen10 AMD to i8042 quirk",
                            "      table",
                            "    - can: gs_usb: gs_can_open(): fix error handling",
                            "    - ACPI: PCC: Fix race condition by removing static qualifier",
                            "    - ACPI: CPPC: Fix missing PCC check for guaranteed_perf",
                            "    - mmc: sdhci-esdhc-imx: add alternate ARCH_S32 dependency to Kconfig",
                            "    - dt-bindings: mmc: sdhci-of-aspeed: Switch ref to sdhci-common.yaml",
                            "    - 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",
                            "    - fuse: Always flush the page cache before FOPEN_DIRECT_IO write",
                            "    - fuse: Invalidate the page cache after FOPEN_DIRECT_IO write",
                            "    - reset: fix BIT macro reference",
                            "    - exfat: fix remount failure in different process environments",
                            "    - usbip: Fix locking bug in RT-enabled kernels",
                            "    - iio: adc: ti_am335x_adc: Limit step_avg to valid range for gcc complains",
                            "    - 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",
                            "    - libperf cpumap: Fix perf_cpu_map__max for an empty/NULL map",
                            "    - i2c: designware: Disable SMBus interrupts to prevent storms from mis-",
                            "      configured firmware",
                            "    - 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",
                            "    - block: rnbd-clt: Fix signedness bug in init_dev()",
                            "    - 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",
                            "    - s390/dasd: Fix gendisk parent after copy pair swap",
                            "    - block: rate-limit capacity change info log",
                            "    - floppy: fix for PAGE_SIZE != 4KB",
                            "    - kallsyms: Fix wrong \"big\" kernel symbol type read from procfs",
                            "    - 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 per-journal lock_class_key for jbd2_trans_commit_key",
                            "    - jbd2: use a weaker annotation in journal handling",
                            "    - media: v4l2-mem2mem: Fix outdated documentation",
                            "    - mptcp: schedule rtx timer only after pushing data",
                            "    - 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: dwc3: keep susphy enabled during exit to avoid controller faults",
                            "    - usb: renesas_usbhs: Fix a resource leak in usbhs_pipe_malloc()",
                            "    - intel_th: Fix error handling in intel_th_output_open",
                            "    - cpuidle: governors: teo: Drop misguided target residency check",
                            "    - cpufreq: nforce2: fix reference count leak in nforce2",
                            "    - NFSD: use correct reservation type in nfsd4_scsi_fence_client",
                            "    - f2fs: fix age extent cache insertion skip on counter overflow",
                            "    - tools/testing/nvdimm: Use per-DIMM device handle",
                            "    - KVM: x86: Don't clear async #PF queue when CR0.PG is disabled (e.g. on",
                            "      #SMI)",
                            "    - 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: Avoid incorrect injection of SVM_EXIT_CR0_SEL_WRITE",
                            "    - KVM: SVM: Mark VMCB_NPT as dirty on nested VMRUN",
                            "    - KVM: nSVM: Propagate SVM_EXIT_CR0_SEL_WRITE correctly for LMSW emulation",
                            "    - KVM: SVM: Mark VMCB_PERM_MAP as dirty on nested VMRUN",
                            "    - 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",
                            "    - xfs: fix a memory leak in xfs_buf_item_init()",
                            "    - PM: runtime: Do not clear needs_force_resume with enabled runtime PM",
                            "    - r8169: fix RTL8117 Wake-on-Lan in DASH mode",
                            "    - nfsd: Mark variable __maybe_unused to avoid W=1 build break",
                            "    - svcrdma: return 0 on success from svc_rdma_copy_inline_range",
                            "    - s390/ipl: Clear SBP flag when bootprog is set",
                            "    - gpio: regmap: Fix memleak in error path in gpio_regmap_register()",
                            "    - drm/amd/display: Use GFP_ATOMIC in dc_create_plane_state()",
                            "    - selftests: openvswitch: Fix escape chars in regexp.",
                            "    - crypto: caam - Add check for kcalloc() in test_len()",
                            "    - amba: tegra-ahb: Fix device leak on SMMU enable",
                            "    - tracing: Fix fixed array of synthetic event",
                            "    - soc: qcom: ocmem: fix device leak on lookup",
                            "    - soc: amlogic: canvas: fix device leak on lookup",
                            "    - rpmsg: glink: fix rpmsg device leak",
                            "    - platform/x86: intel: chtwc_int33fe: don't dereference swnode args",
                            "    - 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",
                            "    - ARM: dts: microchip: sama5d2: fix spi flexcom fifo size to 32",
                            "    - wifi: rtw88: limit indirect IO under powered off for RTL8822CS",
                            "    - wifi: cfg80211: sme: store capped length in __cfg80211_connect_result()",
                            "    - wifi: mac80211: do not use old MBSSID elements",
                            "    - i40e: fix scheduling in set_rx_mode",
                            "    - 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",
                            "    - amd-xgbe: reset retries and mode on RX adapt failures",
                            "    - Revert \"UBUNTU: SAUCE: selftests: net: fix \"buffer overflow detected\"",
                            "      for tap.c\"",
                            "    - selftests: net: fix \"buffer overflow detected\" for tap.c",
                            "    - 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",
                            "    - blk-mq: don't schedule block kworker on isolated CPUs",
                            "    - blk-mq: skip CPU offline notify on unmapped hctx",
                            "    - selftests/ftrace: traceonoff_triggers: strip off names",
                            "    - ntfs: Do not overwrite uptodate pages",
                            "    - ASoC: stm32: sai: fix device leak on probe",
                            "    - ASoC: stm32: sai: fix clk prepare imbalance on probe failure",
                            "    - ASoC: qcom: q6apm-dai: set flags to reflect correct operation of",
                            "      appl_ptr",
                            "    - 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/amd: Fix pci_segment memleak in alloc_pci_segment()",
                            "    - 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-v1: fix device leaks on probe()",
                            "    - iommu/mediatek: fix device leak on of_xlate()",
                            "    - iommu/omap: fix device leaks on probe_device()",
                            "    - iommu/qcom: fix device leak on of_xlate()",
                            "    - 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",
                            "    - SAUCE: Revert \"arm64: dts: ti: k3-j721e-sk: Add DT nodes for power",
                            "      regulators\"",
                            "    - arm64: dts: ti: k3-j721e-sk: Fix pinmux for pin Y1 used by power",
                            "      regulator",
                            "    - powerpc, mm: Fix mprotect on book3s 32-bit",
                            "    - 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",
                            "    - leds: leds-lp50xx: Enable chip before any communication",
                            "    - 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()",
                            "    - powerpc/pseries/cmm: call balloon_devinfo_init() also without",
                            "      CONFIG_BALLOON_COMPACTION",
                            "    - firmware: stratix10-svc: Add mutex in stratix10 memory management",
                            "    - dm-ebs: Mark full buffer dirty even on partial write",
                            "    - dm-bufio: align write boundary on physical block size",
                            "    - 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: renesas: rcar_drif: fix device node reference leak in",
                            "      rcar_drif_bond_enabled",
                            "    - media: samsung: exynos4-is: fix potential ABBA deadlock on init",
                            "    - media: TDA1997x: Remove redundant cancel_delayed_work in probe",
                            "    - media: verisilicon: Protect G2 HEVC decoder against invalid DPB index",
                            "    - media: videobuf2: Fix device reference leak in vb2_dc_alloc error path",
                            "    - media: vpif_capture: fix section mismatch",
                            "    - media: vpif_display: fix section mismatch",
                            "    - media: amphion: Cancel message work before releasing the VPU core",
                            "    - media: i2c: ADV7604: Remove redundant cancel_delayed_work in probe",
                            "    - media: i2c: adv7842: Remove redundant cancel_delayed_work in probe",
                            "    - media: mediatek: vcodec: Fix a reference leak in",
                            "      mtk_vcodec_fw_vpu_init()",
                            "    - LoongArch: Add new PCI ID for pci_fixup_vgadev()",
                            "    - LoongArch: Correct the calculation logic of thread_count",
                            "    - LoongArch: Fix build errors for CONFIG_RANDSTRUCT",
                            "    - LoongArch: Use __pmd()/__pte() for swap entry conversions",
                            "    - LoongArch: Use unsigned long for _end and _text",
                            "    - compiler_types.h: add \"auto\" as a macro for \"__auto_type\"",
                            "    - kasan: refactor pcpu kasan vmalloc unpoison",
                            "    - idr: fix idr_alloc() returning an ID out of range",
                            "    - tools/mm/page_owner_sort: fix timestamp comparison for stable sorting",
                            "    - samples/ftrace: Adjust LoongArch register restore order in direct calls",
                            "    - fjes: Add missing iounmap in fjes_hw_init()",
                            "    - LoongArch: BPF: Zero-extend bpf_tail_call() index",
                            "    - nfsd: Drop the client reference in client_states_open()",
                            "    - net: usb: sr9700: fix incorrect command used to write single register",
                            "    - net: macb: Relocate mog_init_rings() callback from macb_mac_link_up() to",
                            "      macb_open()",
                            "    - drm/amdgpu: add missing lock to amdgpu_ttm_access_memory_sdma",
                            "    - drm/msm/a6xx: Fix out of bound IO access in a6xx_get_gmu_registers",
                            "    - drm/gma500: Remove unused helper psb_fbdev_fb_setcolreg()",
                            "    - drm/mediatek: Fix device node reference leak in mtk_dp_dt_parse()",
                            "    - drm/mgag200: Fix big-endian support",
                            "    - drm/nouveau/dispnv50: Don't call drm_atomic_get_crtc_state() in",
                            "      prepare_fb",
                            "    - blk-mq: add helper for checking if one CPU is mapped to specified hctx",
                            "    - mptcp: Initialise rcv_mss before calling tcp_send_active_reset() in",
                            "      mptcp_do_fastclose().",
                            "    - ALSA: wavefront: Use standard print API",
                            "    - ALSA: wavefront: Use guard() for spin locks",
                            "    - ALSA: wavefront: Clear substream pointers on close",
                            "    - ext4: fix string copying in parse_apply_sb_mount_options()",
                            "    - jbd2: fix the inconsistency between checksum and data in memory for",
                            "      journal sb",
                            "    - btrfs: don't rewrite ret from inode_permission",
                            "    - mm/ksm: fix exec/fork inheritance support for prctl",
                            "    - usb: ohci-nxp: Use helper function devm_clk_get_enabled()",
                            "    - usb: ohci-nxp: fix device leak on probe failure",
                            "    - scsi: ufs: core: Add ufshcd_update_evt_hist() for UFS suspend error",
                            "    - f2fs: use f2fs_err_ratelimited() to avoid redundant logs",
                            "    - ARM: dts: microchip: sama7g5: fix uart fifo size to 32",
                            "    - fuse: fix readahead reclaim deadlock",
                            "    - PCI: brcmstb: Fix disabling L0s capability",
                            "    - lockd: fix vfs_test_lock() calls",
                            "    - mm: simplify folio_expected_ref_count()",
                            "    - mm: consider non-anon swap cache folios in folio_expected_ref_count()",
                            "    - pmdomain: imx: Fix reference count leak in imx_gpc_probe()",
                            "    - net: phy: mediatek: fix nvmem cell reference leak in",
                            "      mt798x_phy_calibration",
                            "    - drm/amdgpu: Forward VMID reservation errors",
                            "    - drm/mediatek: Fix probe memory leak",
                            "    - drm/mediatek: Fix probe resource leaks",
                            "    - drm/tilcdc: request and mapp iomem with devres",
                            "    - tty: introduce and use tty_port_tty_vhangup() helper",
                            "    - xhci: dbgtty: fix device unregister: fixup",
                            "    - usb: xhci: move link chain bit quirk checks into one helper function.",
                            "    - LoongArch: Refactor register restoration in ftrace_common_return",
                            "    - f2fs: remove unused GC_FAILURE_PIN",
                            "    - f2fs: keep POSIX_FADV_NOREUSE ranges",
                            "    - f2fs: drop inode from the donation list when the last file is closed",
                            "    - f2fs: fix to propagate error from f2fs_enable_checkpoint()",
                            "    - f2fs: fix to detect recoverable inode during dryrun of",
                            "      find_fsync_dnodes()",
                            "    - media: verisilicon: Fix CPU stalls on G2 bus error",
                            "    - 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",
                            "    - KVM: nVMX: Immediately refresh APICv controls as needed on nested VM-",
                            "      Exit",
                            "    - media: amphion: Add a frame flush mode for decoder",
                            "    - media: amphion: Make some vpu_v4l2 functions static",
                            "    - media: amphion: Remove vpu_vb_is_codecconfig",
                            "    - 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()",
                            "    - sched/fair: Small cleanup to sched_balance_newidle()",
                            "    - sched/fair: Small cleanup to update_newidle_cost()",
                            "    - sched/fair: Proportional newidle balance",
                            "    - RDMA/rxe: Fix the failure of ibv_query_device() and",
                            "      ibv_query_device_ex() tests",
                            "    - mm/damon/tests/vaddr-kunit: handle alloc failures on",
                            "      damon_test_split_evenly_succ()",
                            "    - mm/damon/tests/core-kunit: handle alloc failres in",
                            "      damon_test_new_filter()",
                            "    - mm/damon/tests/core-kunit: handle allocation failures in",
                            "      damon_test_regions()",
                            "    - 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 alloc failures on",
                            "      damos_test_filter_out()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures in",
                            "      damon_test_set_regions()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures in",
                            "      damon_test_ops_registration()",
                            "    - mm/damon/tests/core-kunit: handle alloc failure on",
                            "      damon_test_set_attrs()",
                            "    - virtio_console: fix order of fields cols and rows",
                            "    - pwm: stm32: Always program polarity",
                            "    - tty: fix tty_port_tty_*hangup() kernel-doc",
                            "    - firmware: arm_scmi: Fix unused notifier-block in unregister",
                            "    - ext4: filesystems without casefold feature cannot be mounted with",
                            "      siphash",
                            "    - drm/amdkfd: Fix GPU mappings for APU after prefetch",
                            "    - wifi: rtl8xxxu: Add USB ID 2001:3328 for D-Link AN3U rev. A1",
                            "    - smack: fix bug: setting task label silently ignores input garbage",
                            "    - wifi: ath10k: Avoid vdev delete timeout when firmware is already down",
                            "    - wifi: ath10k: Add missing include of export.h",
                            "    - wifi: ath10k: move recovery check logic into a new work",
                            "    - wifi: ath11k: restore register window after global reset",
                            "    - dt-bindings: clock: qcom,x1e80100-gcc: Add missing video resets",
                            "    - dt-bindings: clock: qcom,x1e80100-gcc: Add missing USB4 clocks/resets",
                            "    - clk: qcom: gcc-x1e80100: Add missing USB4 clocks/resets",
                            "    - inet: Avoid ehash lookup race in inet_twsk_hashdance_schedule()",
                            "    - block/mq-deadline: Introduce dd_start_request()",
                            "    - block/mq-deadline: Switch back to a single dispatch list",
                            "    - perf annotate: Check return value of evsel__get_arch() properly",
                            "    - arm64: dts: exynos: gs101: fix sysreg_apm reg property",
                            "    - clk: qcom: camcc-sm8550: Specify Titan GDSC power domain as a parent to",
                            "      other",
                            "    - soc: qcom: gsbi: fix double disable caused by devm",
                            "    - wifi: ath11k: fix VHT MCS assignment",
                            "    - arm64: dts: qcom: sm8650: set ufs as dma coherent",
                            "    - perf: Remove get_perf_callchain() init_nr argument",
                            "    - bpf: Refactor stack map trace depth calculation into helper function",
                            "    - perf/x86/intel/cstate: Remove PC3 support from LunarLake",
                            "    - drm/imagination: Fix reference to",
                            "      devm_platform_get_and_ioremap_resource()",
                            "    - power: supply: rt5033_charger: Fix device node reference leaks",
                            "    - power: supply: max17040: Check iio_read_channel_processed() return code",
                            "    - libbpf: Fix parsing of multi-split BTF",
                            "    - locktorture: Fix memory leak in param_set_cpumask()",
                            "    - crypto: iaa - Fix incorrect return value in save_iaa_wq()",
                            "    - drm/msm/dpu: drop dpu_hw_dsc_destroy() prototype",
                            "    - leds: rgb: leds-qcom-lpg: Don't enable TRILED when configuring PWM",
                            "    - RAS: Report all ARM processor CPER information to userspace",
                            "    - vhost: Fix kthread worker cgroup failure handling",
                            "    - vfio/pci: Use RCU for error/request triggers to avoid circular locking",
                            "    - net: phy: aquantia: check for NVMEM deferral",
                            "    - perf tools: Mark split kallsyms DSOs as loaded",
                            "    - perf hist: In init, ensure mem_info is put on error paths",
                            "    - sched/fair: Fix unfairness caused by stalled tg_load_avg_contrib when",
                            "      the last task migrates out",
                            "    - platform/x86:intel/pmc: Update Arrow Lake telemetry GUID",
                            "    - nfs/vfs: discard d_exact_alias()",
                            "    - NFS: Initialise verifiers for visible dentries in",
                            "      _nfs4_open_and_get_state",
                            "    - drm/plane: Fix IS_ERR() vs NULL check in",
                            "      drm_plane_create_hotspot_properties()",
                            "    - regulator: fixed: Rely on the core freeing the enable GPIO",
                            "    - drm/nouveau: refactor deprecated strcpy",
                            "    - drm/amdkfd: Use huge page size to check split svm range alignment",
                            "    - block: return unsigned int from queue_dma_alignment",
                            "    - fs/ntfs3: check for shutdown in fsync",
                            "    - wifi: rtl8xxxu: Fix HT40 channel config for RTL8192CU, RTL8723AU",
                            "    - wifi: cfg80211: use cfg80211_leave() in iftype change",
                            "    - wifi: mt76: mt792x: fix wifi init fail by setting MCU_RUNNING after CLC",
                            "      load",
                            "    - gfs2: Fix \"gfs2: Switch to wait_event in gfs2_quotad\"",
                            "    - Bluetooth: btusb: MT7922: Add VID/PID 0489/e170",
                            "    - Bluetooth: btusb: MT7920: Add VID/PID 0489/e135",
                            "    - Bluetooth: btusb: Add new VID/PID 0x0489/0xE12F for RTL8852BE-VT",
                            "    - netfilter: nf_nat: remove bogus direction check",
                            "    - iommufd/selftest: Add coverage for reporting max_pasid_log2 via",
                            "      IOMMU_HW_INFO",
                            "    - iommufd/selftest: Update hw_info coverage for an input data_type",
                            "    - iommufd/selftest: Make it clearer to gcc that the access is not out of",
                            "      bounds",
                            "    - hwmon: (dell-smm) Limit fan multiplier to avoid overflow",
                            "    - drm/xe: Restore engine registers before restarting schedulers after GT",
                            "      reset",
                            "    - mmc: sdhci-of-arasan: Increase CD stable timeout to 2 seconds",
                            "    - scsi: ufs: host: mediatek: Fix shutdown/suspend race condition",
                            "    - scsi: smartpqi: Add support for Hurray Data new controller PCI device",
                            "    - exfat: zero out post-EOF page cache on file extension",
                            "    - x86/mce: Do not clear bank's poll bit in mce_poll_banks on AMD SMCA",
                            "      systems",
                            "    - perf: arm_cspmu: fix error handling in arm_cspmu_impl_unregister()",
                            "    - wifi: mt76: Fix DTS power-limits on little endian systems",
                            "    - usb: gadget: lpc32xx_udc: fix clock imbalance in error path",
                            "    - mei: gsc: add dependency on Xe driver",
                            "    - serial: sh-sci: Check that the DMA cookie is valid",
                            "    - powerpc: Add reloc_offset() to font bitmap pointer used for",
                            "      bootx_printf()",
                            "    - xfs: fix stupid compiler warning",
                            "    - NFSD: Clear SECLABEL in the suppattr_exclcreat bitmap",
                            "    - drm/amd/display: Fix scratch registers offsets for DCN35",
                            "    - drm/displayid: pass iter to drm_find_displayid_extension()",
                            "    - KVM: arm64: Initialize SCTLR_EL1 in __kvm_hyp_init_cpu()",
                            "    - soc: apple: mailbox: fix device leak on lookup",
                            "    - interconnect: qcom: sdx75: Drop QPIC interconnect and BCM nodes",
                            "    - i40e: validate ring_len parameter against hardware-specific values",
                            "    - idpf: reduce mbx_task schedule delay to 300us",
                            "    - platform/mellanox: mlxbf-pmc: Remove trailing whitespaces from event",
                            "      names",
                            "    - net: dsa: fix missing put_device() in dsa_tree_find_first_conduit()",
                            "    - vfio/pds: Fix memory leak in pds_vfio_dirty_enable()",
                            "    - md: Fix static checker warning in analyze_sbs",
                            "    - ASoC: codecs: lpass-tx-macro: fix SM6115 support",
                            "    - iommu/amd: Propagate the error code returned by __modify_irte_ga() in",
                            "      modify_irte_ga()",
                            "    - mtd: mtdpart: ignore error -ENOENT from parsers on subpartitions",
                            "    - mtd: spi-nor: winbond: Add support for W25Q01NWxxIQ chips",
                            "    - mtd: spi-nor: winbond: Add support for W25Q01NWxxIM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25Q02NWxxIM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25H512NWxxAM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25H01NWxxAM chips",
                            "    - mtd: spi-nor: winbond: Add support for W25H02NWxxAM chips",
                            "    - perf/x86/amd/uncore: Fix the return value of amd_uncore_df_event_init()",
                            "      on error",
                            "    - mm/damon/tests/sysfs-kunit: handle alloc failures on",
                            "      damon_sysfs_test_add_targets()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      damon_test_split_at()",
                            "    - mm/damon/tests/core-kunit: handle memory alloc failure from",
                            "      damon_test_aggregate()",
                            "    - 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 alloc failures in",
                            "      damon_test_update_monitoring_result()",
                            "    - kasan: unpoison vms[area] addresses with a common tag",
                            "    - drm/amdgpu/gmc11: add amdgpu_vm_handle_fault() handling",
                            "    - drm/edid: add DRM_EDID_IDENT_INIT() to initialize struct drm_edid_ident",
                            "    - drm/mediatek: Fix probe device leaks",
                            "    - drm/i915: Fix format string truncation warning",
                            "    - drm/xe/bo: Don't include the CCS metadata in the dma-buf sg-table",
                            "    - drm/xe: Adjust long-running workload timeslices to reasonable values",
                            "    - drm/xe: Use usleep_range for accurate long-running workload timeslicing",
                            "    - drm/xe: Drop preempt-fences when destroying imported dma-bufs.",
                            "    - drm/imagination: Disallow exporting of PM/FW protected objects",
                            "    - gfs2: fix freeze error handling",
                            "    - sched/eevdf: Remove min_vruntime_copy",
                            "    - sched/eevdf: Fix min_vruntime vs avg_vruntime",
                            "    - serial: core: fix OF node leak",
                            "    - serial: core: Restore sysfs fwnode information",
                            "    - mptcp: pm: ignore unknown endpoint flags",
                            "    - f2fs: clear SBI_POR_DOING before initing inmem curseg",
                            "    - f2fs: add timeout in f2fs_enable_checkpoint()",
                            "    - f2fs: dump more information for f2fs_{enable,disable}_checkpoint()",
                            "    - gpiolib: acpi: Switch to use enum in acpi_gpio_in_ignore_list()",
                            "    - gpiolib: acpi: Handle deferred list via new API",
                            "    - gpiolib: acpi: Add acpi_gpio_need_run_edge_events_on_boot() getter",
                            "    - gpiolib: acpi: Move quirks to a separate file",
                            "    - gpiolib: acpi: Add a quirk for Acer Nitro V15",
                            "    - gpiolib: acpi: Add quirk for ASUS ProArt PX13",
                            "    - gpiolib: acpi: Add quirk for Dell Precision 7780",
                            "    - serial: core: Fix serial device initialization",
                            "    - media: i2c: imx219: Fix 1920x1080 mode to use 1:1 pixel aspect ratio",
                            "    - wifi: mt76: mt7925: fix CLC command timeout when suspend/resume",
                            "    - soundwire: stream: extend sdw_alloc_stream() to take 'type' parameter",
                            "    - ASoC: qcom: sdw: fix memory leak for sdw_stream_runtime",
                            "    - vfio/pci: Disable qword access to the PCI ROM bar",
                            "    - iomap: allocate s_dio_done_wq for async reads as well",
                            "    - mptcp: ensure context reset on disconnect()",
                            "    - Upstream stable to v6.6.120, v6.12.62, v6.12.63, v6.12.64, v6.12.65",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2024-36347",
                            "    - x86/microcode/AMD: Fix Entrysign revision check for Zen5/Strix Halo",
                            "    - x86/microcode/AMD: Select which microcode patch to load",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-40164",
                            "    - usbnet: Fix using smp_processor_id() in preemptible code warnings",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-40325",
                            "    - md/raid10: wait barrier before returning discard request with REQ_NOWAIT",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68206",
                            "    - netfilter: nft_ct: add seqadj extension for natted connections",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71068",
                            "    - svcrdma: bound check rq_pages index in inline path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71135",
                            "    - md/raid5: fix possible null-pointer dereferences in",
                            "      raid5_store_group_thread_cnt()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-38234",
                            "    - sched/rt: Fix race in push_rt_task",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68811",
                            "    - svcrdma: use rc_pageoff for memcpy byte offset",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68810",
                            "    - KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71109",
                            "    - MIPS: ftrace: Fix memory corruption when kernel is located beyond 32",
                            "      bits",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68770",
                            "    - bnxt_en: Fix XDP_TX path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71072",
                            "    - shmem: fix recovery on rename failures",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68374",
                            "    - md: fix rcu protection in md_wakeup_thread",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68378",
                            "    - bpf: Fix stackmap overflow check in __bpf_get_stackid()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2024-57795",
                            "    - RDMA/rxe: Remove the direct link to net_device",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-38022",
                            "    - RDMA/core: Fix \"KASAN: slab-use-after-free Read in ib_register_device\"",
                            "      problem",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71140",
                            "    - media: mediatek: vcodec: Use spinlock for context list protection lock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71105",
                            "    - f2fs: use global inline_xattr_slab instead of per-sb slab cache",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68772",
                            "    - f2fs: fix to avoid updating compression context during writeback",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-22111",
                            "    - net: Remove RTNL dance for SIOCBRADDIF and SIOCBRDELIF.",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-22022",
                            "    - usb: xhci: Apply the link chain quirk on NEC isoc endpoints",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71141",
                            "    - drm/tilcdc: Fix removal actions in case of failed probe",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71127",
                            "    - wifi: mac80211: Discard Beacon frames to non-broadcast address",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71088",
                            "    - mptcp: fallback earlier on simult connection",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71065",
                            "    - f2fs: fix to avoid potential deadlock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68345",
                            "    - ALSA: hda: cs35l41: Fix NULL pointer dereference in",
                            "      cs35l41_hda_read_acpi()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68344",
                            "    - ALSA: wavefront: Fix integer overflow in sample size validation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71077",
                            "    - tpm: Cap the number of PCR banks",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71130",
                            "    - drm/i915/gem: Zero-initialize the eb.vma array in i915_gem_do_execbuffer",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71138",
                            "    - drm/msm/dpu: Add missing NULL pointer check for pingpong interface",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71083",
                            "    - drm/ttm: Avoid NULL pointer deref for evicted BOs",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71079",
                            "    - net: nfc: fix deadlock between nfc_unregister_device and",
                            "      rfkill_fop_write",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71129",
                            "    - LoongArch: BPF: Sign extend kfunc call arguments",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71093",
                            "    - e1000: fix OOB in e1000_tbi_should_accept()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71084",
                            "    - RDMA/cm: Fix leaking the multicast GID table reference",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71096",
                            "    - RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71136",
                            "    - media: adv7842: Avoid possible out-of-bounds array accesses in",
                            "      adv7842_cp_log_status()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71143",
                            "    - clk: samsung: exynos-clkout: Assign .num before accessing .hws",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71078",
                            "    - powerpc/64s/slb: Fix SLB multihit issue during SLB preload",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71089",
                            "    - iommu: disable SVA when CONFIG_X86 is set",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71081",
                            "    - ASoC: stm32: sai: fix OF node leak on probe",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71153",
                            "    - ksmbd: Fix memory leak in get_file_all_info()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71133",
                            "    - RDMA/irdma: avoid invalid read in irdma_net_event",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71086",
                            "    - net: rose: fix invalid array index in rose_kill_by_device()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71097",
                            "    - ipv4: Fix reference count leak when using error routes with nexthop",
                            "      objects",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71085",
                            "    - ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71095",
                            "    - net: stmmac: fix the crash issue for zero copy XDP_TX action",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71137",
                            "    - octeontx2-pf: fix \"UBSAN: shift-out-of-bounds error\"",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71101",
                            "    - platform/x86: hp-bioscfg: Fix out-of-bounds array access in ACPI package",
                            "      parsing",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71094",
                            "    - net: usb: asix: validate PHY address before use",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71132",
                            "    - smc91x: fix broken irq-context in PREEMPT_RT",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71154",
                            "    - net: usb: rtl8150: fix memory leak on usb_submit_urb() failure",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71091",
                            "    - team: fix check for port enabled in",
                            "      team_queue_override_port_prio_changed()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71098",
                            "    - ip6_gre: make ip6gre_header() robust",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71082",
                            "    - Bluetooth: btusb: revert use of devm_kzalloc in btusb",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71131",
                            "    - crypto: seqiv - Do not use req->iv after crypto_aead_encrypt",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71087",
                            "    - iavf: fix off-by-one issues in iavf_config_rss_reg()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71071",
                            "    - iommu/mediatek: fix use-after-free on probe deferral",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71111",
                            "    - hwmon: (w83791d) Convert macros to functions to avoid TOCTOU",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71113",
                            "    - crypto: af_alg - zero initialize memory allocated via sock_kmalloc",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71149",
                            "    - io_uring/poll: correctly handle io_poll_add() return value on update",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68778",
                            "    - btrfs: don't log conflicting inode if it's a dir moved in the current",
                            "      transaction",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71119",
                            "    - powerpc/kexec: Enable SMT before waking offline CPUs",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71120",
                            "    - SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in",
                            "      gss_read_proxy_verf",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71148",
                            "    - net/handshake: restore destructor on submit failure",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68788",
                            "    - fsnotify: do not generate ACCESS/MODIFY events on child for special",
                            "      files",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71125",
                            "    - tracing: Do not register unsupported perf events",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71104",
                            "    - KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV",
                            "      timer",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71116",
                            "    - libceph: make decode_pool() more resilient against corrupted osdmaps",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71121",
                            "    - parisc: Do not reprogram affinitiy on ASP chip",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71102",
                            "    - scs: fix a wrong parameter in __scs_magic",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68804",
                            "    - platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68771",
                            "    - ocfs2: fix kernel BUG in ocfs2_find_victim_chain",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68808",
                            "    - media: vidtv: initialize local pointers upon transfer of memory",
                            "      ownership",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68769",
                            "    - f2fs: fix return value of f2fs_recover_fsync_data()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71069",
                            "    - f2fs: invalidate dentry cache on failed whiteout creation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68796",
                            "    - f2fs: fix to avoid updating zero-sized extent in extent cache",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71107",
                            "    - f2fs: ensure node page reads complete before f2fs_put_super() finishes",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68782",
                            "    - scsi: target: Reset t_task_cdb pointer in error case",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71075",
                            "    - scsi: aic94xx: fix use-after-free in device removal path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68818",
                            "    - scsi: Revert \"scsi: qla2xxx: Perform lockless command completion in",
                            "      abort path\"",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68797",
                            "    - char: applicom: fix NULL pointer dereference in ac_ioctl",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68819",
                            "    - media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71126",
                            "    - mptcp: avoid deadlock on fallback while reinjecting",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68820",
                            "    - ext4: xattr: fix null pointer deref in ext4_raw_inode()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68814",
                            "    - io_uring: fix filename leak in __io_openat_prep()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71147",
                            "    - KEYS: trusted: Fix a memory leak in tpm2_load_cmd",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71151",
                            "    - cifs: Fix memory and information leak in smb3_reconfigure()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71108",
                            "    - usb: typec: ucsi: Handle incorrect num_connectors capability",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71114",
                            "    - via_wdt: fix critical boot hang due to unnamed resource allocation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68783",
                            "    - ALSA: usb-mixer: us16x08: validate meter packet indices",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68776",
                            "    - net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68773",
                            "    - spi: fsl-cpm: Check length parity before switching to 16 bit mode",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68777",
                            "    - Input: ti_am335x_tsc - fix off-by-one error in wire_order validation",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68806",
                            "    - ksmbd: fix buffer validation by including null terminator size in EA",
                            "      length",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71150",
                            "    - ksmbd: Fix refcount leak when invalid session is found on session lookup",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68786",
                            "    - ksmbd: skip lock-range check on equal size to avoid size==0 underflow",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68789",
                            "    - hwmon: (ibmpex) fix use-after-free in high/low store",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71112",
                            "    - net: hns3: add VLAN id validation before using",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71064",
                            "    - net: hns3: using the num_tqps in the vf driver to apply for resources",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68775",
                            "    - net/handshake: duplicate handshake cancellations leak socket",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68816",
                            "    - net/mlx5: fw_tracer, Validate format string parameters",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68795",
                            "    - ethtool: Avoid overflowing userspace buffer on stats query",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71122",
                            "    - iommufd/selftest: Check for overflow in IOMMU_TEST_OP_ADD_RESERVED",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68815",
                            "    - net/sched: ets: Remove drr class from the active list if it changes to",
                            "      strict",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68799",
                            "    - caif: fix integer underflow in cffrml_receive()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68813",
                            "    - ipvs: fix ipv4 null-ptr-deref in route error path",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68785",
                            "    - net: openvswitch: fix middle attribute validation in push_nsh() action",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68800",
                            "    - mlxsw: spectrum_mr: Fix use-after-free when updating multicast route",
                            "      stats",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68801",
                            "    - mlxsw: spectrum_router: Fix neighbour use-after-free",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71066",
                            "    - net/sched: ets: Always remove class from active list before deleting in",
                            "      ets_qdisc_change",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68787",
                            "    - netrom: Fix memory leak in nr_sendmsg()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68809",
                            "    - ksmbd: vfs: fix race on m_flags in vfs_cache",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68817",
                            "    - ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68767",
                            "    - hfsplus: Verify inode mode when loading from disk",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68774",
                            "    - hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71067",
                            "    - ntfs: set dummy blocksize to read boot_block when mounting",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-71118",
                            "    - ACPICA: Avoid walking the Namespace if start_node is NULL",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68780",
                            "    - sched/deadline: only set free_cpus for online runqueues",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68798",
                            "    - perf/x86/amd: Check event before enable to avoid GPF",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68794",
                            "    - iomap: adjust read range correctly for non-block-aligned positions",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68346",
                            "    - ALSA: dice: fix buffer overflow in detect_stream_formats()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68766",
                            "    - irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68756",
                            "    - block: Use RCU in blk_mq_[un]quiesce_tagset() instead of",
                            "      set->tag_list_lock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68753",
                            "    - ALSA: firewire-motu: add bounds check in put_user loop for DSP events",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68347",
                            "    - ALSA: firewire-motu: fix buffer overflow in hwdep read for DSP events",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68764",
                            "    - NFS: Automounted filesystems should inherit ro,noexec,nodev,sync flags",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68349",
                            "    - NFSv4/pNFS: Clear NFS_INO_LAYOUTCOMMIT in",
                            "      pnfs_mark_layout_stateid_invalid",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68325",
                            "    - net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68354",
                            "    - regulator: core: Protect regulator_supply_alias_list with",
                            "      regulator_list_mutex",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68758",
                            "    - backlight: led-bl: Add devlink to supplier LEDs",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68765",
                            "    - mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68763",
                            "    - crypto: starfive - Correctly handle return of sg_nents_for_len",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68740",
                            "    - ima: Handle error code returned by ima_filter_rule_match()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68362",
                            "    - wifi: rtl818x: rtl8187: Fix potential buffer underflow in",
                            "      rtl8187_rx_cb()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68741",
                            "    - scsi: qla2xxx: Fix improper freeing of purex item",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68742",
                            "    - bpf: Fix invalid prog->stats access when update_effective_progs fails",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68759",
                            "    - wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68363",
                            "    - bpf: Check skb->transport_header is set in bpf_skb_check_mtu",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68744",
                            "    - bpf: Free special fields when update [lru_,]percpu_hash maps",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68364",
                            "    - ocfs2: relax BUG() to ocfs2_error() in __ocfs2_move_extent()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68366",
                            "    - nbd: defer config unlock in nbd_genl_connect",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68367",
                            "    - macintosh/mac_hid: fix race condition in mac_hid_toggle_emumouse",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68755",
                            "    - staging: most: remove broken i2c driver",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68371",
                            "    - scsi: smartpqi: Fix device resources accessed after device removal",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68372",
                            "    - nbd: defer config put in recv_work",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68746",
                            "    - spi: tegra210-quad: Fix timeout handling",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68379",
                            "    - RDMA/rxe: Fix null deref on srq->rq.queue after resize failure",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68380",
                            "    - wifi: ath11k: fix peer HE MCS assignment",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68724",
                            "    - crypto: asymmetric_keys - prevent overflow in asymmetric_key_generate_id",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68727",
                            "    - ntfs3: Fix uninit buffer allocated by __getname()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68728",
                            "    - ntfs3: fix uninit memory after failed mi_read in mi_format_new",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68757",
                            "    - drm/vgem-fence: Fix potential deadlock on release",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68732",
                            "    - gpu: host1x: Fix race in syncpt alloc/free",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68733",
                            "    - smack: fix bug: unprivileged task can create labels",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68254",
                            "    - staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68255",
                            "    - staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68256",
                            "    - staging: rtl8723bs: fix out-of-bounds read in rtw_get_ie() parser",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68257",
                            "    - comedi: check device's attached status in compat ioctls",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68258",
                            "    - comedi: multiq3: sanitize config options in multiq3_attach()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68332",
                            "    - comedi: c6xdigio: Fix invalid PNP driver unregistration",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68265",
                            "    - nvme: fix admin request_queue lifetime",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68266",
                            "    - bfs: Reconstruct file type when loading from disk",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68259",
                            "    - KVM: SVM: Don't skip unrelated instruction if INT3/INTO is replaced",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68335",
                            "    - comedi: pcl818: fix null-ptr-deref in pcl818_ai_cancel()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68261",
                            "    - ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68336",
                            "    - locking/spinlock/debug: Fix data-race in do_raw_write_lock",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68263",
                            "    - ksmbd: ipc: fix use-after-free in ipc_msg_send_request",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68264",
                            "    - ext4: refresh inline data size before write operations",
                            "  * Noble update: upstream stable patchset 2026-03-04 (LP: #2142789) //",
                            "    CVE-2025-68337",
                            "    - jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system",
                            "      corrupted",
                            "  * CVE-2026-23111",
                            "    - netfilter: nf_tables: fix inverted genmask check in",
                            "      nft_map_catchall_activate()",
                            "  * CVE-2026-23209",
                            "    - macvlan: fix error recovery in macvlan_common_newlink()",
                            "  * CVE-2026-23074",
                            "    - net/sched: Enforce that teql can only be used as root qdisc",
                            "  * CVE-2026-23060",
                            "    - crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN",
                            "      spec",
                            ""
                        ],
                        "package": "linux-riscv-6.8",
                        "version": "6.8.0-110.110~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2143477,
                            2144887,
                            2144730,
                            2143478,
                            2142235,
                            2143033,
                            2142337,
                            2141276,
                            2139322,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789,
                            2142789
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Thu, 26 Mar 2026 16:40:51 +0100"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23074",
                                "url": "https://ubuntu.com/security/CVE-2026-23074",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23060",
                                "url": "https://ubuntu.com/security/CVE-2026-23060",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23111",
                                "url": "https://ubuntu.com/security/CVE-2026-23111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-riscv-6.8: 6.8.0-107.107~22.04.1 -proposed tracker (LP: #2144266)",
                            "",
                            "  [ Ubuntu: 6.8.0-107.107 ]",
                            "",
                            "  * noble/linux: 6.8.0-107.107 -proposed tracker (LP: #2144267)",
                            "  * CVE-2026-23074",
                            "    - net/sched: Enforce that teql can only be used as root qdisc",
                            "  * CVE-2026-23060",
                            "    - crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN",
                            "      spec",
                            "  * CVE-2026-23111",
                            "    - netfilter: nf_tables: fix inverted genmask check in",
                            "      nft_map_catchall_activate()",
                            "",
                            "  [ Ubuntu: 6.8.0-106.106 ]",
                            "",
                            "  * 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-riscv-6.8",
                        "version": "6.8.0-107.107~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2144266,
                            2144267
                        ],
                        "author": "Sarah Emery <sarah.emery@canonical.com>",
                        "date": "Wed, 18 Mar 2026 15:14:52 +0100"
                    }
                ],
                "notes": "linux-riscv-6.8-headers-6.8.0-117 version '6.8.0-117.117~22.04.1' (source package linux-riscv-6.8 version '6.8.0-117.117~22.04.1') was added. linux-riscv-6.8-headers-6.8.0-117 version '6.8.0-117.117~22.04.1' has the same source package name, linux-riscv-6.8, as removed package linux-headers-6.8.0-106-generic. As such we can use the source package version of the removed package, '6.8.0-106.106~22.04.1', 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": "netplan-generator",
                "from_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "to_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.107.1-3ubuntu0.22.04.3",
                    "version": "0.107.1-3ubuntu0.22.04.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2022-4968",
                        "url": "https://ubuntu.com/security/CVE-2022-4968",
                        "cve_description": "netplan leaks the private key of wireguard to local users. Versions after 1.0 are not affected.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-06-07 01:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2139598,
                    1988018,
                    2020409,
                    2058031
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * debian/patches/lp2139598-execute-udev-rules-before-sriov-apply-service.patch:",
                            "    execute udev rules before starting sriov apply service (LP: #2139598)",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.3",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2139598
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 03 Mar 2026 12:18:29 +0100"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * debian/patches/lp1988018: VF-LAG activation",
                            "    Fixes the order in which SR-IOV configuration is performed and",
                            "    cooperates with VF-LAG activation (LP: #1988018).",
                            "  * debian/patches/lp2020409:",
                            "    Enables setting the embedded-switch mode without having to define",
                            "    virtual functions (LP: #2020409).",
                            "  * debian/libnetplan0.symbols: New symbol _netplan_netdef_get_bond_mode.",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.2",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            1988018,
                            2020409
                        ],
                        "author": "Danilo Egea Gondolfo <danilo.egea.gondolfo@canonical.com>",
                        "date": "Mon, 07 Oct 2024 10:57:38 +0100"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2022-4968",
                                "url": "https://ubuntu.com/security/CVE-2022-4968",
                                "cve_description": "netplan leaks the private key of wireguard to local users. Versions after 1.0 are not affected.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-06-07 01:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * Backport netplan.io 0.107.1-3 to 22.04 (LP: #2058031):",
                            "    - Support for \"dummy\" (`dummy-devices`) interfaces (LP: 1774203) (!361)",
                            "    - Support for \"veth\" (`virtual-ethernets`) interfaces (!368)",
                            "    - Add Python bindings for libnetplan (!385)",
                            "    - netplan: Handle command exceptions (!334)",
                            "    - WPA3 (personal) support (LP: 2023238) (!369)",
                            "    - Add all the commands to the bash completion file (LP: 1749869) (!326)",
                            "    - New submodule for state manipulation (!379)",
                            "    - commands/status: show routes from all routing tables (!390)",
                            "    - cli:status: Make rich pretty printing optional (!388)",
                            "    - libnetplan: expose dhcp4 and dhcp6 properties (!394)",
                            "    - Expose macaddress and DNS configuration from the netdef (!395)",
                            "    - libnetplan: expose the routes list in the netdef (!397)",
                            "    - NetworkManager: Wireguard private key flag support (!371)",
                            "    - Add a netplan_parser_load_keyfile() Python binding (!351)",
                            "    - keyfile parser: add support for all tunnel types (LP: 2016473) (!360)",
                            "    - parse-nm:wg: add support for reading the listen-port property (!372)",
                            "    - parse-nm: add support for VRF devices (!398)",
                            "    - Vlan keyfile parser support (!370)",
                            "    - Netplan docs rework (!333 & !337)",
                            "    - docs: Add a short netplan-everywhere howto (!325)",
                            "    - doc: make us of sphinx copybutton plugin (!354)",
                            "    - doc: Add Ubuntu Code of Conduct 2.0 (!355)",
                            "    - doc: Explanation about 00-network-manager-all.yaml (!378)",
                            "    - wifi: add support for WPA3-Enterprise (LP: 2029876) (!402)",
                            "    - wifi: support WPA2 and WPA3 Personal simultaneously (!404)",
                            "    - added mii-monitor-interval example (!411)",
                            "    - docs: Add \"Contribute Documentation\" how-to",
                            "    - auth: add support for LEAP and EAP-PWD (!415)",
                            "    - tests: Add autopkgtest for (LP: 1959570) (!419)",
                            "    - wifi: make it possible to have a psk and an eap password simultaneously",
                            "      (!416)",
                            "    - doc: Set-up some basic Doxygen project (!423)",
                            "    - doc: Make Sphinx to handle autodoxygen project, using breathe (!423)",
                            "    - doc: create libnetplan apidoc structure (!423)",
                            "    - inc: Start documenting public API (!423)",
                            "    - doc: Update 'Netplan everywhere' for 23.10 (!418)",
                            "    SECURITY UPDATE: weak permissions on secret files, command injection",
                            "    - d/p/lp2065738/0014-libnetplan-use-more-restrictive-file-permissions.patch:",
                            "      Use more restrictive file permissions to prevent unprivileged users to",
                            "      read sensitive data from back end files (LP: 2065738, 1987842)",
                            "    - CVE-2022-4968",
                            "    - d/p/lp2066258/0015-libnetplan-escape-control-characters.patch:",
                            "      Escape control characters in the parser and double quotes in backend",
                            "      files.",
                            "    - d/p/lp2066258/0016-backends-escape-file-paths.patch:",
                            "      Escape special characters in file paths.",
                            "    - d/p/lp2066258/0017-backends-escape-semicolons-in-service-units.patch:",
                            "      Escape isolated semicolons in systemd service units. (LP: 2066258)",
                            "    - debian/netplan-generator.postinst: Add a postinst maintainer script to",
                            "      call the generator. It's needed so the file permissions fixes will be",
                            "      applied automatically.",
                            "    Bug fixes:",
                            "    - Fix FTBFS on Fedora and refresh RPM packaging (!323)",
                            "    - parser: validate lacp-rate properly (LP: 1745648) (!324)",
                            "    - use meson-make-symlink.sh helper instead of install_symlink() (!327)",
                            "    - netplan: cli: fix typo from 'unkown' to 'unknown' (!328)",
                            "    - Handle duplication during parser second pass (LP: 2007682) (!329)",
                            "    - parse:ovs: Ignore deprecated OpenFlow1.6 protocol (LP: 1963735) (!332)",
                            "    - dbus: Build the copy path correctly (!331)",
                            "    - tests: add new spread based snapd integration test (!330)",
                            "    - Use controlled execution environment, to avoid failure if PATH is unset",
                            "      (LP: 1959570) (!336)",
                            "    - Some refactoring (!338)",
                            "    - netplan: adjust the maximum buffer size to 1MB (!340)",
                            "    - parse: use \"--\" with systemd-escape (!347)",
                            "    - docs: fix bridge parameters types and add examples (!346)",
                            "    - vrfs: skip policies parsing if list is NULL (LP: 2016427) (!341)",
                            "    - networkd: plug a memory leak (!344)",
                            "    - libnetplan: don't try to read from a NULL file (!342)",
                            "    - nm: return if write_routes() fails (!345)",
                            "    - parse: plug a memory leak (!348)",
                            "    - parse: set the backend on nm-devices to NM (!349)",
                            "    - parse: don't point to the wrong node on validation (!343)",
                            "    - rtd: set the OS and Python versions explicitly (!357)",
                            "    - Fix 8021x eap method parsing (LP: 2016625) (!358)",
                            "    - CI: update canonical/setup-lxd to v0.1.1 (!359)",
                            "    - CI: fix dch after adding the new 0.106.1 tag (!364)",
                            "    - Provide frequency to wpa_supplicant in adhoc mode (LP: 2020754) (!363)",
                            "    - Improve the coverage of the memory leak tests (!365)",
                            "    - Fix keyfile parsing of wireguard config (!366)",
                            "    - routes: fix metric rendering (LP: 2023681) (!367)",
                            "    - CI: add DebCI integration test (!362)",
                            "    - CI: initial NetworkManager autopkgtests (!374)",
                            "    - parse-nm: handle cloned-mac-address special cases (LP: 2026230) (!376)",
                            "    - Improve autopkgtest stability with systemd 253 & iproute 6.4 (!377)",
                            "    - Fixes for minor issues (!380)",
                            "    - tests:integration: Adopt for systemd v254 (Closes: #1041310) (!381)",
                            "    - parse: Downgrade NM passthrough warning to debug (!384)",
                            "    - Don't drop files with just global values (LP: 2027584) (!382)",
                            "    - Fixing Coverity issues (!383)",
                            "    - CLI: Refactoring to avoid namespace clash with public bindings (!387)",
                            "    - tests: fix test coverage report with newer python-coverage (!389)",
                            "    - github: add a scheduled action to run Coverity (!391)",
                            "    - github: only run the coverity workflow on our repository (!392)",
                            "    - Addressing a few issues found (!393)",
                            "    - Wireguard fixes (!352)",
                            "    - Fix a memory leak, an assert and an error message (!350)",
                            "    - ovs: don't allow peers with the same name (!353)",
                            "    - CI: make use of the canonical/setup-lxd action (!356)",
                            "    - test:ovs: Avoid NetworkManager taking contol, breaking a test",
                            "    - parse: allow COMMON_LINK_HANDLERS for VRFs (!401)",
                            "    - util: don't return a placeholder netdef in the iterator (!406)",
                            "    - tunnels/validation: do not error out if \"local\" is not defined (!407)",
                            "    - tests: add some integration tests without the local address (!407)",
                            "    - wireguard: ignore empty endpoints (LP: 2038811) (!414)",
                            "    - parse: improve the parsing of access-points (LP: 1809994) (!413)",
                            "    - wifi: replace the previously defined AP with the new one (!413)",
                            "    - doc: spelling check improvements (!417)",
                            "    - Fix permissions on folder '/run/NetworkManager/' (!422)",
                            "    - cli:try: avoid linting error for type hints (Closes: #1058524) (!422)",
                            "    - nm-parse: always read the PSK into the new psk variable (!416)",
                            "    - networkd: fix formatting (!424)",
                            "    - networkd: replace deprecated CriticalConnection= by KeepConfiguration=",
                            "      (!424)",
                            "    - networkd: move KeepConfiguration= into [Network] section",
                            "    - apply: bring \"lo\" back up if it's managed by NM (!408)",
                            "    - apply: don't assume the NM loopback connection is called \"lo\" (!408)",
                            "    Packaging restructuring:",
                            "    - Split netplan-generator into separate package to make the Python",
                            "      dependency optional.",
                            "    - Split python3-netplan bindings into a separate package",
                            "  * Add patches for bug fixes from netplan.io 1.0-1 and 1.0.1-1:",
                            "    - debian/patches/lp2041727:",
                            "      Check if ovsdb-server.service is active before displaying warning",
                            "      (LP: 2041727) (!421)",
                            "    - d/p/0004-tests-assert-generated-.service-files-in-assert_srio.patch,",
                            "      d/p/0005-tests-sriov-test-if-the-generated-netplan-rebind-ser.patch,",
                            "      d/p/0006-sriov-don-t-generate-duplicate-entries-in-the-rebind.patch:",
                            "      Don't generate duplicate entries in the netplan-sriov-rebind.service",
                            "      (!437)",
                            "    - d/p/0017-emitter-allow-unicode-characters-in-the-emitter.patch.",
                            "      Allow non-ascii characters in the YAML emitter (LP: 2071652) (!485).",
                            "    - d/p/0018-parse-do-not-escape-all-non-ascii-bytes.patch.",
                            "      Don't escape all non-ascii bytes (!486).",
                            "  * Drop patches not required for 22.04:",
                            "    - debian/patches/python-limited-stable-api.patch",
                            "    - d/p/sru-compat/0013-Keep-old-file-permission-for-backwards-compatibility.patch.",
                            "      From now on we want libnetplan to create files with tight permissions.",
                            "  * Add patches for SRU backwards compatibility:",
                            "    - 0014-Demote-lacp-rate-validation-error-to-warning-for-bac.patch:",
                            "      Convert the error to a warning in a new validation for the option",
                            "      'lacp-rate' to prevent breaking existing setups",
                            "  * debian/control:",
                            "    - Drop python3-rich dependency to Suggests",
                            "    - Drop build dependency on systemd-dev",
                            "  * debian/netplan.io.preinst:",
                            "    - This preinst script is intended to cleanup the .pyc files from",
                            "      share/netplan/netplan. This directory is supposed to be removed after",
                            "      the upgrade from netplan.io 0.106.1 to 0.107.1, as the Python code",
                            "      was moved to it's own python3-netplan package, but it's left behind",
                            "      due to Python cached files.",
                            "  * Drop changes related to usr-merge and not required for 22.04",
                            "    - debian/netplan-generator.install",
                            "    - debian/netplan-generator.dirs",
                            "    - debian/netplan-generator.postinst",
                            "    - debian/netplan-generator.preinst",
                            "  * d/netplan-generator.lintian-overrides, d/netplan.io.lintian-overrides:",
                            "    - Drop overrides file. It wasn't really silencing any lintian warnings.",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2058031
                        ],
                        "author": "Danilo Egea Gondolfo <danilo.egea.gondolfo@canonical.com>",
                        "date": "Fri, 16 Aug 2024 17:59:32 +0100"
                    }
                ],
                "notes": "For a newly added package only the three most recent changelog entries are shown.",
                "is_version_downgrade": false
            },
            {
                "name": "python3-netplan",
                "from_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "to_version": {
                    "source_package_name": "netplan.io",
                    "source_package_version": "0.107.1-3ubuntu0.22.04.3",
                    "version": "0.107.1-3ubuntu0.22.04.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2022-4968",
                        "url": "https://ubuntu.com/security/CVE-2022-4968",
                        "cve_description": "netplan leaks the private key of wireguard to local users. Versions after 1.0 are not affected.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-06-07 01:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2139598,
                    1988018,
                    2020409,
                    2058031
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * debian/patches/lp2139598-execute-udev-rules-before-sriov-apply-service.patch:",
                            "    execute udev rules before starting sriov apply service (LP: #2139598)",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.3",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2139598
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 03 Mar 2026 12:18:29 +0100"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * debian/patches/lp1988018: VF-LAG activation",
                            "    Fixes the order in which SR-IOV configuration is performed and",
                            "    cooperates with VF-LAG activation (LP: #1988018).",
                            "  * debian/patches/lp2020409:",
                            "    Enables setting the embedded-switch mode without having to define",
                            "    virtual functions (LP: #2020409).",
                            "  * debian/libnetplan0.symbols: New symbol _netplan_netdef_get_bond_mode.",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.2",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            1988018,
                            2020409
                        ],
                        "author": "Danilo Egea Gondolfo <danilo.egea.gondolfo@canonical.com>",
                        "date": "Mon, 07 Oct 2024 10:57:38 +0100"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2022-4968",
                                "url": "https://ubuntu.com/security/CVE-2022-4968",
                                "cve_description": "netplan leaks the private key of wireguard to local users. Versions after 1.0 are not affected.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-06-07 01:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * Backport netplan.io 0.107.1-3 to 22.04 (LP: #2058031):",
                            "    - Support for \"dummy\" (`dummy-devices`) interfaces (LP: 1774203) (!361)",
                            "    - Support for \"veth\" (`virtual-ethernets`) interfaces (!368)",
                            "    - Add Python bindings for libnetplan (!385)",
                            "    - netplan: Handle command exceptions (!334)",
                            "    - WPA3 (personal) support (LP: 2023238) (!369)",
                            "    - Add all the commands to the bash completion file (LP: 1749869) (!326)",
                            "    - New submodule for state manipulation (!379)",
                            "    - commands/status: show routes from all routing tables (!390)",
                            "    - cli:status: Make rich pretty printing optional (!388)",
                            "    - libnetplan: expose dhcp4 and dhcp6 properties (!394)",
                            "    - Expose macaddress and DNS configuration from the netdef (!395)",
                            "    - libnetplan: expose the routes list in the netdef (!397)",
                            "    - NetworkManager: Wireguard private key flag support (!371)",
                            "    - Add a netplan_parser_load_keyfile() Python binding (!351)",
                            "    - keyfile parser: add support for all tunnel types (LP: 2016473) (!360)",
                            "    - parse-nm:wg: add support for reading the listen-port property (!372)",
                            "    - parse-nm: add support for VRF devices (!398)",
                            "    - Vlan keyfile parser support (!370)",
                            "    - Netplan docs rework (!333 & !337)",
                            "    - docs: Add a short netplan-everywhere howto (!325)",
                            "    - doc: make us of sphinx copybutton plugin (!354)",
                            "    - doc: Add Ubuntu Code of Conduct 2.0 (!355)",
                            "    - doc: Explanation about 00-network-manager-all.yaml (!378)",
                            "    - wifi: add support for WPA3-Enterprise (LP: 2029876) (!402)",
                            "    - wifi: support WPA2 and WPA3 Personal simultaneously (!404)",
                            "    - added mii-monitor-interval example (!411)",
                            "    - docs: Add \"Contribute Documentation\" how-to",
                            "    - auth: add support for LEAP and EAP-PWD (!415)",
                            "    - tests: Add autopkgtest for (LP: 1959570) (!419)",
                            "    - wifi: make it possible to have a psk and an eap password simultaneously",
                            "      (!416)",
                            "    - doc: Set-up some basic Doxygen project (!423)",
                            "    - doc: Make Sphinx to handle autodoxygen project, using breathe (!423)",
                            "    - doc: create libnetplan apidoc structure (!423)",
                            "    - inc: Start documenting public API (!423)",
                            "    - doc: Update 'Netplan everywhere' for 23.10 (!418)",
                            "    SECURITY UPDATE: weak permissions on secret files, command injection",
                            "    - d/p/lp2065738/0014-libnetplan-use-more-restrictive-file-permissions.patch:",
                            "      Use more restrictive file permissions to prevent unprivileged users to",
                            "      read sensitive data from back end files (LP: 2065738, 1987842)",
                            "    - CVE-2022-4968",
                            "    - d/p/lp2066258/0015-libnetplan-escape-control-characters.patch:",
                            "      Escape control characters in the parser and double quotes in backend",
                            "      files.",
                            "    - d/p/lp2066258/0016-backends-escape-file-paths.patch:",
                            "      Escape special characters in file paths.",
                            "    - d/p/lp2066258/0017-backends-escape-semicolons-in-service-units.patch:",
                            "      Escape isolated semicolons in systemd service units. (LP: 2066258)",
                            "    - debian/netplan-generator.postinst: Add a postinst maintainer script to",
                            "      call the generator. It's needed so the file permissions fixes will be",
                            "      applied automatically.",
                            "    Bug fixes:",
                            "    - Fix FTBFS on Fedora and refresh RPM packaging (!323)",
                            "    - parser: validate lacp-rate properly (LP: 1745648) (!324)",
                            "    - use meson-make-symlink.sh helper instead of install_symlink() (!327)",
                            "    - netplan: cli: fix typo from 'unkown' to 'unknown' (!328)",
                            "    - Handle duplication during parser second pass (LP: 2007682) (!329)",
                            "    - parse:ovs: Ignore deprecated OpenFlow1.6 protocol (LP: 1963735) (!332)",
                            "    - dbus: Build the copy path correctly (!331)",
                            "    - tests: add new spread based snapd integration test (!330)",
                            "    - Use controlled execution environment, to avoid failure if PATH is unset",
                            "      (LP: 1959570) (!336)",
                            "    - Some refactoring (!338)",
                            "    - netplan: adjust the maximum buffer size to 1MB (!340)",
                            "    - parse: use \"--\" with systemd-escape (!347)",
                            "    - docs: fix bridge parameters types and add examples (!346)",
                            "    - vrfs: skip policies parsing if list is NULL (LP: 2016427) (!341)",
                            "    - networkd: plug a memory leak (!344)",
                            "    - libnetplan: don't try to read from a NULL file (!342)",
                            "    - nm: return if write_routes() fails (!345)",
                            "    - parse: plug a memory leak (!348)",
                            "    - parse: set the backend on nm-devices to NM (!349)",
                            "    - parse: don't point to the wrong node on validation (!343)",
                            "    - rtd: set the OS and Python versions explicitly (!357)",
                            "    - Fix 8021x eap method parsing (LP: 2016625) (!358)",
                            "    - CI: update canonical/setup-lxd to v0.1.1 (!359)",
                            "    - CI: fix dch after adding the new 0.106.1 tag (!364)",
                            "    - Provide frequency to wpa_supplicant in adhoc mode (LP: 2020754) (!363)",
                            "    - Improve the coverage of the memory leak tests (!365)",
                            "    - Fix keyfile parsing of wireguard config (!366)",
                            "    - routes: fix metric rendering (LP: 2023681) (!367)",
                            "    - CI: add DebCI integration test (!362)",
                            "    - CI: initial NetworkManager autopkgtests (!374)",
                            "    - parse-nm: handle cloned-mac-address special cases (LP: 2026230) (!376)",
                            "    - Improve autopkgtest stability with systemd 253 & iproute 6.4 (!377)",
                            "    - Fixes for minor issues (!380)",
                            "    - tests:integration: Adopt for systemd v254 (Closes: #1041310) (!381)",
                            "    - parse: Downgrade NM passthrough warning to debug (!384)",
                            "    - Don't drop files with just global values (LP: 2027584) (!382)",
                            "    - Fixing Coverity issues (!383)",
                            "    - CLI: Refactoring to avoid namespace clash with public bindings (!387)",
                            "    - tests: fix test coverage report with newer python-coverage (!389)",
                            "    - github: add a scheduled action to run Coverity (!391)",
                            "    - github: only run the coverity workflow on our repository (!392)",
                            "    - Addressing a few issues found (!393)",
                            "    - Wireguard fixes (!352)",
                            "    - Fix a memory leak, an assert and an error message (!350)",
                            "    - ovs: don't allow peers with the same name (!353)",
                            "    - CI: make use of the canonical/setup-lxd action (!356)",
                            "    - test:ovs: Avoid NetworkManager taking contol, breaking a test",
                            "    - parse: allow COMMON_LINK_HANDLERS for VRFs (!401)",
                            "    - util: don't return a placeholder netdef in the iterator (!406)",
                            "    - tunnels/validation: do not error out if \"local\" is not defined (!407)",
                            "    - tests: add some integration tests without the local address (!407)",
                            "    - wireguard: ignore empty endpoints (LP: 2038811) (!414)",
                            "    - parse: improve the parsing of access-points (LP: 1809994) (!413)",
                            "    - wifi: replace the previously defined AP with the new one (!413)",
                            "    - doc: spelling check improvements (!417)",
                            "    - Fix permissions on folder '/run/NetworkManager/' (!422)",
                            "    - cli:try: avoid linting error for type hints (Closes: #1058524) (!422)",
                            "    - nm-parse: always read the PSK into the new psk variable (!416)",
                            "    - networkd: fix formatting (!424)",
                            "    - networkd: replace deprecated CriticalConnection= by KeepConfiguration=",
                            "      (!424)",
                            "    - networkd: move KeepConfiguration= into [Network] section",
                            "    - apply: bring \"lo\" back up if it's managed by NM (!408)",
                            "    - apply: don't assume the NM loopback connection is called \"lo\" (!408)",
                            "    Packaging restructuring:",
                            "    - Split netplan-generator into separate package to make the Python",
                            "      dependency optional.",
                            "    - Split python3-netplan bindings into a separate package",
                            "  * Add patches for bug fixes from netplan.io 1.0-1 and 1.0.1-1:",
                            "    - debian/patches/lp2041727:",
                            "      Check if ovsdb-server.service is active before displaying warning",
                            "      (LP: 2041727) (!421)",
                            "    - d/p/0004-tests-assert-generated-.service-files-in-assert_srio.patch,",
                            "      d/p/0005-tests-sriov-test-if-the-generated-netplan-rebind-ser.patch,",
                            "      d/p/0006-sriov-don-t-generate-duplicate-entries-in-the-rebind.patch:",
                            "      Don't generate duplicate entries in the netplan-sriov-rebind.service",
                            "      (!437)",
                            "    - d/p/0017-emitter-allow-unicode-characters-in-the-emitter.patch.",
                            "      Allow non-ascii characters in the YAML emitter (LP: 2071652) (!485).",
                            "    - d/p/0018-parse-do-not-escape-all-non-ascii-bytes.patch.",
                            "      Don't escape all non-ascii bytes (!486).",
                            "  * Drop patches not required for 22.04:",
                            "    - debian/patches/python-limited-stable-api.patch",
                            "    - d/p/sru-compat/0013-Keep-old-file-permission-for-backwards-compatibility.patch.",
                            "      From now on we want libnetplan to create files with tight permissions.",
                            "  * Add patches for SRU backwards compatibility:",
                            "    - 0014-Demote-lacp-rate-validation-error-to-warning-for-bac.patch:",
                            "      Convert the error to a warning in a new validation for the option",
                            "      'lacp-rate' to prevent breaking existing setups",
                            "  * debian/control:",
                            "    - Drop python3-rich dependency to Suggests",
                            "    - Drop build dependency on systemd-dev",
                            "  * debian/netplan.io.preinst:",
                            "    - This preinst script is intended to cleanup the .pyc files from",
                            "      share/netplan/netplan. This directory is supposed to be removed after",
                            "      the upgrade from netplan.io 0.106.1 to 0.107.1, as the Python code",
                            "      was moved to it's own python3-netplan package, but it's left behind",
                            "      due to Python cached files.",
                            "  * Drop changes related to usr-merge and not required for 22.04",
                            "    - debian/netplan-generator.install",
                            "    - debian/netplan-generator.dirs",
                            "    - debian/netplan-generator.postinst",
                            "    - debian/netplan-generator.preinst",
                            "  * d/netplan-generator.lintian-overrides, d/netplan.io.lintian-overrides:",
                            "    - Drop overrides file. It wasn't really silencing any lintian warnings.",
                            ""
                        ],
                        "package": "netplan.io",
                        "version": "0.107.1-3ubuntu0.22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2058031
                        ],
                        "author": "Danilo Egea Gondolfo <danilo.egea.gondolfo@canonical.com>",
                        "date": "Fri, 16 Aug 2024 17:59:32 +0100"
                    }
                ],
                "notes": "For a newly added package only the three most recent changelog entries are shown.",
                "is_version_downgrade": false
            }
        ],
        "snap": []
    },
    "removed": {
        "deb": [
            {
                "name": "linux-headers-6.8.0-106-generic",
                "from_version": {
                    "source_package_name": "linux-riscv-6.8",
                    "source_package_version": "6.8.0-106.106~22.04.1",
                    "version": "6.8.0-106.106~22.04.1"
                },
                "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-6.8.0-106-generic",
                "from_version": {
                    "source_package_name": "linux-riscv-6.8",
                    "source_package_version": "6.8.0-106.106~22.04.1",
                    "version": "6.8.0-106.106~22.04.1"
                },
                "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-6.8.0-106-generic",
                "from_version": {
                    "source_package_name": "linux-riscv-6.8",
                    "source_package_version": "6.8.0-106.106~22.04.1",
                    "version": "6.8.0-106.106~22.04.1"
                },
                "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-riscv-6.8-headers-6.8.0-106",
                "from_version": {
                    "source_package_name": "linux-riscv-6.8",
                    "source_package_version": "6.8.0-106.106~22.04.1",
                    "version": "6.8.0-106.106~22.04.1"
                },
                "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 20260320 to 20260515",
    "from_series": "jammy",
    "to_series": "jammy",
    "from_serial": "20260320",
    "to_serial": "20260515",
    "from_manifest_filename": "release_manifest.previous",
    "to_manifest_filename": "manifest.current"
}